> When most code is machine-generated, how much you like a language simply doesn’t matter. Other factors will be more important when choosing what to use. Performance, tooling, and knowledge of how to operate it at scale will all be more important than the language itself.
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.
I couldn't agree more. Popularity matters because of training data availability, not that a language is pleasant to write. It means Python probably still has a long life ahead of it, but newcomers have a much higher barrier to entry.
In the same sense that it is almost impossible for a human to write secure code in C, the same is going to be true for ChatGPT, as it thinks more like a human than a machine and was essentially trained to make mistakes like a human would. The LLM isn't some kind of god; and, frankly, if it were, that is going to be a Terminator-level of problem we are going to be dealing with and not some kind of panacea.
Yawn. And currencies are dead because of crypto. And factories are dead because we all have 3D printers on our desk.
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.
You are not even responding to the point made in the article but instead ranting about the limitations of ChatGPT which is the fashion on HN hence the top comment.
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.
The point of the article (and your point) seems to be that programming languages are now obsolete, and will be secondary to English prompting of LLMs. So the choice of language no longer matters, GPTs will write it all.
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.
Hey there. My point was close to that, but not quite as drastic as saying languages themselves are obsolete. It's more that less developer friendly languages look more appealing if an LLM can paper over the parts that you don't like. I've been working in Python for a long time because I enjoy writing it. If Copilot starts writing more and more, does that quality matter as much? I've always really disliked Java because it's so verbose. Maybe it's not so bad with copious code generation via LLM.
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.
They're a good way of delving into less familiar languages, for sure. But if they're creating subtle bugs, the human operator will have to read over and understand the language really well anyway. So a less ergonomic language becomes a problem.
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.
No, my point is not that programming languages are obsolete. Rather that they are shifting one layer down. Just like there is room for different virtual machines today (eg. JVM vs V8 etc) there will be room for different computer languages. They just won't be used primarily as a way to write code but rather as an intermediate representation. Just like you rarely need to look at raw Java bytecode or transpiled Javascript you will rarely look at raw Python or Rust code. Those will be human readable but rarely read by humans intermediate representations provided by LLM augmented 5th generation programming tools.
It's an interesting thought - but with the imprecise/random nature of LLMs, I wonder if we could tolerate something so inherently faulty / unreliable / human-like in place of a compiler. If real compilers spit out subtle machine language bugs / mistranslations of code even 1% of the time, we'd be in big trouble.
This may be at least partially circumvented by lowering the temperature of token generation. Otherwise, a strong set of tests should be generated to minimize the impact.
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.
The writers show they have no credibility, its incredibly stupid both what they say, and what they specifically don't say. Its very malign and manipulative.
Regardless of who or what writes it, readability and ease of understanding code doesn’t become irrelevant. If 50% of code is being generated by something else, seem like it becomes even more important
19 comments
[ 0.27 ms ] story [ 53.5 ms ] threadBut 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.
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.
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.
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.