Programming used to be free
29 points by abhin4v
29 points by abhin4v
And so it bothers me that this might regress computing back to the plutocracy of 1970s.
This is a feature, not a bug, as far as those pushing SaaS LLM solutions are concerned.
Very insightful article. Two things in particular:
Implicit in this worry is that somehow the ability to program without LLMs is being taken away. That doesn't seem like it's happening?
Even if LLM agents eventually become so productive that using them is required for absolutely everything in professional settings (we're definitely not there yet), nobody is stopping you from ignoring them in your personal projects. Certainly people were capable of producing valuable software in the pre-LLM days and that level of productivity is not going to decrease in absolute terms (except by skill atropy). It will probably continue to increase just as it always has with better abstractions, programming languages, tools, etc. And in fact if you dislike using coding agents, then working on abstractions is a good fit because (so far) LLMs are more or less incapable of inventing them.
Manual programming is not going to disappear, no, but I have the quality will degrade as LLM-first approaches become more profitable and there is less funding and movement for improving "old" methods. Personal and small projects will certainly remain viable, but the skills learned from that experience might just become detached from the professional reality and requirements, much like compsci currently is, in large part. I have a feeling it's not going to be pretty even when the job market recovers.
And old software. As percentage tilts in favor of LLM-first approaches, there will be less and less people competent enough to maintain software the "old school" way. Eventually, that software will die, leaving us with a huge LLM-first bloatware. Possibly I am not informed enough, but I don't see this playing out any other way.
This is a weird take.
They can’t learn vibecoding.
No one learns vibecoding. It’s—by definition—going all by vibes. There’s no methodology to it. You can find completely opposite approaches that work (or not) for different people. It’s non-reproducible—by design.
At the same time, programming is freeer than it ever was. It’s really hard to make paid programming tools. You basically can not come up with a new programming language and sell a compiler/interpreter for it. Well, maybe it’s some sort of verilog replacement an average programmer can actually understand. In all other cases noone’s gonna invest time and money into unproven tool. If you go look into pait dev tools you’ll notice that there are basically two and a half categories:
Services. Things like CI (Vercel and co also goes into this), code hosting (GitHub, GitLab), issue trackers (trello and whatnot), etc. There are free alternatives but someone else’s responsible for making them run so it’s worth paying.
Legacy tools. Products with a long history that have some reputation. Things like Delphi (though, there’s a free community edition now), IDA (also with a free option now). There are fully free options out there for these products. They’re lagging behind but the gap shrinks rapidly.
2.5. Highly specialised industry-specific tools. Like many HDL simulators.
Internet is also full of free learning materials. Including technically illegal sources. For instance back in 2010s (when OP started programming) there were not massive online libraries full of books on every niche topic. No matter how morally compromised you were you were limited to free materials or selection in your local library. It’s easier now to get a book of 200 copies ever printed than back in 2010 find a decent tutorial on your language of choice outside of official docs.
So yeah, I don’t think the problem in the OP is real. At least the way it’s presented. If the whole industry becomes dependent on subscription to AI we’ve got a very different and much worse problem.
At the same time, programming is freeer than it ever was.
I believe this is currently the case. I don't trust that it'll remain the case. I'd love to be proven wrong, but I can't help but wonder if it's going to become limited -- maybe intentionally because that's profitable, maybe unintentionally because that's easier for the ecosystem.
No one learns vibecoding.
I used to think so, but I'm getting a feeling that patterns are emerging. It doesn't work for everyone, and developers understandably distrust the whole approach; but if it is useful for security work, code review, menial tasks, and assistance, it might have enough impact to make pure programming untenable in comparison, even if it never replaces any software engineers.
No one learns vibecoding. It’s—by definition—going all by vibes. There’s no methodology to it. You can find completely opposite approaches that work (or not) for different people. It’s non-reproducible—by design.
Even by the strictest definition of vibecoding it's still a learned skill. Knowing how to prompt to get the things you want is not trivial! And while I disagree with "there's no methodology to it", that wouldn't mean it's impossible to learn. It would just mean it's all tacit knowledge, rather than something you can pick up by studying.
I question existence of tacit knowledge when it comes to LLMs. LLMs are big, complex, non-deterministic, and dynamic systems. You can learn to use them to an extent but you can not learn them to a point of consistently good results.
It's like weather prediction when all you can do it see your patch of sky in your small village. You might be able to tell if tomorrow's gonna rain with some sort of accuracy but you can not predict all parameters of weather a month away. All you can do is hope for a sunny weather to do your laundry. And when the day comes take whatever weather is that day or try again later if it's pouring.
And people tried to predict weather using all sorts of crazy methods. They looked at the color of sunsets, written large prompts, watched shapes of clouds, written small prompts, watched yields of specific berries, used skills, looked at the moon phase, told them they're supergood programmers. Quite a lot of it is pure superstition. And the rest is untransferable between models and unreliable even within a single provider because they swap models silently, futz with quantization to reduce costs, change caching ttl willy nilly, and do a million other things without any regard for stability.
None of those things are in contradiction with it being a learnable skill. Just as an example, sports are also big, complex, nondeterministic, and dynamic systems. Yeah, you're never going to be able to predict where the ball is going to be five minutes, and the meta will shift out from under you unexpectedly, and sometimes you're just going to get unlucky. Does this mean sports are not learnable skills? No, that's absurd.
You can learn to use them to an extent but you can not learn them to a point of consistently good results.
Lots of people, myself included, get consistently good results. (Not 100% consistent, but consistent enough to be useful and not frustrating.) A big part of that is knowing which problems not to use them for, of course, but that is in itself part of the skill of using them.
The difference between $0 and $1 wasn’t “free” vs “cheap”. In my circumstances, it was “possible” vs “unachievable”.
This resonates with me a lot because that essentially reflects my childhood, and therefore is also what I fear the most about vibecoding.
With vibecoding let loose, we end up with code that's overly complicated and bloated (citation needed, I know, but that's what I'm seeing left and right). In my mind, what follows is that such code won't be maintainable unless you also use AI tools. And this is what's being sold to us as well: "don't worry about the code; AI will do just fine with it!".
It doesn't matter if the code is open source or not at that point: once the code is so convoluted that only AI can deal with it, you'll be left out if you can't use the tools. Mind you: tests might be left out as well because "AI can write them whenever needed, so we don't even need to check them in" (I kid you not, I've heard this). Sure, you can claim that you don't have to use the tools and that you can always edit the code by hand... but I'm afraid that this isn't going to be realistically possible. Especially for the junior folk trying to get in.
Cost arguments are always odd to me. New tools always cost. One makes do with hand me downs until the cheap stuff comes out.
I programmed in plain text editors for many years before I got my first IDE.
I think then people were complaining about paying Borland and singing the praises of pirating their software.
Then high quality open source stuff came out.