18 ms·
There are a number of comments here where people open up about their contrasting experiences of not being a part of a programming community. Those are well addr
by ary 4mo ago
There are a number of comments here where people open up about their contrasting experiences of not being a part of a programming community. Those are well addressed, I think, but there is another point to consider.
We need to remember the people, that we may never talk to, that are downstream of all of this software. Not necessarily “the users” as there are many pieces of software meant for other devs, but I think the users deserve consideration nonetheless.
Handing over software quality to the stochastic code extruder is causing a sharp drop in the quality of software put out into the world. This is on top of all of the problems that existed before LLMs, like human error and perverse financial incentives. Shipping poor quality and user hostile software actually hurts people. Real people. Harm is caused in both big and little ways to living, breathing actual people. This “inevitable” slide into generative AI harms every single person it comes into contact with. The devs, the users, the investors, everyone. Those harms may happen at different times and in different ways and the creeping nature of it all might make it easier to ignore, but it’s happening.
“AI” is a blight. You can leave me behind as well.
- aspenmartin 4mo ago> Handing over software quality to the stochastic code extruder is causing a sharp drop in the quality of software put out into the world. Well, first of all you and the author point to the same derisive comment of these models being, in your words "stochastic code extruder" or the one I have heard a lot "next-token predictors", and the connotation I read from these being that this makes them inherently dumb or unintelligent and I don't understand that. The fact that these "stochastic code extruders" can solve Erdos problems is sort of the proof in the pudding. Next token prediction is profound in that it is _a very simple objective_ yet it is _enough_ to take you to extraordinary heights. Also I wonder how many folks honestly look in the mirror and think: how does the median programmer differ from an LLM. Do you really think humans are universally better and produce universally higher quality code? Not even universally, I would say _typically_. I would trust an LLM to not write a buffer overflow far more than a junior or a mediocre senior engineer. LLMs have built things in my domain that are non-trivial and impressive and correct. Not to mention, these systems are following a predictable trend in performance improvement so these worries about quality just won't age well, and it seems to be a head-in-the-sand attitude that pretends like quality and reliability are not getting very very good _already_. > Shipping poor quality and user hostile software actually hurts people. Could not agree more. So why do you think humans are inherently better at this? > This “inevitable” slide into generative AI harms every single person it comes into contact with. I just don't quite understand this, is it that: (1) agentic code is inherently inferior to human code and thus (2) shipping agentic code is actively harmful?
- nine_k 4mo agoIt's like people complaining about "poor quality plastic trinkets" that replaced well-made household items. Of course high-quality things can be (and are) made of plastic. The problem is that you can still make a very cheap passable thing out of plastic, that would be uneconomical to make out of metal or wood. Same with code: by using AI, one can produce passable software trinkets very cheaply, that would be uneconimical to produce by paying poor-quality human developers. The floor has moved downwards, allowing to produce a flood of new, trash-quality, disposable code very cheaply. It does not mean that we'll have to use only that code. But unfortunately we'll have to live with it, too.
- customguy 4mo ago> It's like people complaining about "poor quality plastic trinkets" that replaced well-made household items. Actually, people had to be made to see it as cheap so they would throw away and re-buy more. https://desis.osu.edu/seniorthesis/index.php/2024/09/15/creating-a-throw-away-culture-how-companies-ingrained-plastics-in-modern-life/ https://desis.osu.edu/seniorthesis/index.php/2024/09/15/crea... > “It was a really difficult sell to the American public in the post-war period, to inculcate people into a throwaway living,” she says. “That is not what people were used to.” > A solution companies came up with was emphasizing that plastic was a low-cost, abundant material. > A 1960 marketing study for Scott Cup said the containers were “almost indestructible,” but that the manufacturer could still convince people to discard them after a few uses. To counter any “pangs of conscience” consumers might feel about throwing them away, the researchers suggested a “direct attack”: Tell people the cups are cheap, they said, and that “there are more where these came from.” > A few years later, Scott ran an advertisement saying its plastic cups were available at “‘toss-away prices.” It wasn't plastic itself, and likewise it's not "AI" itself. We do have an abysmal track record as industrialized nations however, and more recently, in many parts of the software industry. But we can change it. With so many things, tech people spent so much time and energy debating... like cookies or HTTPS or whatever... we often heard/said that while we care so much about doing the right thing, we can't achieve anything at work because consumers don't care. Well, this time, pretty much all of the world cares a lot. I mean, the Vatican just blogged about it! Maybe we just "have to live with it", but in that case, there is also no utility in pointing that out, since we literally have to live with it. And of course, it's really about the shape of the "it", and how it's used, not that there is one that will never go away. That is also true about most things: stuff we don't currently use is in the museum or text books. Nothing goes away away, but we no longer drink out of lead cups, even though we still use lead. We don't have x-ray machines in shoe shops, even though we still use x-rays.
- MarkSweep 4mo agoI suspect you are right that LLM-generated software will likely negatively impact people's lives. The flip side of this is there is going to be a lot of software generated that would have never been possible before. And for some use cases, some crappy software is better than no software. I think it's hard to predict whether on net this will be a good or bad thing.
- 20k 4mo ago>And for some use cases, some crappy software is better than no software The best use case i've seen for AI is people generating random one shot projects for themselves, which is honestly so cool. You can make some basic app that does something very specific, that would have taken objectively a lot longer to make by hand. This is when 'crappy' software is more than good enough for a specific problem
- castedo 4mo agoSimilar use cases of useful AI one-shot projects are: demos, proof-of-concept, prototype, exploratory tests, etc... I've AI-generated an HTML/javascript craplet to test how browser security would behave for certain JavaScript API calls. I just wanted to confirm how browser security would behave before I started to spend time hand-coding the non-AI quality software that I wanted to release. And I say this as somebody who generally has a low opinion of AI generated code and rarely uses it. But it has its place.
- josephg 4mo agoI was listening to a podcast talking about this the other day. They encouraged non-programmers to use LLMs to make working demos of the features they wanted to have. A demo is a much more powerful communication tool than a written description. Speaking as an engineer, a working demo makes a way better spec to work off than 100 pages of words. Even if the code itself will be completely rewritten. I think this is a wonderful use case for LLMs. Who knows if regular people will try it out. We've spent decades making people feel like software is some special techy thing that regular mortals should stay away from. LLMs make it easy for anyone to turn an idea into a prototype.
- unknownfuture 4mo ago> Handing over software quality to the stochastic code extruder is causing a sharp drop in the quality of software put out into the world. I genuinely don't know if that's true and I doubt you do, either. It's all feels right now. What I do know is I run a couple of personal projects and I can say they are of objectively higher quality now that I'm using AI to build out proper CI pipelines, expand test coverage, produce higher quality architectures, etc. Why? Because in the past I didn't have the capacity to invest in that kind of hardening, but with AI, now I do. Of course you'll probably make the claim that my code is probably crap, the tests suck, etc, because you've already made up your mind. But having been in the industry for 25 years, I can tell you definitively that you'd be wrong about that. Now, what'll happen to the median codebase? God only knows. Maybe I'm especially diligent. But given we're really only 6-12 months into the agentic coding era, I think the only conclusion you can make is that the jury is still out.
- daveidol 4mo agoWell said. People love to make everything black and white / good and bad. But things are rarely that simple.
- unknownfuture 4mo agoAnd I get that compulsion to boil this mess down into a simple good/bad dichotomy. I absolutely have deeply mixed feelings about these tools, the ethics associated with them, the impact on the industry, on the talent pipeline, etc. But I also can't deny that they are incredibly powerful tools that are here to stay in one form or another. And I say that as someone who, a year ago, was absolutely convinced that they were incremental at best and scoffed at everyone who said something like "yeah but they're so much better now!" or "they're only going to get better!" Well, they were right, they did, and the world has changed. AI generated code is landing in the Linux kernel. 250+ security holes were found and fixed in Firefox. The impact is here and now, and it's mixed and ugly and complicated.
- prerok 4mo agoEven if the jury is still out, I would still say you are both right already. The amount of slop produced even in company setting is staggering and I don't like it one bit that neither the submitter nor the reviewer of the PR paid due dilligence. And I am only complaining because it then becomes my problem. So, then I have to start nagging people to clean that up. I can say with 100% certainty that the problems I face now would not have happened without LLMs. That said, used with care, with proper supervision, with dilligence to review what LLMs did, I still think they can be and are beneficial. I think that we are just not used to getting results of questionable quality from the tools we use. So, I am hopeful that we will learn and it will improve with time but still find myself dreading the age of the vibe coder.
- simonw 4mo ago> Shipping poor quality and user hostile software actually hurts people. Real people. I couldn't agree more. If you're using AI tools to produce worse software, faster, you should rethink how you are using them. If we're not delivering better software with this stuff then what are we using it for?
- nradov 4mo agoNah, there's no evidence of reduced quality. If anything it's the reverse. I've seen AI code review tools be tremendously effective at catching defects which otherwise would have shipped.
- jimmaswell 4mo agoSame here, it's been catching a lot of bugs that would have been very hard to trace or discover, often just in the process of doing something else.
- philipp-gayret 4mo agoIn the DORA group's reporting on AI-assisted software engineering, they indeed state that across industries, quality goes UP with the use of AI assistants like Claude and others. Moreover, in my experience helping businesses on this topic; They never defined or made measurable what quality meant in the first place. Then when they finally do figure it out, it turns out that the average repository is a total disappointment in terms of absolute quality.
- prerok 4mo agoSame for me. I have not yet successfully used an LLM to generate code to produce a feature, though to be fair, it might just be because I don't have the patience to go back and forth with it (will readily admit that I am using it wrong). Also, while some code review comments are just plain wrong, LLMs did produce some damn good comments, on the same level as a different senior engineer might note had they taken the time to study the code carefully.
- josephg 4mo agoI think it really depends how you use the tools. Its easy to lean too hard into vibe coding. I've spent the last week unpicking a bunch of poor decisions claude made while coding something up. Its my mistake - I trusted it too much. It made a lot of sloppy, poorly thought through abstractions and then built a bunch of bad code on top of them. I should have been more careful reviewing its abstractions first. But as others in this thread have said, LLMs are also great at doing all the tedious quality-improving tasks that I sometimes don't have time to do. You can prompt LLMs to write tests, to do fuzz testing and to set up CI pipelines. You can get them to formalise the constraints in the system (and then try to find violations of those constraints). I'm doing some work at the moment with Cocoa (apple's old UI library). I downloaded all the cocoa docs I could find. Then asked claude to read it all and review our code. It found lots of places where we're not using the API effectively. Fabulous. LLMs are an accelerator. If you already know how to write performant, reliable software, LLMs can help you get there faster. But if you sit back and let the LLM guide itself, who knows where you'll end up. Probably nowhere good. Over the next few years we're going to see every possible use of LLMs. Probably more vibe coding disasters than anything else. But as a senior engineer, I think its way too reductive to write the tools off entirely. They're useful. But using them well? That's the trick.
- idiotsecant 4mo agoI think history will prove that this is a less nuanced view than is required to accurately describe the situation. Abandoning human agency through the use of generative AI harms us all. Using AI as a force multiplier to implement human agency helps us all. It's possible to recognize that asking AI to do everything results in a poor product and brain rot for the humans. It's not at all clear that this is the case for using AI to build boilerplate, help with tests, etc.
- prerok 4mo agoI've always felt we somewhat failed as engineers (I included, of course) when I was doing boilerplate by hand. We should have taken the time to get those autogenerated. But... it takes time and the generator is always more complex than the produced code, sometimes even by a few factors, so it also takes an expert to maintain. As for tests, I've seen LLMs produce good ones as well as useless ones. I guess it's all about instructions... sorry, prompts... no, sorry, prompt engineering to get it right and done properly. That said, I am also very concerned with brain rot. Engineers nowadays can commit code they don't understand without a blink of the eye. Slowly, the knowledge may get sparse if we are not careful about it.
- martin-t 4mo agoSteve Jobs motivated Larry Kenyon, the engineer working on bootup, by saying he is effectively saving lives. I wonder if we reverse that. When engineers write shitty, slow, buggy code or when they're forced to do that by the company, they are effectively killing people. After all, if I spend an hour dealing with a preventable bug, that's an hour of my live I am never getting back. Multiple that by the userbase and you get entire lifetimes. [0]: https://www.folklore.org/Saving_Lives.html https://www.folklore.org/Saving_Lives.html
- jadar 4mo ago> AI is a blight Structured programming is a blight Compilers are a blight Object oriented programming is a blight Code generation is a blight Agentic engineering is a blight All of these blights have one thing in common, they are tools that the lazy person can use as a crutch to put out passible but problematic code. Laziness is a choice, and choices are made by humans with agency and free will.