← Back to context

Comment by tptacek

10 hours ago

Right, but this is the most hopeful imaginable prediction: AI accelerates everything, but everything good is still mediated through taste and expertise, so being a (say) skilled systems engineer is important and rewarding, just with all the tedium distilled out of it.

There's a less hopeful outcome, where no skill is needed at all, because every conceivable thing is one-shot-able from a SOTA model. But then, at that point, you're saying something pretty profound about computer science (roughly: that there was no meaningfully more sophisticated and complex place to go from where we are today).

My wife is not a developer at all but is highly analytical. I find her a better software architect than most developers I met.

I suspect there are a lot of people really good at “systems” - there are a lot of really clever folks out there - that did not go through the proper CS rituals and are thus shunned but in fact can take over your job in no time especially with AI.

My wife regularly gets pushed away by “IT” at her work and unlike others she pushes back, but they don’t like her. They start talking about db clustering details etc as if that has any bearing on anything. I am a dev, I know she doesn’t know what logical replication is, but I do know she can replace their team. She just needs one technical person to keep an eye on things.

I suspect we will end up with just a handful of building blocks like “this is how data is siloed, secured etc”, “this is how dashboards are made here”, “this is how email is handled”, etc and employees with AI just develop their own stuff on top of these. The “devs” just oversee the building blocks and the overall soundness of the flow. Don’t know how many you need once that is standardized..

  • We're going through a very unique, fast-paced transition and the problem is mostly cultural/psychological IMO

    People react before they've had the time to really process it, and show a lot about their existing thought processes

    Many technical people IMO fetishize technology and processes, disagreeable-but-right authority justified by their willingness to work on things that most people find hard or just don't want to do. Computers can be a vessel for identity and self-worth - it's alluring to think of technology (and ourselves) as intrinsically valuable. A surprisingly large contingent seems to see work as necessarily zero-sum and adversarial, and make it a core part of their identity (and often not even particularly abnormally powerful or better for it) - like what even is the archetype there?

    People like your wife are the ones writing crazy excel spreadsheets and VB6 macros, and making decisions about enterprise IT products, and solving problems with computers! They're actually probably more knowledgeable about "what is a useful and valuable way to use computers" than the ones who find computers fun and freeing and Just Want to Code.

    Algorithms will dole out as much outrage as you can take but at the end of the day, doing stuff with computers that people want to pay for - usually, automating or securing things - is why people pay us!

    One framing is people overindex on Being a certain kind of person or (the archetype they aspire to or identify with, that is valuable in a passive sense), over Becoming or Doing what's necessary for their work to be valuable (actively helping people, and stuff that's not fun). Very normal to feel grief and not want life to feel so uncertain, but it was literally always uncertain! Life isn't over because the business people at your IT job want to build software!

That’s something that I have been thinking about for a while now. Even prior to LLMs, many large companies have essentially been iterating on the same half a dozen ideas over and over again and there doesn’t seem to be much new coming out even post LLMs.

The most recent new things that LLMs have unlocked (regarding software dev) for us is reverse engineering and combining old games, unearthing decade old vulnerabilities, and helping root and debloat consumer hardware. Which are all cool and useful, but none of it being a “next great thing”.

Perhaps LLMs are really doing is highlighting how the software industry was already nearing its economic maturity and this just shifted the timeline from 2040 back to 2027-2030.

  • Don’t forget we don’t live in a pacifist utopia. Companies don’t work on the same ideas just because they think they can make it better.

    Companies work on the same ideas because they want to own IP, data etc. and then charge money.

    The other way around they work on the same ideas not to be charged by others and control their business.

    “software industry” is not some big happy hippie family. Patent wars, browser wars, OS wars - well we get a lot of open source for free but that’s not the norm.

  • I have yet to see LLMs do well “autonomously” on anything that doesn’t fall into any of these 3 buckets:

    1. well specified

    2. well tested (which is a form of spec)

    3. represented in the training set (i.e. not built on a corpus of human developed examples)

    For example, a lot of the compiler porting efforts fall into all 3 buckets: compilers are well specified (there is a set of valid inputs and an expected behavior), they are typically well tested, and as a bonus, in a way that is implementation agnostic thanks to the clean interface (think: integration vs unit tests), and are very well represented in the training set.

    • You can "solve" 1 and 2 by N-version programming. Have the same code implemented twice, or more times, you get free error testing by fuzzing or running replicas in shadow mode. In order to make replicas maximally different choose a different language, framework, agent harness and LLM.

      There remain some nitty details related to tracking randomness and choosing what interfaces to log. But even having your code testable by replicas would help organize it better and expose different assumptions made by the language or library stack.

      When you get different outputs from replicas it can be 1. one of them has a bug, or 2. the spec is unclear -> fix the bug or the spec. So this method catches both sides. It also might be faster than traditional code based testing, you can build replicas in parallel. A replica is an open ended test, unlike coded tests it can be tried on open ended input values.

      The core idea is that it is easier to implement twice than to imagine bugs. We already solved implementation, but bug finding means running code in your head, it touches the halting problem issues - can we really imagine behavior from code? I don't think we can do it well. That is why we should just make replicas instead, tokens are getting cheaper and cheaper by the month.

    • and yet some OSS (projects not really known for 1 and 2) multiplied change velocity the last year, implementing features via what is essentially vibecoding.

      If you look at that, this approach is producing a pile of slop, where one LLM implements a feature, two weeks later another LLM spots an edge case and without much human review just crams in the code to fix that. Even at 1-2 months of that, those repos have significant changes and the commit messages get weird. I wonder what happens if the LLM won't spit out a fix anymore?

      Will the human maintainers who started this process because noone thanked them and noone wanted to work with them on their bright new ideas just reset to the last commit they understand? Will they drop the project? The sunk cost for them is enormous. The time-effort required to fix the mess is gargantuan already. To me it increasingly seems that after the LLM industry robbed most humans of their collective labour output it will now rob them of labour aka time as well. Some people (like you and me) seem to notice that but most just go on and essentially spend away their life on machines now. I guess the problem is that most of these people have been severely cut off from using their own agency.

  • Honestly I think you're on to something, as by far the most novel and interesting use cases I've seen for LLMs in general are mostly around reverse engineering things, especially if you can hit it with Ghidra, but honestly anything that can feed some sort of data and control back to a model.

  • > the software industry was already nearing its economic maturity

    What I'm sensing is something I might describe as the Oligarchy reaching the point of significant societal pushback, like the labor rights movements that ended 80 work weeks, unsafe conditions, and child labor in factories (i.e. The Jungle).

    My hope is that we can use this moment in human history to break the user tracking and targeted advertising industry. It's been so harmful to humans, but in doing so, we will likely break a major revenue source that supports our well above average salaries. I still think it should be done.

    • What indications do you see of significant and effective societal pushback?

      I would love to believe this but I don't see it yet. I see a lot of anger in some circles, but I also see the machine marching on as normal.

    • What would be funny with LLMs, having been purposefully trained to be the best software creating things on earth, wind up inadvertently making software virtually valueless (because it can be made and copied so easily) and undermining the value of the companies that proliferated their use in the first place.

      2 replies →