I entered the programming world circa 1995. There were indeed still some holdouts. A few of them were even good enough to hold out up to that point and write some code that would have been hard to replicate with the compilers of the time.
By the 200xs they were gone. Interestingly, I would say what killed them in the early 2000s wasn't actually compilers, it was the interpreted languages. Others may disagree. Even if they were dog slow by comparison, scripting languages made some things so much easier to program that it didn't matter. And then it prompted static languages to up their game to try to match that. By the time that process played out, people writing only in assembler couldn't keep up anymore.
My first job in tech was writing desktop applications in VB3 (1994, so around the same time)
The company also had an AS400 with a collection of COBOL programmers. They were utterly scathing of the new toy language for doing toy things on PCs. There was no way that VB would ever be a "real" language or that anyone would do anything "real" with it.
And yeah, in terms of serious computing, that's probably true. But the industry leapt at the new tools and tooling, and COBOL faded to obscurity (though there are still AS400s out there, and some of the code they wrote is still managing vast swathes of our essential services).
And all of that was less of a revolution in the industry than the last 12 months have been.
Yeah, the process I described was several years. Depending on how you measure this could well be a 15-20 year process overall, but even what I witnessed was at least 5 years, and that was already the tail end of an ongoing process.
I'm a little reluctant to go too triumphalist on the "adapt or be left behind" bandwagon, because I think that loses some very important nuances as well... but on the other hand, last week I set up a new project and the AI chewed through a lot of boring boilerplate and setup and configuration in about 30 minutes that would have taken me at least a tedious week just a year ago. Anyone who is leaving that on the table is going to find it hard to compete. I still had to go over it line-by-line, and make quite a few changes here and there, but it was also way, way faster to do that then to do it all from scratch.
My position has been to encourage the skeptics to give it an honest try (no deliberately picking something you pretty much know it can't do, or withholding info from it so it fails) but at the same time, hold on to the skepticism, it helps you use it properly. Excessive trust in the AI is definitely a problem right now.
I had great times making simple things I can describe well. But compared to what people get excited about, that's all toy stuff, I still read every line, and massage it into what I actually want, unless it's a throwaway/experiment.
For me, the main thing, the only thing really, is the pushiness.
To put a point on it: I think the wine is poisoned. So what? Are you offended? Or is it that you are so scared that I, some random stranger you never cared about and never offer to help with something I actually want, might miss out on some fine wine? Then let me miss out.
It's the fact that it gets so pushy and insulting and full of gibberish, that it sets my spider senses tingling, yeah. So I would even say: what if I hold on to the skepticism regardless of ability? That even if it cures cancer, I still want to be able to use tools without a black box in-between? That at most we can have a "fully AI" world after we have dealt with the people, I would even say dudes behind curtains, that for whatever reason just cannot let that happen? Fuck the dark enlightenment and the dumb dorks it consists of, is what I'm trying to say, and where that is agreed on, we can discuss earnestly. Where that is a "deal breaker", I want separation, because I have trust issues and intend to keep them.
Compiler developers didn't hoover up as much human creative work as they could, legally or not, to evolve a giant inscrutable thing that does what it does probabilistically, with the explicit goal of replacing as much human labor as possible for the enrichment of the already rich. Whatever benefits we get out of generative AI are just a side effect, and one that may not last when the investors stop subsidizing our access to the big models.
As I said, I think we need to separate the business of AI, which is full of the usual bullshit, and the technology of AI, which is producing some useful tools.
The open source models are proving just as capable as the commercial ones. If Anthropic goes bust tomorrow (which seems likely) then we will still have those useful tools.
LLMs are not going to replace all our jobs. I know they've been claiming this, but anyone who actually uses the tools can see that this isn't true. This is part of the business bullshit. Hopefully it stops when the bubble pops and we get into the depressed phase of the Gartner Hype Cycle, and start building the actual businesses and tools that this tech can provide.
Compilers produce the same output for the same input. You can reason about the output by looking at the input, if you know the compiler (that many modern compilers are way, way too complex for anyone to be actually able to predict the machine code byte by byte doesn't take away from that fundamental determinism). LLM introduce a black box middle man, and that is the feature, whatever short bursts of autonomy people get seduced by is the bug.
It's like saying "we no longer need to be able to read and write because Friendly Company Man provides each of us with an assistant that will always act with our best interests in mind." On a technical level, it's wrong and sloppy, on a societal level it's suicidal. So I'd say whoever wants to follow the pied pipers can do so, when someone tries to drag you off your property for some promised land, stand your ground. If I'm wrong, the Luddites will wither away so why worry. I think the worry actually is that they might be right, and to attempt to not have a control group, because if everything is slop, nothing is slop. If nobody can think, everybody is perfectly fine. If everybody is a slave, all are free.
The difference between compilers and LLMs is that compilers actually work. LLMs do not produce a usable result, no matter how much AI bros try to convince everyone else otherwise.
They absolutely 100% produce usable results for large classes of problems. Usually problems on the more "boring" side, but that's most code.
Even local ones are getting "usable." As an experiment I used OpenCode + Qwen coder to code a text based side scroller game in Rust. Left my laptop on and went to bed and in the morning I had a passable demo that looked like the old DOS game ZZT. This was with a 30b model at 4-bit quantization, so pretty tiny by LLM standards.
BTW LLMs seem to do well with Rust. I think it might actually be the guard rails. It lets the LLM iterate against itself. Dynamic languages don't give any compile time feedback, so it's harder to do that. This is something that's 100% the opposite of what I would have expected.
Comments
I wonder if people said this about compilers. Some day they’ll replace all that compiler generated junk with hand crafted ASM.
This reminds me of that. The spec is the new high level language. Code is ASM. ASM is like CPU microcode.
I entered the programming world circa 1995. There were indeed still some holdouts. A few of them were even good enough to hold out up to that point and write some code that would have been hard to replicate with the compilers of the time.
By the 200xs they were gone. Interestingly, I would say what killed them in the early 2000s wasn't actually compilers, it was the interpreted languages. Others may disagree. Even if they were dog slow by comparison, scripting languages made some things so much easier to program that it didn't matter. And then it prompted static languages to up their game to try to match that. By the time that process played out, people writing only in assembler couldn't keep up anymore.
My first job in tech was writing desktop applications in VB3 (1994, so around the same time)
The company also had an AS400 with a collection of COBOL programmers. They were utterly scathing of the new toy language for doing toy things on PCs. There was no way that VB would ever be a "real" language or that anyone would do anything "real" with it.
And yeah, in terms of serious computing, that's probably true. But the industry leapt at the new tools and tooling, and COBOL faded to obscurity (though there are still AS400s out there, and some of the code they wrote is still managing vast swathes of our essential services).
And all of that was less of a revolution in the industry than the last 12 months have been.
Yeah, the process I described was several years. Depending on how you measure this could well be a 15-20 year process overall, but even what I witnessed was at least 5 years, and that was already the tail end of an ongoing process.
I'm a little reluctant to go too triumphalist on the "adapt or be left behind" bandwagon, because I think that loses some very important nuances as well... but on the other hand, last week I set up a new project and the AI chewed through a lot of boring boilerplate and setup and configuration in about 30 minutes that would have taken me at least a tedious week just a year ago. Anyone who is leaving that on the table is going to find it hard to compete. I still had to go over it line-by-line, and make quite a few changes here and there, but it was also way, way faster to do that then to do it all from scratch.
My position has been to encourage the skeptics to give it an honest try (no deliberately picking something you pretty much know it can't do, or withholding info from it so it fails) but at the same time, hold on to the skepticism, it helps you use it properly. Excessive trust in the AI is definitely a problem right now.
I had great times making simple things I can describe well. But compared to what people get excited about, that's all toy stuff, I still read every line, and massage it into what I actually want, unless it's a throwaway/experiment.
For me, the main thing, the only thing really, is the pushiness.
To put a point on it: I think the wine is poisoned. So what? Are you offended? Or is it that you are so scared that I, some random stranger you never cared about and never offer to help with something I actually want, might miss out on some fine wine? Then let me miss out.
It's the fact that it gets so pushy and insulting and full of gibberish, that it sets my spider senses tingling, yeah. So I would even say: what if I hold on to the skepticism regardless of ability? That even if it cures cancer, I still want to be able to use tools without a black box in-between? That at most we can have a "fully AI" world after we have dealt with the people, I would even say dudes behind curtains, that for whatever reason just cannot let that happen? Fuck the dark enlightenment and the dumb dorks it consists of, is what I'm trying to say, and where that is agreed on, we can discuss earnestly. Where that is a "deal breaker", I want separation, because I have trust issues and intend to keep them.
Compiler developers didn't hoover up as much human creative work as they could, legally or not, to evolve a giant inscrutable thing that does what it does probabilistically, with the explicit goal of replacing as much human labor as possible for the enrichment of the already rich. Whatever benefits we get out of generative AI are just a side effect, and one that may not last when the investors stop subsidizing our access to the big models.
As I said, I think we need to separate the business of AI, which is full of the usual bullshit, and the technology of AI, which is producing some useful tools.
The open source models are proving just as capable as the commercial ones. If Anthropic goes bust tomorrow (which seems likely) then we will still have those useful tools.
LLMs are not going to replace all our jobs. I know they've been claiming this, but anyone who actually uses the tools can see that this isn't true. This is part of the business bullshit. Hopefully it stops when the bubble pops and we get into the depressed phase of the Gartner Hype Cycle, and start building the actual businesses and tools that this tech can provide.
Compilers produce the same output for the same input. You can reason about the output by looking at the input, if you know the compiler (that many modern compilers are way, way too complex for anyone to be actually able to predict the machine code byte by byte doesn't take away from that fundamental determinism). LLM introduce a black box middle man, and that is the feature, whatever short bursts of autonomy people get seduced by is the bug.
It's like saying "we no longer need to be able to read and write because Friendly Company Man provides each of us with an assistant that will always act with our best interests in mind." On a technical level, it's wrong and sloppy, on a societal level it's suicidal. So I'd say whoever wants to follow the pied pipers can do so, when someone tries to drag you off your property for some promised land, stand your ground. If I'm wrong, the Luddites will wither away so why worry. I think the worry actually is that they might be right, and to attempt to not have a control group, because if everything is slop, nothing is slop. If nobody can think, everybody is perfectly fine. If everybody is a slave, all are free.
AI is not an abstraction.
The difference between compilers and LLMs is that compilers actually work. LLMs do not produce a usable result, no matter how much AI bros try to convince everyone else otherwise.
At this point, this is categorically false. Your mental model is very out of date.
The results may not be ideal but I can't say I've had a single output so far this year that wasn't usable.
That, if true, was pure luck. Compilers are deterministic, LLMs are casinos.
Have you tried them recently?
They absolutely 100% produce usable results for large classes of problems. Usually problems on the more "boring" side, but that's most code.
Even local ones are getting "usable." As an experiment I used OpenCode + Qwen coder to code a text based side scroller game in Rust. Left my laptop on and went to bed and in the morning I had a passable demo that looked like the old DOS game ZZT. This was with a 30b model at 4-bit quantization, so pretty tiny by LLM standards.
BTW LLMs seem to do well with Rust. I think it might actually be the guard rails. It lets the LLM iterate against itself. Dynamic languages don't give any compile time feedback, so it's harder to do that. This is something that's 100% the opposite of what I would have expected.