The Language Wars Are Over: ChatGPT Won
bourgoin.dev
bourgoin.dev
If you've had hands-on experience coding with ChatGPT (or 3D printing), you'll know it has huge blind spots and limitations. It's impressive, but it's a long way from fizzbuzz and fibonacci to comprehending and iteratively improving on a large codebase, running all the related tools, operating and testing a GUI as a user, etc.
Excited to see what happens, but I wish people would delve into the details a bit more and not always make these crazy extrapolations based on first impressions.
The idea that programming languages are getting another layer of abstraction is both fascinating and intuitively correct. This has been a dream in the industry since my first steps into the programming world in the early eighties. We even had a word for it, I think it was called a fifth generation language. It has been a long time coming as I remember that term being discussed in computer magazines in 1985. But here we are and I can't believe I'm far more excited about this than all you young ones.
And I'm just saying, having hooked up ChatGPT to my python interpreters, my text editor, my IDE - we're definitely not there yet, and I'm not totally convinced there aren't some fundamental limits to the fixed-context next-token-prediction paradigm. You have to be very precise and technical in your prompts, you have to be working on toy isolated problems, and you have to watch it like a hawk and fix a lot of subtle errors (it's a good mimic, which has the unfortunate effect of making its errors harder to spot).
And, it doesn't (yet) have a visual interface to see what e.g. a web app is doing interactively, click its buttons, see "soft" bugs or confusing UI aspects, poke around in dev tools, etc. I'm sure that's coming (researchers are working on these multimodal models), but I have my doubts we're going to just turn over trust fully to the next generation of LLMs and let them write everything in brainfuck or whatever.
Not trying to poo-poo LLMs or score cheap HN dunks here, this stuff is amazing - but the hype has gotten a little disconnected from reality, so some balance is good I think.
The tooling is going to look very different. Every time we move up an abstraction layer we give up some guarantees from the underlying platform. The move to the cloud forced us to give up on having deterministic hardware. This is going to be a shift in that same direction. The lack of determinism causes problems to be sure but the payback is so great that it's likely to be a worthy tradeoff.
And, yeah, ChatGPT is impressive in lots of ways, but writing code isn't one of them. I look forward to trying GPT4 but I'm not holding my breath.
I've found Copilot to be much more impressive and useful. You have to know what you want to write, and double check everything, but it's still a big difference. I'm not switching to brainfuck any time soon, but I'd be more open to languages I used to turn my nose up at.
I don't think these things will change overnight, but I really do think the things people value in a language are going to shift over the next few years and that ergonomics/aesthetics (the bits I think of as "the language") just aren't going to matter as much.
Some parallels here to the self driving problem - in order for people to trust their personal safety / codebases to these things, they're going to have to prove a very high degree of reliability. ChatGPT's definitely not there yet. I've heard mixed reports about GPT4, curious to get my hands on it too.
And then going from letting it drive your car / write your code, to total hands-free mode where you don't even know how to drive anymore or understand the programming language it's using, that's a big leap.
But the popularity of the language does matter. "Write function in Python with numpy" is going to work way better than "Write function in SYCL" because there is orders of magnitude more example code, and LLM usage is only going to exacerbate the issue.
https://singularityhub.com/2023/03/10/an-ai-learned-to-play-...
It seems quite plausible that a well written language spec and fewer examples will give the model enough to work with.
The ecosystem matters.
It could be a great way to build out rapidly with low cost, especially if you can get a mapping from another, broader language, to your own.
But even if it were, it's more about design and not sure that a machine will have the same empathy towards a human cognitive shortcomings.