Over the past few years, the evolution of AI-driven tools like GitHub’s Copilot and other large language models (LLMs) has promised to revolutionise programming. By leveraging deep learning, these tools can generate code, suggest solutions, and even troubleshoot issues in real-time, saving developers hours of work. While these tools have obvious benefits in terms of productivity, there’s a growing concern that they may also have unintended consequences on the quality and skillset of programmers.
You write machine code?
No, you only describe what you want the compiler to write in machine code.
With copilot it’s still a description.
Sure but you’re also specifically telling it direct instructions which it will follow every time to the T, based on predetermined logic.
That is no where near how an LLM works. Furthermore, most programming languages require effort to learn. They night not be machine language, or even an assambler, but its still a skill you actually have to learn beyond speaking your native tongue.
Also one could make the argument that machine code is a “description” of what you want the CPU to do.
The skill beyond your native tongue is knowing what a db does and how to describe what your app does. Aka a designer, with design language. Good luck with a LLM getting it to do what you want with no domain specific language.
“No, no, not like that, I meant bigger…”
If the compiler produces a program that doesn’t match your description, you can debug the compiler. Can you debug an LLM?
Why wouldn’t a compiled program match your description (code)? The compiler is broken?? Compiled programs alwsys match their description(code).
So more likely your translation from idea to function is wrong.
Re-read your description, step through it slowly, what did you assume, that was wrong, or where did you add a mistake or typo? Sounds like I can do this in natural language or in Rust.
You can say that llms are not deterministic of what they produce, but that’s got nothing to do with making a programmer worse at their job.
If you can’t translate your idea into function and test its output to be what you want, then you are a bad programmer.
And many programmers write some pretty stupid and horrible descriptions. LLMs don’t solve this, they just allow lazy programmers to be even lazier.
Anybody that doesn’t write binary is lazy, said the compiler.
I don’t even know how to respond to this. It makes no sense at all and doesn’t really relate to or respond to my comment except it happens to use the word “lazy”, I’m guessing in reference to my comment. Good luck trying to push LLMs, not sure what your agenda really is, other than to be argumentative here. Peace.
Copilot frequently produces results that need to be fixed. Compilers don’t do that. Anyone who uses copilot to generate code without understanding how that code works is a shit developer. The same is true of anyone who copies from stack overflow/etc without understanding what they’re copying.
You’re missing the point. If the program doesn’t do what it’s meant to its YOU that didn’t use the tools between you and metal, correctly. LLM involved or not, it’s how you’ve described it, in whatever ‘language’ you chose (natural or Rust)
The key difference is that compilers don’t fuck up, outside of the very rare compiler bug. LLMs do fuck up, quite often.