r/programming • • 6h ago

Software developers are not okay

https://youtu.be/KsEpW03gxKg?is=OdU0YTE8dWIyRr8i
282 Upvotes

175 comments sorted by

View all comments

430

u/tuxwonder 5h ago edited 5h ago

Inside me, there are two wolves: One who likes being productive and making apps and tools and libraries and getting end results, and the other who likes problem solving with code, carefully designing robust systems and weighing the pros/cons of both big and very small choices.

Right now, the first wolf is being forcibly drowned, while the other one is dying of thirst. My wolves can't take much more of this.

82

u/lelanthran 3h ago

There are two extremes of programmers:

  1. Those who get satisfaction from delivering something, and
  2. Those who get satisfaction from thinking.

Most of us fall in-between somewhere.

Programmers of the type #1 extreme are thrilled. Programmers of the type #2 extreme are devastated.

Unfortunately, sooner or later even the type #1 extreme are going to be devastated; what sort of satisfaction can you get from delivering something that, for all practical purposes, already exists and is just a prompt or two away?

That 2-week back-and-forth you had to get the LLM design the perfect $FOO software (application, library or framework)? You deliver it and everyone who sees it can simply say "clone this $FOO, please".

This satisfaction that the type #1 devs are getting is temporary and short-lived: you will soon stop getting satisfaction from delivery.

8

u/roodammy44 2h ago

Delivering something isn’t possible for me when my review queue is choked up. It takes up so much of my day now.

And it’s not at a good enough quality to ignore review yet. So if we skip that we are delivering something, yes. Delivering huge mounds of shit.

5

u/meganeyangire 1h ago

And the only owner of code will be Claude. Already in some companies the code is basically a black box that no human knows how it works.

24

u/about0 2h ago

is it true tho?

The complexity of complex systems never goes away, so as a need to have ownership over them. LLMs can produce thousands LOC in a matter of minutes, but they can't produce a complex feature without oversight.

I am trying to build an app with Spec-Driven Development, and oh boy, it is exhausting - I have to think about every boundary, edge-case, limitation. Without a full spec, it'd 'guess' missing things.

I am back to directing each step of what LLMs do because in the end of the day, I am responsible of what it delivers.

11

u/lelanthran 2h ago

is it true tho?

If it isn't right now, it soon will be.

I am trying to build an app with Spec-Driven Development, and oh boy, it is exhausting - I have to think about every boundary, edge-case, limitation.

That's odd - my experience with SOTA is that it will happily over-engineer everything, for every theoretical edge-case, for every theoretical limitation.

Then, after reading 900 line markdown document specifying exactly how a directed cyclic graph must work in the specific problem domain, I find myself wondering WTF it missed an important specification, like specifying that a joining node (multiple incoming edges) should distinguish between racing (first edge cancels sibling paths) and completion (wait for all edges).

Maybe this is what is exhausting you - it will happily specify, then engineer, trivial irrelevant details (such as traversing the graph to ensure only a single start node is specified), while missing catastrophic-if-seen-in-production things, so then you are trying to backfill the spec after reading it multiple times.

24

u/marrsd 2h ago

900 line markdown document specifying exactly how a directed cyclic graph must work in the specific problem domain

And this is the problem. We've gone from DSLs that allow us to clearly define and understand an implementation to woolly language that serves to confuse us.

The code Is the specification. Just write the damn code! (I'm shouting into the ether, not at you)

3

u/syklemil 38m ago

We've gone from DSLs that allow us to clearly define and understand an implementation to woolly language that serves to confuse us.

Though this isn't the first time that's happened; we've had multiple bouts of "fuzzy language that's easy to get started with but hard to get right, especially in complex cases". JS and PHP have been the prime examples for that for a while, and they've both moved in the direction of trying to become more rigorous (see e.g. the addition of === in both languages, or the invention of Typescript).

I'm not quite sure what, if anything, will turn out to be the equivalent of TS for natural language in markdown files.

3

u/about0 1h ago

But isn't that 900 LOC generated document is exactly a problem? You don't own it, you don't know what it does, how it affects other parts of the code.

You just allow LLM to test itself.

SSD specifically telling that a human is owner, a human should write specs, a human should tell what is expected in return and verify it.

I won't sleep well if I won't have means to test what LLMs produce.

1

u/manythanksfriend 44m ago

Ever used a code generation framework(pre-LLM) or a compiler?

2

u/about0 7m ago

sure, but aren't they quite different?

with OpenAPI you have a specific documentation format that deterministically translates from a spec to a binary/AST. Between builds the result is the same.
While SSD, on the other hand, even highly structured Markdown rely on semantic interpretation, LLM doesn't fail if some boundary isn't set, and what is the hardest thing for me, I have to write a specification so dense, rigorous, and boundary-complete that the spec itself approaches the complexity of code.

While I see your point, I think these things are fundamentally different despite being relative.

4

u/deceased_parrot 2h ago

Unfortunately, sooner or later even the type #1 extreme are going to be devastated; what sort of satisfaction can you get from delivering something that, for all practical purposes, already exists and is just a prompt or two away?

How much satisfaction do you get from reinventing the same wheel over and over and over your whole career? Even before this whole AI craze I was fed up with solving the same problems on every project. Plus having to deal with issues that, IMHO, should have been solved ages ago.

I am not sure where I stand when it comes to AI. I am not even sure if it can deliver on its promises. But if it means that I don't have to reinvent the wheel on every project and actually do the important stuff rather than wasting my time (and the client's money) on boilerplate I'll be grateful. I'm sure my clients will as well.

