Isn't "spaghetti code" a casual term to describe "complex and disjointed codebase"? What's the difference? Have I been using the term wrong all this time?
Not really. Spaghetti code is usually related to the big ball of mud. Meaning anything you need to understand, you need to go up and down the files while being distracted by irrelevant concerns. There’s no abstraction, no separation of concerns,…
Complex and disjointed codebase is the usual over engineering. The requirement calls for a quick printf, but the implemented module is equivalent to ncurses. And then every calling point turns into a complex ceremony. And most of them are subtly wrong in some way.
Those are two distinct mode of failures. The first was the sin of novice programmers before LLM. The second was the sin of not so novice programmers before LLMs, at least until the pain of living with their mistakes taught them better.
But with agentic tooling, the output is often the second. I believe mostly because no one publish the simple generic version of their codebase. Instead it’s the one that is aligned with their specs, simple in that context, but too complex in any other.
Not really. Spaghetti code is usually related to the big ball of mud. Meaning anything you need to understand, you need to go up and down the files while being distracted by irrelevant concerns. There’s no abstraction, no separation of concerns,…
Complex and disjointed codebase is the usual over engineering. The requirement calls for a quick printf, but the implemented module is equivalent to ncurses. And then every calling point turns into a complex ceremony. And most of them are subtly wrong in some way.
Those are two distinct mode of failures. The first was the sin of novice programmers before LLM. The second was the sin of not so novice programmers before LLMs, at least until the pain of living with their mistakes taught them better.
But with agentic tooling, the output is often the second. I believe mostly because no one publish the simple generic version of their codebase. Instead it’s the one that is aligned with their specs, simple in that context, but too complex in any other.