Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is my oldest comment[0] on the AI tools subject back in December 2022

> Coding may be abstract, but execution of the resulting program is not. And results of the execution is driven by real world needs. Truth is that a human can invent things because it can pattern match across whole domains. You can say there is a mechanic solution to that, how can we do an algorithm that have the same result. AI cannot unless the algorithm was already created. I think the current state of AI is great for searching and creating starting point, but it can never get us to the finish line.

I've not seen anything since then that has changed my point of view. My job as a developer is always about creating pragmatic solutions for problems that exists outside of the computer world. I'm not attached to code and will gladly rewrite it if it's lacking or faulty. But the actual purpose is to get something that works well in the hand of the user. But the user's needs are not static, so I also create something that is flexible enough to be able to adapt it later when those needs changes.

So when I read comments that says they don't care about code, but also have no answer about how they will solve their user's problems or how will they modify the software to future changes, it seems so strange to me. Like is your belief backed by real world experience?

[0]: https://news.ycombinator.com/item?id=33873394

 help



I am increasingly convinced that the AI skeptics that remain in the software industry have put very little time into experimenting with AI coding. It’s like listening to someone confidently assert that a plane could never travel faster than the speed of sound and providing evidence that seems compelling only until you have seen a supersonic jet.

As a software engineer, I prefer the scenario where AI is incompetent at writing effective software. But I don’t think that scenario describes the real world.

> AI cannot unless the algorithm was already created

We have documented cases of AI producing novel mathematical proofs. The narrative that AI can only regurgitate existing info has been pretty soundly disproven at this point. I would not consider it a good thing that your perspective is unchanging in the face of new information.

This sort of assertion is also lacking merit because most coding is not about novel algorithms. Most coding is in fact straightforward regurgitation of ideas and code a thousand other developers have already written. So even if this were all AI can possibly do, it could still be a significant improvement over manually coding the same uninteresting boilerplate and CRUD logic.

I think this is perhaps a big piece of the disconnect between your perspective and mine. When we talk about “the middle”, you focus on the bit of critical logic there while I am focusing on the vast amount of logic there that is deeply uninteresting. It’s kind of like the “premature optimization” thing. Put your mental energy where it matters.

> So when I read comments that says they don't care about code, but also have no answer about how they will solve their user's problems or how will they modify the software to future changes, it seems so strange to me. Like is your belief backed by real world experience?

This is a bizarre statement because we haven’t talked about a user’s problems. You’ve seemingly manufactured a scenario in your head where I have AI producing code for no purpose. It’s no wonder you can’t see how this makes sense, because it doesn’t.


> the AI skeptics that remain in the software industry have put very little time into experimenting with AI coding.

Why does everyone assume that anyone that is slightly critical has no experience whatsoever with the thing they critic? That is very dismissive. 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.

If someone told you they have a supersonic jet, but then you see a small Cessna. Would you take them at face value?

> Most coding is in fact straightforward regurgitation of ideas and code a thousand other developers have already written.

Which is why everyone has been using libraries and framework in the past decades. And why people goes to conferences and buy books. No one is keen to reinvent everything from scratch. 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.

> When we talk about “the middle”, you focus on the bit of critical logic there while I am focusing on the vast amount of logic there that is deeply uninteresting.

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.

> You’ve seemingly manufactured a scenario in your head where I have AI producing code for no purpose

No, I'm asking how are you maintaining the code that you found uninteresting. Because all of it will be going in the software. 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.


> 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.


I don’t know anything about your work so I can’t speak to that. What I do know is that intentionally pushing my use of AI (to the point that at times it was clearly a detriment) taught me a lot about how I can use it effectively, how I cannot, and sometimes where I still need to invest to be more effective with it. AI is not magic but it has proven very useful in many cases (not all cases) for me.

But yes, agree to disagree. I’m not here to evangelize AI and I hope you have success regardless of whether you use AI coding.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: