The Essence of Programming
2 min readBefore vibe coding, there was a no-code solution that ultimately failed. The fundamental reason was the limits of complexity and the difficulties of maintenance. While it was possible to build simple prototypes, creating complex services, ensuring security, and maintaining systems were impossible without understanding the code. Vibe coding, so far, is following a similar path.
This phenomenon stems from the inherent ambiguity of natural language. A sentence can be interpreted in multiple ways, and the interpretation itself is natural language, so it is ambiguous too. If we recursively remove ambiguity until a sentence can be interpreted in only one way, then it is no longer natural language but a formal language.
The essence of programming is the process of translating natural language descriptions into formal language. In this process, the ambiguity is naturally removed because of the strict definition of the formal language. Forcing a requirement to be interpreted as one meaning only, in a single way, is the main role of a formal language.
Since each has a different role, natural language cannot replace programming languages. If we explain the intention in natural language, ambiguity will occur, and there is always a possibility that the intention will be differently interpreted during the process of translation. Therefore, natural languages cannot replace programming languages and that is why vibe coding cannot completely replace coding.