Comment by rgoulter
1 hour ago
> Well, no, for a lot of us, there really is no other side. Slop farming is not software engineering and it never will be; scribbling some Markdown that begs agents to omit bugs is not equivalent to using high-level languages with thoughtful abstractions to directly define program behavior.
Would you look at a piece of code elegantly using high-level abstractions to model some problem written by a human and go "see, look, code is beautiful"... and then look at the exact same code written by an LLM and say "this is slop"?
> Moreover, it's downright offensive for a purported expert to defer their expertise to a SAAS black box.
With programming, it's just the opposite, though.
Programmers work with abstractions. Understanding the full system down to how atoms work is too much to think of when e.g. writing an API handler. So instead you work with modules and their interfaces.
Pre-LLM, if you need some task done, you wouldn't write it all out yourself if there was some external package which did the work for you.
Of course, when using an LLM, you don't need to surrender your ability to think about the problem and solution.
What is an abstraction? An abstraction is far more than a black box. From a previous comment:
> High-level programming languages use well-defined, limited syntax to encode program behavior in a deterministic way. Compilers translate these directions into programs that should have identical behavior between compiler runs and between different compilers. (If they don't, that's a compiler bug, or else an artifact of UB.) This means you can structurally and provably rely on the high-level programming layer without worrying about what's underneath: the assembly is abstracted away. You also get the massive benefit of being able to tweak and improve the assembly layer independently of the programming language layer, so long as the contract between language and compiler is not violated.
> If AI is a "layer of abstraction," so is working with a bunch of contractors to make your app. The definition is broadened to the point of absurdity. (Solely: "I don't have to think about code anymore," which only touches on the most superficial aspect of an abstraction.)
With a good high-level abstraction, I can mostly think on the level of the abstraction, but I can also dive down through the layers and figure out what's actually going on in each one.
> Would you look at a piece of code elegantly using high-level abstractions to model some problem written by a human and go "see, look, code is beautiful"... and then look at the exact same code written by an LLM and say "this is slop"?
Using is one thing; inventing is another. I have seen no evidence that LLMs have the capacity to discover and leverage new abstractions. To me, that's the most exciting part of programming: finding ways to reify powerful concepts and then turn complex tasks into simple ones, ad infinitum.