Ankur Sethi created Cutlet, a functional programming language, in just four weeks using only Claude Code to generate all the code, raising questions about the future of software development in the age of AI.
Frontend engineer Ankur Sethi recently completed an ambitious experiment: building a fully functional programming language called Cutlet in just four weeks, with every single line of code generated by Claude Code without any human review. The project, named after his cat, represents both a technical achievement and a philosophical exploration of AI-assisted programming.
"I've been using LLM-assisted programming since the original GitHub Copilot release in 2021, but so far I've limited my use of LLMs to generating boilerplate and making specific, targeted changes to my projects," Sethi explained. "While working on Cutlet, though, I allowed Claude to generate every single line of code. I didn't even read any of the code. Instead, I built guardrails to make sure it worked correctly."
Cutlet, a dynamic programming language with features reminiscent of Raku and Python, includes arrays, strings, meta-operators for vectorized operations, functions, and more. The language supports interesting features like the @ meta-operator that turns binary operations into vectorized functions, and boolean array indexing for filtering operations.
The project's GitHub repository contains the complete source code, build instructions, and example programs demonstrating the language's capabilities. "Cutlet exists today. It builds and runs on both macOS and Linux. It can execute real programs. There might be bugs hiding deep in its internals, but they're probably no worse than ones you'd find in any other four-week-old programming language in the world," Sethi noted.
The Experiment Behind Cutlet
Sethi's motivation stemmed from both curiosity and frustration. As a frontend engineer, he had found LLMs excel at complex business logic but struggle with visual design and novel interfaces. "I've wasted hours fighting with Claude about layout issues it swore it had fixed, but which I could still see plainly with my leaky human eyes," he shared.
The language project became the perfect test case for pushing the boundaries of AI-assisted programming. "I wanted to figure out how far I could push agentic engineering. Could I compress six months of work into a few weeks? Could I build something that was beyond my own ability to build?" Sethi questioned.
Agentic Engineering: A New Skillset
Through the experiment, Sethi identified four critical skills for effective "agentic engineering":
Problem Selection: Understanding which problems LLMs can solve effectively, which need human oversight, and which should remain human-only. He suggests asking two key questions: "Is it possible to define and verify success criteria automatically?" and "Have other people solved this problem before?"
Intent Communication: Learning to articulate precise specifications. "I spent most of my time writing, generating, reading, and correcting spec documents," Sethi revealed, noting this was a new experience for him as he typically treated code as the specification.
Environment Creation: Building tools that give the LLM agency and information. For Cutlet, this included comprehensive test suites, sample inputs and outputs, linters, memory safety tools, and runtime introspection capabilities.
Loop Optimization: Improving the efficiency of the agentic workflow by creating scripts that prevent redundant operations and automating repetitive tasks.
Mental Health and Professional Identity
The experiment also surfaced unexpected psychological challenges. "It's easy to get addicted to agentic engineering tools," Sethi admitted. "I often found myself at my computer at midnight going 'just one more prompt', as if I was playing the world's most obscure game of Civilization."
He also grappled with questions of authorship and credit. "Is it fair to say that I built Cutlet? After all, Claude did most of the work. What was my contribution here besides writing the prompts?" he questioned. Due to these reservations, Sethi hasn't added a license to Cutlet's repository, considering it part of the "collective consciousness" of programming language designers.
Implications for Software Engineering
Despite the impressive results, Sethi doesn't believe software engineering as a profession is dead. "Software engineering skills are just as valuable today as they were before language models got good," he argued. "I still had to make technical decisions that I could only make because I had (some) domain knowledge and experience."
Instead, he sees a transformation in the role of developers. "Our jobs will transform—and some people might not enjoy the new jobs anymore—but there will still be plenty of work for us to do. Maybe we'll have even more work to do than before, since LLMs allow us to build a lot more software a lot faster."
The Cutlet project demonstrates both the potential and limitations of current AI coding tools. While capable of generating impressive technical artifacts, they still require significant human oversight, careful environment setup, and clear specifications. As Sethi noted, "using LLMs to produce code does not mean you forget everything you've learned about building software. Agentic engineering requires careful planning, skill, craftsmanship, and discipline, just like any software worth building before generative AI."
For developers interested in exploring similar experiments, the Cutlet source code is available on GitHub, along with documentation and example programs that showcase the language's capabilities.
Comments
Please log in or register to join the discussion