Are you feeling the rapid shift in how software is built? The dream of machines creating software is closer than ever, but it comes with its own set of exciting possibilities and daunting challenges. Andrej Karpathy’s insights into AI’s role in the future of software development, particularly with Large Language Models (LLMs), highlight a new era of ‘vibe coding’ that promises unprecedented agility while demanding a rethinking of fundamental development practices.
AI Transforms Software Development
- AI-driven systems are enabling incredibly tight feedback loops, allowing for rapid iteration and testing beyond what human developers could practically manage.
“Tight feedback loops are the key in working productively with software. I see that in codebases up to 700k lines of code (legacy 30yo 4GL ERP systems). The best part is that AI-driven systems are fine with running even more tight loops than what a sane human would tolerate.”
- The concept of “English is the new programming language” is gaining traction, with natural language interfaces allowing for more intuitive and accessible code generation.
“It seems to clash though with ‘English is the new programming language’. So the question is, can you hide the formal stuff under the hood, just like you can hide a calculator tool for arithmetic? Use informal English on the surface, while some of it is interpreted as a formal expression, put to work, and then reflected back in English?”
- LLMs are emerging as a new programming paradigm, shifting from deterministic to probabilistic approaches, akin to how declarative or functional languages changed the landscape.
“I’m not sure about the 1.0/2.0/3.0 classification, but it did lead me to think about LLMs as a programming paradigm: we’ve had imperative & declarative, procedural & functional languages, maybe we’ll come to view deterministic vs. probabilistic (LLMs) similarly.”
- The potential for AI to generate customized Graphical User Interfaces (GUIs) on the fly, allowing for non-linear, adaptive interactions, is becoming a reality.
- The evolution towards “Software 2.0” (neural networks) and “Software 3.0” (prompts) signifies a profound shift from traditional code to data-driven and natural language-driven systems.
Reality of AI Coding
- Despite the hype, current AI-generated code can be remarkably brittle and unreliable, often requiring extensive human intervention to correct errors and ensure logic.
“Meanwhile, I asked this morning Claude 4 to write a simple EXIF normalizer. After two rounds of prompting it to double-check its code, I still had to point out that it makes no sense to load the entire image for re-orientating if the EXIF orientation is fine in the first place. Vibe vs reality, and anyone actually working in the space daily can attest how brittle these systems are.”
- Natural language, while intuitive, is inherently imprecise for deterministic outcomes in complex systems, leading to challenges in ensuring exact functionality.
“English is a terrible language for deterministic outcomes in complex/complicated systems. Vibe coders won’t understand this until they are 2 years into building the thing.”
- The foundational concepts of computer science remain crucial; understanding generated code, debugging issues, and maintaining complex systems still demands deep human expertise.
“Also, you don’t spend years studying computer science to learn the language/syntax, but rather the concepts and systems, which don’t magically disappear with vibe coding.”
- The significant hardware requirements and associated costs for running advanced LLMs and AI development environments limit accessibility, making it a “toy for rich people” for now.
“Affording more than 1 computer is a luxury. Many households are even struggling to get by. When you see those what 5 7 Mac Minis, which normal average Joe can afford that or does even have to knowledge to construct an LLM at home?”
- Enterprise IT faces immense challenges in risk mitigation, code maintainability, and trusting the output of partially AI-generated systems, especially in regulated industries.
“As more internal developers are using LLM-powered coding interfaces and become less clear on exactly how their resulting code works, how will that codebase be maintained and incrementally updated with new features, especially in solo dev teams (which is common)?”
Integrating AI into Software
- Embrace machine-driven and formal verification processes to rigorously test and validate AI-generated code, reducing the burden on human review.
“I liked the idea of making the generation / verification loop go brrr, and one way to do this is to make verification not just a human task, but a machine task, where possible. Yes, I am talking about formal verification, of course!”
- Develop sophisticated layering that translates informal natural language prompts into precise, formal logic, allowing AI to execute complex tasks accurately.
- Implement robust automated testing and verifiable simulators to identify and rectify issues within AI-generated software, improving its overall reliability.
“Maybe this changes in SWE with more automated tests in verifiable simulators, but the real world is far to complex to simulate in its vastness.”
- Recognize AI tools as powerful additions to the developer’s toolkit, rather than outright replacements for human coding, fostering a hybrid development model where code and prompts coexist.
“So instead of being replacements, these paradigms are more like extra tools in the tool belt. Code and prompts will live side by side, being used when convenient, but none a panacea.”
- Invest in agentic AI assistance for enterprise environments, enabling automated tasks, workflow integrations, and support for developers without sacrificing control or transparency.
“I easily see a huge future for agentic assistance in the enterprise, but I struggle mightily to see how many IT leaders would accept the output code of something like a menugen app as production-viable.”
