you are viewing a single comment's thread
view the rest of the comments
[–] 26 points 3 months ago (15 children)

Completely disagree. The difficult part of software development was never writing code OR speed of delivery. It was understanding requirements and problem solving. LLMs still can not do either of those things and there is no evidence they ever will be able to.

An example of how harmful LLMs actually are to development can succinctly be described with an issue I had a few weeks ago. I found an issue in an open source project, code was fine if a bit hard to understand. I came up with a PR to fix the problem.

In the time from me checking out the code to submitting the PR, a little less than 24 hours, the maintainer had completely rewritten the entire project with Claude. It was complete nonsense. Incredibly difficult to understand. Abstracting things that didn’t need abstracting. My PR was useless, because the entire project was new. The maintainer definitely didn’t understand the changes either. If a bug came up there’s no way AI would be able to solve it (the bug was still there even though the code was entirely new).

LLMs don’t understand the code. They just make things that look like they will work. And then a human has to maintain it (or keep paying billions of dollars for Claude to try to fix it).

  • source
  • parent
  • hideshow 15 child comments
  • [–] 17 points 3 months ago (1 child)

    the person in your scenario is just fkin stupid. When people say that llms are helpful for coding, they aren't talking about telling an llm to rewrite an entire codebase.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 7 points 3 months ago

    You are right, but right now we are living in a very messy reality where it's hard to know who's being stupid and who is using it well. One person I know that, well, I was never a huge fan of his work but at least it was somewhat serviceable is now all-in on AI and his code has been rewritten in a similar manner as the parent poster comments. He's got no idea how it works or how it should worked, the AI decided to rewrite it in an entirely different language, and it's a buggy mess and it never fixes the bugs without making new bugs. Then he hit his token quota 3 weeks early and basically said he was going to stop working on it because he no longer could manually work the codebase. He didn't ask for a rewrite, but AI advised him that his language choice was a poor fit and reworked things in another language, one that none of us use to that level of seriousness. It also made it largely based on super convoluted regular expressions.

    The problem is that the leadership is singing the praises of these people, they were on their 'leaderboards' of AI adoption and much like the craze of praising "lines of codes", we are neck deep in the most stupid non-technical evaluation of technical work you could imagine.

  • source
  • parent
  • [–] 6 points 3 months ago (1 child)

    In other words, you're arguing that their usage without discernment is detrimental.

    Cory agrees on this very same article, and it also includes the same nuance this chain is trying to give voice to:

    The other question Suresh implicitly raises is: "How can you reconcile the failure of AI in the enterprise with the individual claims of skilled technologists who insist that AI is helping them do great work?" The answer is that these AI users are "centaurs" – experienced workers who are assisted by automation on terms that they set for themselves.

    Thanks to their skill and experience, these workers possess discernment, the ability to tell good code from bad, and (more importantly) good uses of code-generation tools from bad. They demonstrate the adage that worker-driven automation improves quality, while capital-driven automation improves throughput.

    We wouldn't be having this conversation if LLMs had been given the chance to grow into being the same way the web did. Whereas we would be having this same conversation with the letters swapped if corporations were the ones to spawn the WWW instead of the way it came about.

    The reason is the same. There is only one war.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 3 months ago* (last edited 3 months ago)

    It's not just "usage without discernment", it's that AI flattens some costs which are very obvious and very measurable (coding) in such a way that it introduces or amplifies other costs which are much more diffused and hard to measure (code and design reviewing, bug fixing, maintenance, adding new requirements), plus AI is totally incapable of doing the higher level tasks that shape what code needs to be done (technical analysis, requirements analysis and in bigger companies technical architecture).

    People who are non-experts, aren't really senior domain experts or have some kinds of unbalanced expertise (they've never really progressed beyond being a coder, or they don't have full life-cycle experience with big projects or they're in an industry or position where they just make the code, shove it out the door and it's not their problem anymore) just look at the one thing they in their ignorance think is THE cost in programming - coding - and go "hey, this AI thing is amazing" even while AI is creating all sorts of much more time consuming problems which they don't really understand formally (they think those things are just "bad luck", "there's nothing we can do about avoiding this" and "it's just the way things are in programming") that require the time of people with higher expertise levels (i.e. who are more costly) to solve and AI doesn't even help with the kind of stuff which if done wrongly or not at all can condemn a software project to fail before it even starts like just half-way decent Technical and Requirements Analysis.

    That's why you get some programmers going "this AI shit is amazing" whilst the really senior software development types are just nodding their heads and thinking "these people are ignorant as fuck juniors".

  • source
  • parent
  • [–] 1 point 3 months ago

    @tyler @Magister To add to this: Writing code is easier than reading code.This is why we have comments: understanding the intent helps guide the reader and makes it easier to see where the implementation does not match the intent.This is one of the biggest reasons why we have code review: so that at least one person has read the code before it lands, to make sure that it is possible to understand it by reading it. Reading code is harder than writing code even when that code is written by someone who is trying to make it clear what the code does and why. LLMs make it easier to write code but harder to read because they produce statistically plausible code, which means code that looks right. Spotting bugs is harder. The code is often commented but the comments don’t reflect what it does, they direct you to misunderstand what the code does in subtle ways.But even if they generated code that is as easy to read as a good human programmer, they would not be solving the right problem.And, yes, LLMs can ‘explain’ code. And sometimes those explanations are correct and not subtly misleading. Often enough that they allow skills to atrophy, but not often enough that they’re trustworthy. They are a perfect example of The Paradox of Automation.

  • source
  • parent
  • [–] 1 point 3 months ago (3 children)

    I'm not a kid doing some vibe coding, of course I know what I want and basically know how to implement it, the AI is just helping me writing it, auto-complete and all.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 1 point 3 months ago (2 children)

    The overwhelming majority of software development occurs on a team. You understanding what you’ve asked an AI to do doesn’t mean jack when you need to make sure an entire team can understand it five years from now. And LLMs tend to write code that is incomprehensible to another person the next day.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 3 months ago (1 child)

    ? developer can write 50 lines per day, LLM help us for some auto-complete or some easy 5 lines routine/functions, but we are not blind and do not accept them blindly without understanding them. And we have pull request and reviews etc and prior to this we have architecture and class diagram and SDD and acceptance criteria and all kinds of things.

    You do think that in big companies a developer will use LLM to generate thousands of line per day by himself?

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 3 months ago (6 children)

    I'm sorry but to me your comment is a bit misguided. You raise extremely valid point and are completely right in what you say, and yet all your argument fails to prove that software development hasn't changed.

    The difficult part was understanding requirements and problem solving: absolutely true. Yet most of the time of a developer was spent in writing code. Now it's spent refining the analysis so that the LLM stops producing slop. And many programmers are doing it, even with all its downsides, because for them the fun part is understanding the requirements and problem solving, not writing code nor delivering fast. They are delegating those tasks to a machine, even with all the risks and issues.

    Your second point (and the anecdote) further proves how programming changed. Before it was unthinkable that some random person, likely with no clue about what they are doing, would refactor an entire codebase in a night.

    Both are massive changes. For the best? Arguably not, but I seriously doubt there will be any going back now.

  • source
  • parent
  • hideshow 6 child comments
  • [+] 13 points 3 months ago* (last edited 3 months ago) (6 children)
  • [–] 4 points 3 months ago

    I think you're right in general. I think juniors and those who havent yet had experience are not going to understand a goddamn thing and produce broken, insecure, unmaintainable slop.

    I've written my share of garbage code -- completely by hand! And i'm much better for it.

    Once you have that experience, once you've written a few backends and frontends, there's not much left to understand. Move the data from here to there. Display it, transform it, slice it up. For webdev AI is a huge force multiplier. I can make a dozen features or apps in the time it used to take me to learn one framework I was curious about. It even helps me learn faster because of how quickly I can test new patterns and ideas.

    There's certainly a right way to use it if you want to continue being edified, burning the planet down aside.

  • source
  • parent
  • [–] 2 points 3 months ago

    burning the planet down aside

    If we only used AI for codegen, this probably wouldn’t be much of an issue. Those cat videos take more energy than building a complete app. Also, it’s all pretty new and the newest tech 40 years ago would have filled a warehouse and had the computational power of a potato, but here we are now. I expect we’ll get more efficient at it and in the ways we use it. And there’s already a huge worldwide shift in energy capture (America aside…)

  • source
  • parent
  • load more comments (-1 replies)
  • [–] 3 points 3 months ago

    Fully agree.

    Unfortunately many people would rather spin the wheel for a chance to win magically produced functioning code, rather than doing the work themselves with sure results - even if it takes the same or more time. And the kind of current politicians there are around the world proves that most people don't give a fuck about the ice-caps (though I would also argue that it's not so much the random person calling an LLM that is poisoning the waters - even though it does have a non-negligible effect -, rather it's massive sociopaths in charge of the companies creating LLMs that are perfectly fine with destroying the environment and other people's money in a vain dream of being the owner of some kind of "new order")

  • source
  • parent
  • [–] 2 points 3 months ago (3 children)

    This is a point that really sticks with me. Using it for the sometimes spot on cakewalk segments is a fairly productive win. By the time you stubbornly insist on driving it entirely blackbox with chat and trying to get the right results without actually touching code... Well, even when it works, it's often more work than just doing it yourself.

    Someone rebased a UI I worked on in a new version of the UI framework. As a result, there was this one odd gap in the UI in one specific place. A vibe coder spent 3 hours back and forth with the AI trying to get it to correct the gap and finally submitted their merge request. Hundreds and hundreds of lines of CSS. So I declined the merge request, open the gui, looked at the gap, hit f12, adjusted a single padding statement, and it was all good. People are struggling with defining all sorts of criteria and rigging it to let it try and try and try again and hopefully laid out every contingency, every corner case, and spent hours laying the ground work and could have done similar in a more straightforward way.

  • source
  • parent
  • hideshow 3 child comments
  • [+] 2 points 3 months ago (2 children)
  • [–] 1 point 3 months ago

    And even better, that can be done entirely deterministicly, and once written, free to use! Instead of fixing the root cause they’re using the ultimate hammer. It’s such a cognitive surrender and a complete moral sellout.

  • source
  • parent
  • [–] 1 point 3 months ago

    As little as possible of my work is boilerplate, but some times there will be something like "I want to take width,height, and depth as arguments from the command as variables", and poof, all the argv tedium is done.

  • source
  • parent
  • load more comments (-1 replies)
  • load more comments (-2 replies)