Comment by tptacek

1 day ago

After all, if we lose the joy in our craft, what exactly are we optimizing for?

Solving problems for real people. Isn't the answer here kind of obvious?

Our field has a whole ethos of open-source side projects people do for love and enjoyment. In the same way that you might spend your weekends in a basement woodworking shop without furnishing your entire house by hand, I think the craft of programming will be just fine.

Same as when higher-level languages replaced assembly for a lot of use cases. And btw, at least in places I've worked, better traditional tooling would replace a lot more headcount than AI would.

  • Not even close, those were all deterministic, this is probabilistic.

    • So what? I know most compilers are deterministic, but it really only matters for reproducible builds, not that you're actually going to reason about the output. And the language makes few guarantees about the resulting instructions.

    • Yet the words you chose to use in this comment were entirely modelled inside your brain in a not so different manner.

  • I already see this happening with low code, SaaS and MACH architectures.

    What used to be a project doing a CMS backend, now is spent doing configurations on a SaaS product, and if we are lucky, a few containers/serveless for integrations.

    There are already AI based products that can automate those integrations if given enough data samples.

    Many believe AI will keep using current programming languages as translation step, just like those Assembly developers thought compiling via Assembly text generation and feeding into an Assembly would still be around.

    • > just like those Assembly developers thought compiling via Assembly text generation and feeding into an Assembly would still be around

      Confused by what you mean. Is this not the case?

      1 reply →

> Solving problems for real people. Isn't the answer here kind of obvious?

No. There are a thousand other ways of solving problems for real people, so that doesn't explain why some choose software development as their preferred method.

Presumably, the reason for choosing software development as the method of solving problems for people is because software development itself brings joy. Different people find joy in different aspects even of that, though.

For my part, the stuff that AI is promising to automate away is much of the stuff that I enjoy about software development. If I don't get to do that, that would turn my career into miserable drudgery.

Perhaps that's the future, though. I hope not, but if it is, then I need to face up to the truth that there is no role for me in the industry anymore. That would pretty much be a life crisis, as I'd have to find and train for something else.

  • "There are a thousand other ways of solving problems for real people, so that doesn't explain why some choose software development as their preferred method."

    Software development is almost unique in the scale that it operates at. I can write code once and have it solve problems for dozens, hundreds, thousands or even millions of people.

    If you want your work to solve problems for large numbers of people I have trouble thinking of any other form of work that's this accessible but allows you to help this many others.

    Fields like civil engineering are a lot harder to break into!

  • > That would pretty much be a life crisis, as I'd have to find and train for something else.

    There's inertia in the industry. It's not like what you're describing could happen in the blink of an eye. You may well be at the end of your career when this prophecy is fulfilled, if it ever comes true. I sure will be at the end of mine and I'll probably work for at least another 20 years.

    • The inertia argument is real, and I would compare it to the mistaken believe of some at IBM in the 1970s that SQL would be used by managers to query relational databases directly, so no programming was needed anymore.

      And what happened? Programmers make the queries and embed them into code that creates dashboards that managers look at. Or managers ask analysts who have to interpret the dashboards for them... It rather created a need for more programmers.

      Compare embedded SQL with prompts - SQL queries compared to assembler or FORTRAN code is closer to English prose for sure. Did it take some fun away? Perhaps, if manually traversing a network database is fun to anyone, instead of declaratively specifying what set of data to retrieve. But it sure gave new fun to people who wanted to see results faster (let's call them "designers" rather than "coders"), and it made programming more elegant due to the declarativity of SQL queries (although that is cancelled out again by the ugliness of mixing two languages in the code).

      Maybe the question is: Does LLM-based coding enable a new kind of higher level "design flow" to replace "coding flow"? (Maybe it will make a slightly different group of people happy?)

      1 reply →

  • > No. There are a thousand other ways of solving problems for real people, so that doesn't explain why some choose software development as their preferred method.

    I don't see why we should seek an explanation if there are thousands of ways to be useful to people. Is being a lawyer particularly better than being an accountant?

  • I'm probably just not as smart or creative as you, but say my problem is I have a ski cabin that I want to rent it to strangers for money. Nevermind a thousand, What are 100 ways without using software that I could do something about that, vs listing it on Airbnb?

    • I was speaking about solving people's problems generally. It's easy to find specific problems that are best addressed with software, just as it's easy to find specific problems that can't be addressed with software.

solving real problems is the core of it, but for a lot of people the joy and meaning come from how they solve them too. the shift to AI tools might feel like outsourcing the interesting part, even if the outcome is still useful. side projects will stick around for sure, but i think it's fair to ask what the day-to-day feels like when more of it becomes reviewing and prompting rather than building.

> Solving problems for real people. Isn't the answer here kind of obvious?

Look at the majority of the tech sector for the last ten years or so and tell me this answer again.

Like I guess this is kind of true, if "problems for real people" equals "compensating for inefficiencies in our system for people with money" and "solutions" equals "making a poor person do it for them and paying them as little as legally possible."

  • Those of us who write software professionally are literally in a field premised on automating other people's jobs away. There is no profession with less claim to the moral high ground of worker rights than ours.

    • I often think about the savage job-destroying nature of the open source community: hundreds of thousands of developers working tirelessly to unemploy as many of their peers as possible by giving away the code they've written for free.

      (Interesting how people talk about AI destroying programming jobs all the time, but rarely mention the impact of billions of dollars of code being given away.)

      2 replies →

    • "Ten year contract you say?"

      "Yes, yes... Satellites stay in orbit for a while. What about it?"

      "Looks a bit cramped in there."

      "Stop complaining, at least it's a real job, now get in, we're about to launch."

    • > Those of us who write software professionally are literally in a field premised on automating other people's jobs away.

      How true that is depends on what sort of software you write. Very little of what I've accomplished in my career can be fairly described as "automating other people's jobs away".

    • Speak for yourself.

      I've worked in a medical space writing software so that people can automate away the job that their bodies used to do before they broke.

      1 reply →

    • Bit of a tangent but...

      Haven't we been automating jobs away since the industrial revolution? I know AI may be an exception to this trend, but at least with classical programming, demand goes up, GDP per capita goes up, and new industries are born.

      I mean, there's three ways to get stuff done: do it yourself, get someone else to do it, or get a machine to do it.

      #2 doesn't scale, since someone still has to do it. If we want every person to not be required to do it (washing, growing food, etc), #3 is the only way forward. Automation and specialization have made the unthinkable possible for an average person. We've a long way to go, but I don't see automation as a fundamentally bad thing, as long as there's a simultaneous effort to help (especially those who are poor) transition to a new form of working.

      10 replies →

    • > Those of us who write software professionally are literally in a field premised on automating other people's jobs away.

      Depends what you write. What I work on isn't about eliminating jobs at all, if anything it creates them. And like, actual, good jobs that people would want, not, again, paying someone below the poverty line $5 to deliver an overpriced burrito across town.

      10 replies →