Re:What I learned building an AI coding agent for a year
by skydhash on Saturday July 05, 2025 @10:24AM
(#44473021)
> why has nobody solved the code editing in a robust way yet.
Mostly because code editing is not the problem. When coding the solution exists out of the coding space. Code only remove ambiguity. It may conflict with earlier interpretations or the current interpretation is flaky, which leads to bugs, aka actual behavior differs from expected behavior (which also exists out of the coding space).
So trying to solve things within the coding space is an incorrect approach since the beginning of computation. And trying to merge natural languages (great for exploring problems) and formal languages (great for specifying instructions) was seen as foolishness by Dijkstra [0].
The reason natural languages are great for problem solving is that we can redefine what things means easily, changing the semantic of terms as our understanding evolves. And when we've settled on a set of semantics and a process, we translate that to formal notation so it stays fixed. An analogy is sketching (where we freely edit lines and just try stuff) and oil painting where every brush stroke is purposeful.
Mostly because code editing is not the problem. When coding the solution exists out of the coding space. Code only remove ambiguity. It may conflict with earlier interpretations or the current interpretation is flaky, which leads to bugs, aka actual behavior differs from expected behavior (which also exists out of the coding space).
So trying to solve things within the coding space is an incorrect approach since the beginning of computation. And trying to merge natural languages (great for exploring problems) and formal languages (great for specifying instructions) was seen as foolishness by Dijkstra [0].
The reason natural languages are great for problem solving is that we can redefine what things means easily, changing the semantic of terms as our understanding evolves. And when we've settled on a set of semantics and a process, we translate that to formal notation so it stays fixed. An analogy is sketching (where we freely edit lines and just try stuff) and oil painting where every brush stroke is purposeful.
[0]: https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...