| |
| ▲ | archagon 18 hours ago | parent [-] | | As I see it, "engineers" going all-in on AI are missing two fundamental truths of our profession: * Writing code is a form of communication, as well as a process through which complex systems are thought through, understood, and formalized. * Complexity is managed by building on top of robust, deterministic abstractions. Vibe-coders deny the need to understand complex systems and pretend that AI is a new layer of abstraction. I think that both of these perspectives are dead wrong. This remains the case even if LLMs are marvelously good at generating code. Put another way, software engineers who mostly deal with code through their agents have switched careers from engineering to some form of management, even if they deny it to themselves. In no way does this deprecate the field of software engineering. And then there are the externalities which have been discussed ad nauseam at this point, and remain as true as they ever were. (Economic, environmental, political — take your pick.) | | |
| ▲ | jeremyjh 15 hours ago | parent [-] | | Not everyone using coding agents is vibe coding. I still review code until I understand it, judge the tests cover it, and that it is the right way to do it. They constantly make mistakes like over building, handling contingencies that can't exist, duplicating code etc. Its still MUCH faster than the alternative. I've been working this way for decades. It is not different from reviewing human code and designs except the loops are much tighter, and refactoring is so much cheaper. There may be a lot of people who can't do this work effectively, but the thing about skill issues is they can be improved if they are recognized for what they are. | | |
| ▲ | archagon 14 hours ago | parent [-] | | Almost everyone who uses coding agents extensively describes offloading some degree of understanding to the agents: reviews, tests, documentation, filling in bits "that don't matter," whatever. As someone with years of FAANG experience, reviewing code competently was actually more strenuous than writing it in the first place. In fact, I'd estimate that truly understanding a codebase required a similar time commitment to writing the amount of code in that codebase. So I don't see how unprecedented speedups are possible with a human in the loop unless the reviews are only being skimmed. The key to productivity and increasing complexity is inventing solid, thoughtfully designed abstractions and building on top of them, not taking shortcuts by way of a code extruder. If code is constantly getting duplicated or falling into the same patterns, figure out how to abstract or encapsulate it. | | |
| ▲ | jeremyjh 13 hours ago | parent [-] | | Reviewing code is more strenuous but it does not take as long - unless you count all the procrastination that happens first. And it goes much faster if you make a comment and get immediate changes because you don't have to rebuild context the next time you look at it. And yes - not every detail needs to be fully understood; sometimes verifying tests cover what they claim to is enough. Knowing which details are important and which can be hand waved is a bit of an art and I can't claim to always do it perfectly and don't always do it well for human authored code review either. And yes, I have to ask for refactorings and suggest abstractions in some cases. But there are now many tasks that coding agents actually do better than me, and they cut fewer corners, handle more edge cases, test more edge cases, research suggested designs, reviewing library docs & code much faster, etc. |
|
|
|
|