Hacker News new | past | comments | ask | show | jobs | submit
loading story #47138119
> Code has always been expensive. Producing a few hundred lines of clean, tested code takes most software developers a full day or more. Many of our engineering habits, at both the macro and micro level, are built around this core constraint.

Wasn't writing code always cheap? I see this more like a strawmen argument. What is clean code? Tested code? Should each execution path of a function be tested with each possible input?

I think writing tests is important but you can over do it. Testing code for every possible platform takes of course much time and money.

Another cost factor for code is organization overhead, if adding a new feature needs to go through each layer of the organization signing it off before a user can actually see it. Its of course more costly than the alternative of just pushing to production with all its faults.

There is a big difference of short term cost and long term ones. I think LLMs reduce the short time cost immensely but may increase the long term costs. It will take some real long studies to really show the impact.

I think code was always expensive. If it seemed cheap, the cost was hidden somewhere else.

When I started coding professionally, I joined a team of only interns in a startup, hacking together a SaaS platform that had relative financial success. While we were very cheap, being paid below minimum wage, we had outages, data corruption, db wipes, server terminations, unresolved conflicts making their way to production and killing features, tons of tech debt and even more makeshift code we weren't aware of...

So yeah, while writing code was cheap, the result had a latent cost that would only show itself on occasion.

So code was always expensive, the challenge was to be aware of how expensive sooner rather than later.

The thing with coding agents is that it seems now that you can eat your cake and have it too. We are all still adapting, but results indicate that given the right prompts and processes harnessing LLMs quality code can be had in the cheap.

loading story #47137586
loading story #47137685
loading story #47137432
> Wasn't writing code always cheap?

No.

If you’re a startup that wanted to ship your product, you were stuck hiring developers and waiting 6 months. I’m old enough to remember th “6-8 weeks” it was supposed to take to build the first version of Stackoverflow (hint it was more like several months).

Creating a v1 of a product / feature is now cheap. When you’re a mature product and need to make complicated / iterative decisions - that’s not cheap and requires expertise to make good decisions.

loading story #47137441
loading story #47137212
> Code has always been expensive. Producing a few hundred lines of clean, tested code takes most software developers a full day or more. Many of our engineering habits, at both the macro and micro level, are built around this core constraint.

> ...

> Writing good code remains significantly more expensive

I think this is a bad argument. Code was expensive because you were trying to write the expensive good code in the first place.

When you drop your standards, then writing generated code is quick, easy and cheap. Unless you're willing to change your standard, getting it back to "good code" is still an equivalent effort.

There are alternative ways to define the argument for agentic coding, this is just a really really bad argument to kick it off.

In my experience, it’s even more effort to get good code with an agent-when writing by hand, I fully understand the rationale for each line I write. With ai, I have to assess every clause and think about why it’s there. Even when code reviewing juniors, there’s a level of trust that they had a reason for including each line (assuming they’re not using ai too for a moment); that’s not at all my experience with Codex.

Last month I did the majority of my work through an agent, and while I did review its work, I’m now finding edge cases and bugs of the kind that I’d never have expected a human to introduce. Obviously it’s on me to better review its output, but the perceived gains of just throwing a quick bug ticket at the ai quickly disappear when you want to have a scalable project.

loading story #47136086
loading story #47138168
loading story #47135459
loading story #47134773
loading story #47134241
I was careful to say "Good code still has a cost" and "delivering good code remains significantly more expensive than [free]" rather than the more aesthetically pleasing "Good code is expensive.

I chose this words because I don't think good code is nearly as expensive with coding agents as it was without them.

You still have to actively work to get good code, but it takes so much less time when you have a coding agent who can do the fine-grained edits on your behalf.

I firmly believe that agentic engineering should produce better code. If you are moving faster but getting worse results it's worth stopping and examining if there are processes you could fix.

loading story #47133477
loading story #47134203
loading story #47136520
loading story #47136324
The problem is to know what to write. I spent a whole day yesterday to understand what the problem was with a PDF file we were failing to process. Once I understood the cause it took one line of code to fix it and another dozen of lines for a unit test. A LLM helped me to write the code to explore several possible candidate problems but it did not find the problem by itself.

