> Why does everyone assume that anyone that is slightly critical has no experience whatsoever with the thing they critic? That is very dismissive.
It’s because most of the criticisms around the capability (as opposed to the ethical concerns or costs) are shallow. (“But it could leak your creds.” Come on. More likely one of the ten thousand NPM dependencies you install will do that.)
I’m interested in meaningful discussion of AI’s complexities and concerns. “It can’t possibly work” reeks of ignorance, not experience.
> As soon as you start working on something complex, the agent requires a lot of guidance from an expert. That's not what's being marketed.
Ignore the marketing. The question is whether the AI makes you more efficient. We don’t have artificial super intelligence that’s going to replace all the experts in a domain. What we have is an extremely efficient coding machine that does need guidance at times. But it has also learned to do a whole lot of stuff without detailed guidance.
“It can’t fully replace the judgement of an expert so it’s useless” is a shallow argument. We don’t accept that logic for any other tool.
> Which is why everyone has been using libraries and framework in the past decades. And why people goes to conferences and buy books.
So you believe this stuff is complicated enough to go to conferences and buy books to understand it but you can’t see the value of a tool that intrinsically knows the major frameworks and knows how to write code in them quickly. Ok.
> No one is keen to reinvent everything from scratch.
That’s honestly not true. Developers love to reinvent stuff. I feel like every time I look at web dev in particular the world has moved to yet another framework.
But also that’s not what I meant. So much code is basically duplicative of code that others have written. If you were tasked with adding a view to an application that could show the user’s latest photos, you would fetch the photos (from disk, from a service, whatever), load them into memory, create some sort of UI collection object and create a bunch of photo objects to stuff into the collection. You might add sorting. You might add lazy loading or even unloading for out-of-view images to save memory. And none of that is novel. It’s all been written a thousand times in dozens of languages. And yeah, I’m sure there’s something in there that’s unique to your use case or has some special requirements you need to think through. But most of it is a well worn path.
> If you think that we manually code everything that means you don't know anything about developer practice. Most of development is keeping a strong model of the software and tweak things here and there.
I don’t know anything about you but I’ve been coding professionally for over 20 years. I’ve shipped small plugins that maybe a few dozen people used and I’ve shipped code that millions of people use.
Most of a software engineer’s job is managing complexity. Which is why we use libraries and frameworks that abstract away much of the complexity.
This is exactly why so much AI criticism rings hollow. We cannot pretend that we need to control every tiny choice an LLM might make when we happily use libraries that hide thousands or millions of such choices from us.
> Why is it uninteresting? It seems that the only people not interested in code are the ones that are not responsible for it when it's in production.
As explained above. Uninteresting as in not novel.
> No, I'm asking how are you maintaining the code that you found uninteresting. Because all of it will be going in the software.
The same way you maintain code today. Possibly more efficiently with AI able to reason over the code and save you time.
Surely you are not intending to suggest that only the person who writes code initially can maintain it.
> What I've seen is a weird focus on Devex (you don't want to code uninteresting stuff) or HR (no need to hire expensive engineers), but not a peep about the users.
I love to code uninteresting stuff. If I could get paid well to reimplement a standard library from scratch, I’d absolutely take the job. But I don’t have infinite time and no one wants to pay me for that. The interest in AI coding is largely not because it reduces uninteresting work for its own sake but because it can drastically speed up the pace of development in general.
The HR problem is very real and worries me a lot, but that’s not relevant to whether AI coding works.
The users are the last people who care about what your software looks like underneath. They care that it works to solve their problem. They don’t care if it’s pretty code. They don’t care if it’s a pain to change the code because it’s riddled with tech debt. They don’t care if you need to employ a million SREs to maintain service quality. Those are all real problems but they are not the customer’s concerns.
I think we're going to agree to disagree. Not that I find fault in your argument (we're both debating our opinions), but I'm concerned about reliability of the tool first.
My workflow is centered about a correct output, not speed or efficiency. But what makes it easy to get correct result makes it easy to be fast and be economical in resource consumption too. Except that you need to average over the usual period of times you need to support a project (months or years). Nice tricks like slinging a PR over the wall in a day don't matter if it's not sustainable.
Things like writing code that's been written over and over again also don't matter. It's either I know how to do it (or at least the general pattern). And then it will be a walk in the park (some relax period even, like walking between bouts of running when jogging). Or I don't know the pattern and I need to be careful to get it right.
So what saves me time ultimately the reliability of my software. When I'm not busy fixing stuff right and left and can be fairly confident when releasing. I've not found any methodology that helps with that with AI tooling being actually helpful in that regards.