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 the ambiguity one by one, and if a sentence can be interpreted as one meaning only, then it is no longer natural language but 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 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.