So code is both cheaper (what the LLM wrote for me much faster than I could have typed it) and is also expensive (the only line that we deployed to production today.)

I really like the idea of Ousterhout's tactical vs strategic programming. Where we either create a new feature as fast as possible vs focusing on architecture and keeping complexity in check.

I truly believe that LLMs are replacing tactical programming. Focusing on implementing features as fast as possible with not much regards to the overall complexity of a system.

Its more important then ever to focus on keeping complexity low at a system level.

Code is cheaper. Simple code is cheap. More complex code may not be cheaper.

The reason you pay attention to details is because complexity compounds and the cheapest cleanup is when you write something, not when it breaks.

This last part is still not fully fleshed out.

For now. Is there any reason to not expect things to improve further?

Regardless, a lot of code is cheap now and building products is fun regardless, but I doubt this will translate into more than very short-term benefits. When you lower the bar you get 10x more stuff, 10x more noise, etc. You lower it more you get 100x and so on.

Computer programming is cheap. Software engineering is expensive.
Code has a generation cost and a maintenance cost.

If you just look at generation then sure it's super cheap now.

If you look at maintenance, it's still expensive.

You can of course use AI to maintain code, but the more of it there the more unwieldy it gets to maintain it even with the best models and harnesses.

loading story #47136737
loading story #47136399
I think the cost and work remains the same. What has change is efficiency. Previously people had to manually program byte after byte. Then came C and streamlined it, allowing faster development.

With python I can write a simple debugging UI server with a few lines.

There are frameworks that allow me to complete certain tasks in hours.

You do not need to program everything from scratch.

The more code, the faster everything gets, since the job is mostly done.

We are accelerating, but we still work 9 to 5 jobs.

loading story #47134406
> When you drop your standards, then writing generated code is quick, easy and cheap.

Not as cheap as generating code of equivalent quality with an LLM.

Spaghetti code was always a thing though
loading story #47136550
Definitely the market incentives for "good code" have never been worse, but I'm wouldn't be so sure the cost of migrating decent pieces of generated code to good code is worse than writing good code from whole cloth.
loading story #47133616
loading story #47138707
loading story #47136946
loading story #47125768
loading story #47134212
loading story #47138713
loading story #47138467
loading story #47125765
loading story #47133753
loading story #47135583
loading story #47133088
loading story #47125721
loading story #47138564
loading story #47136188
loading story #47136448
loading story #47125666
loading story #47138620
loading story #47136349
loading story #47136361
loading story #47135751
loading story #47127358
loading story #47125863
loading story #47135321
loading story #47125734
loading story #47126289
loading story #47126130
loading story #47125691
loading story #47134284
loading story #47125710
loading story #47125930
loading story #47134414
loading story #47135824
loading story #47135451
loading story #47125914
loading story #47133733
loading story #47133462
loading story #47125818
loading story #47134226
loading story #47133191
loading story #47127062
loading story #47126019
loading story #47135643
loading story #47125696
loading story #47133963
loading story #47125633
loading story #47135491
loading story #47134343
loading story #47126153
loading story #47126339
loading story #47136021
loading story #47137256
loading story #47134499
loading story #47125743
loading story #47125693
loading story #47125945
loading story #47127703
loading story #47135600
loading story #47134266
loading story #47133085
loading story #47126198
loading story #47125673
loading story #47135018
loading story #47126116
loading story #47136104
loading story #47125933
loading story #47135506
loading story #47135365
loading story #47126091
loading story #47132919
loading story #47135644
loading story #47126295
loading story #47134386
loading story #47126231
loading story #47137317
loading story #47133016
loading story #47132894
loading story #47136011
loading story #47133993
loading story #47126052
loading story #47138150
loading story #47138399
loading story #47125731
loading story #47125904
loading story #47135183
loading story #47125885
loading story #47126260
loading story #47126291