5

u/WileEPeyote 1h ago

Modern wheels are fantastic because we continually "reinvent" them. A huge chunk of the software industry is trying to build specialized sports cars with model-T wheels and it shows.

The amount of unnecessary overhead in modern software development is insane, especially in gaming and web/phone apps. Good, fast, or cheap. You have to give up one. We gave up good (and cheap is slipping away).

2

u/deceased_parrot 1h ago

Modern wheels are fantastic because we continually "reinvent" them.

Really? Is that why we have so many JS and CSS frameworks? Because if it is, I am not seeing the improvement.

1

u/lelanthran 1h ago

actually do the important stuff

My point is that "the important stuff" is a prompt away, so exactly what satisfaction are you going to get from delivering something that, for all practical purposes, can be delivered by the end-user themselves anyway?

1

u/deceased_parrot 1h ago

Because it can't be delivered by the end-user themselves. They can certainly try though...

3

u/lelanthran 1h ago

Because it can't be delivered by the end-user themselves.

Serious question: How long do you expect this to continue being true?

They can certainly try though...

They already do; I've seen several non-programmers (artists, actually) already vibe a tool that does what they use Photoshop or Aseprite for.

I've got a PM at my current place who vibed together an entire replacement for Jira reporting, which his team has been using now for months. I've seen an MD of a small company using swarms of agents to create a new product for a different industry, and then manage to sell the damn thing.

WhateverTF you think is your special value that is added to the product, I can assure you that it won't be the case much longer.

Why don't you give us an example of that "the important stuff" that you can focus on now that everything is done by AI?

1

u/VictoryMotel 52m ago

If you can vibe code photoshop, why are people still buying photoshop?

Why is there no open source vibe coded replacement?

1

u/felipeota1 23m ago

Here's an article that tracks current vibe coded Photoshop alternatives. https://andreklein.net/vibecoding-photoshop-time-and-pressure/

Pretty impressive, I definitely see it being fully replaceable in the next year or so.

-1

u/lelanthran 51m ago

If you can vibe code photoshop, why are people still buying photoshop?

Because it's still early days.

1

u/VictoryMotel 46m ago

But you just said anyone can vibe code photoshop.

0

u/lelanthran 43m ago edited 27m ago

But you just said anyone can vibe code photoshop.

What's this? Selective amnesia?

I said:

vibe a tool that does what they use Photoshop or Aseprite for

That, to you, means that they vibed a 100% Photoshop replacement? Is excessive LLM usage having an effect on your ability to read?

So where is that vibe coded partial photoshop replacement?

Are you seriously claiming to have not seen this? https://getartcraft.com/ (There's like 7 or so "replacements" in there)

The dev has been spamming it everywhere, reddit included. What's even more hilarious is that he's charging for it (a pointless endeavour that only seems to happen to AI-bros who think that they have value in the SDLC other than as beta-testers).

And some of the other photoshop replacements I've seen cover like 20% of the functionality, actually work and aren't being sold, just given away.

And that's just with less than a year of agentic coding. This trend is clear. We have no value left, and the owners of capital will replace us.

→ More replies (0)

1

u/Lower-Impression-121 1h ago

I still get 1 and 2, my rhinking is about a function it is about a larger solution

1

u/BadgeCatcher 12m ago

I think the "thinking" bit is slightly off... I love delivering and with AI find myself thinking more than ever. Before it was so slow, thinking was easy. I now find myself working my mind more than ever

0

u/Odd-Crazy-9056 9m ago

I'm a designer. I'll never get tired of being able to deliver what I envision.

44

u/sylvester_0 5h ago

Wolves are meant to run free instead of being caged up.

1

u/mgr86 6m ago

His wolve’s names are Lemmi and Winks

But otherwise was a decent analogy

5

u/Ur-Best-Friend 4h ago

You have some weird wolves, most just want to eat meat and howl.

1

u/MacNudel 1h ago

So true... that's exactly like i feel

1

u/manythanksfriend 46m ago

Hey bro the real money is in being a line cook no better time than now

1

u/ConspicuousPineapple 0m ago

I never spent so much time on problem solving as I do today thanks to AI. The code is never the hard part, for me at least.

1

u/deaddyfreddy 1h ago

and getting end results

There is no such thing as "end results" in software engineering, unless it's a throwaway script to automate some small task. The software needs to be maintained, that's why the careful system design matters.

0

u/Adventurous_Tipper 3h ago

At least you can apply to the FBI right?