4 ms·
Depends on the bug and how much damage it causes, I guess. The more nefarious and subtle the bug, the more intimate you have to be with the code to understand i
by ModernMech 4y ago
Depends on the bug and how much damage it causes, I guess. The more nefarious and subtle the bug, the more intimate you have to be with the code to understand it.
For developers, this intimacy comes with actually writing the code. I know that when I write code manually, I'm not just tapping keys on a keyboard but building a mental model in my brain. When there's a bug, I can usually intuit where it's located if that model is detailed enough. Maybe developers of the future will just be code reviewers for ML models. Yuck, who wants to do that? So then will we just have ML models reviewing ML generated code?
My concern is that ML code generation will create very shallow mental models of code in developers' minds. If everyone in the organization is building code this way, then who has the knowledge and skills to debug it? I foresee showstopping bugs from ML-generated that bring entire organizations to a grinding halt in the future. I remember back in the day when website generators were in vogue, it became a trend for many webdevs to call their sites "handmade" if they typed all the code themselves. I predict we'll be seeing the same in the future in other domains to contrast "handwritten" source with ML generated source.
What's that famous quote? "Debugging is twice as hard as writing the code in the first place." Well where does that leave us when you don't even have to write the code in the first place? I guess then we will have to turn to ML to handle that for us as well.
- spc476 4y agoIt's the old "C vs. Assembly" all over again.
- lazide 4y agoNot quite - C is predicable(ish). It would be like C vs Asm if there was no stable language spec, platform spec, or compiler. I think it’s more like WYSIWYG website generators (anyone remember Cold Fusion? The biz guys LOVED that - for like a year).
- mort96 4y agoExcept that it's not. I can be reasonably sure that my C compiler will generate correct machine code if my C code is correct. I can also treat the generated machine code as a build artifact which can be thrown away and re-generated on demand; I can treat my C code as my only source of truth. None of these things are true for Copilot, you need to keep around and maintain the generated code, and you can't just assume that the generated code is correct if your input is correct.