top | item 47147385

(no title)

roxolotl | 4 days ago

People are missing the forest through the trees. Producing code which implements business logic has always been easy. This has always been true, even decades ago. As of at the early 2000s you could have spent around a rather small amount of money and gotten an app written for you based off of your natural language description by someone in a developing country. But what you got was a big ball of mud. It might correctly implement your ideas, it might not. I know this because I’ve helped make take these big balls of mud and turn them into actual software.

The hard part is long term maintenance. The hard part is retrofitting new features. The hardest part of all is not building a big ball of mud.

Mythical Man Month is still an amazing read. 9 agents still cannot have a baby in 1 month because the problem has never been the speed at which we type.

discuss

order

gogopromptless|4 days ago

The literal writing of the code was hard. This revisionism about how we were all secretly shakespeare typing monkey scammers pulling the wool over the eyes of the economy drives me nuts. Choosing which words to put in the editor, how to express all these ideas in a limited syntax. That was the big skill.

Sure, writing a program that makes a machine kind of do something was easy. Lots of people can do that. But then you ship a mobile app to a billion users and discover that people are genuinely wired differently.

different cultures, different mental models, different expectations

Now you have to accommodate and express all of that complexity in a language whose only reader is a machine that tolerates zero ambiguity. And you have to do it in a way that other engineers can read, reason about, and build on top of without the whole thing exploding. That's not requirements gathering. Its literally writing it down

You're doing the thing where you read code like a fish breathes water and conclude it was easy to write. You can read a Nobel Prize novel in a weekend too. The readability is the achievement, not evidence it was trivial.

Edit: I got pretty heated about this and wrote up a proper rebuttal: https://promptless.ai/blog/technical/writing-code-was-hard-a...

atoav|4 days ago

I program for 20 years. More than half of my life. Some people forget how they felt as beginners, I did not. Which I know, since I teach programming as well.

As a beginner syntax is the hard thing, remembering how to write a thing. As a beginner you don't even think about structure, how to write maintainable or testable code — you're just happy it eventually works for you. Depending on the beginners character they might fall into the trap of thinking more complicated code using more advanced language features is a sign of a genius programmer.

When you're getting better you realize that writing the code is indeed the easy part and that you should avoid writing code that is too clever unless it is well localized and neatly tucked away. Writing clever code is something that does not impress you at all — quite the opposite as it is usually just unnecessary bragging. The hard part after all isn't writing clever code, it is finding good abstractions, staying consistent, writing maintainable and testable code without being too smart. It is understanding and then solving the real world problem in an elegant way. It isn't writing what the customer think they want, it is writing whst they truly need.

That does not mean actually writing the code isn't specialized work that requires skill. But it just isn't the hardest part of the job. Just like knowing how to use the tools isn't the hardest part for a car mechanic. Making sure that the car drives reliably, you chose the right parts, you did it fast and efficiently is.

roxolotl|4 days ago

I think we’re agreeing and likely have different understandings of what’s meant by “code wasn’t the hard part”. What you’re describing is what I’m calling the hardest part: building a system. To me that’s different from “coding”. This isn’t engaging in revisionist history. It’s why I’m referencing a book written 51 years ago, almost two decades before I was born,[0] and referring to a joke about systems design from ‘99[1].

0: https://en.wikipedia.org/wiki/The_Mythical_Man-Month?wprov=s...

1: https://www.laputan.org/mud/

Edit: This also isn’t to say that _millions_ around the world aren’t employed just to write code. This isn’t to say LLMs aren’t hugely disruptive. This isn’t even to say they aren’t also good at the hard parts. It’s just to say there’s a difference between coding and systems design and one is harder than the other in most cases in most jobs.

jvanderbot|4 days ago

Great writeup, that is all

krackers|4 days ago

>That’s not evidence the task was easy. That’s evidence it was so hard...

Are humans starting to adopt LLM patterns or was this was ironically written with an LLM?

That said, I'm surprised you didn't bring up Marx in your essay in the later sections. I vaguely remember he had some thoughts about derivation of value from labor vs "ideas/capital". Whether or not you agree, this debate is reminiscent of that just moved up one level to white-collar workers.

threethirtytwo|4 days ago

This article is a coping mechanism. What it's really saying is this:

"The thing that LLMs are taking over is easy, we humans still have agency over the hard part."

That's what he's trying to say, and I can tell you, this is not true. Programming was the hard part. That's why we got paid so much. It's the easy jobs that are immune to AI: Gardening, construction work, blue collar jobs,... etc.

Mind you not easy in the sense that the work isn't hard, but easy in the sense that anyone can do it. Those are the jobs that are ironically safe.

remuskaos|4 days ago

Anyone can do construction, blue collar jobs? That hasn't been my experience with contractors.

cryptonector|4 days ago

Programming is -relatively- the easy part.

Getting it right is much harder.

Knowing what to build is way harder.

Debugging is hard.

Dotting all the i's and crossing all the t's to get your product to ship can be hard.

Maintenance and support is hard, especially if the product is riddled with problems, but also just due to the passage of time.

Dealing with tech debt is hard.

Communicating is hard.

tayo42|4 days ago

Do you think someone un fammilar with coding can sit down with one of these agents that write software and end up with a running phone app?

dubeye|4 days ago

I'm definitely cheap when it comes to software costs, and I'm guilty of paying for big bills of mud.

This is completely different though. In the past I'd always go back to paid SaaS when the mud broke apart.

Not true for the past 18 months for me, I am developing features, maintaining code, all via natural language to a much higher standard than I've ever had in my business before.

A low bar, perhaps, but it's definitely not the same.

raincole|4 days ago

It's so laughable that people now all claim programming has always been easy.

I give you a bunch of high school students with average grades and no programming experiences. How long do you need to educate them so they can implement a JPEG decoder from JPEG spec, without a reference library?

It's a 100% unambiguous task. One doesn't need to understand the math behind discrete Fourier transform to implement JPEG. It's just a 1 to 1 translation from the spec to code. Must be not so hard!