Computers have always been good at pattern recognition. This isn’t new. LLM are not a type of actual AI. They are programs capable of recognizing patterns and Loosely reproducing them in semi randomized ways. The reason these so-called generative AI Solutions have trouble generating the right number of fingers. Is not only because they have no idea how many fingers a person is supposed to have. They have no idea what a finger is.
The same goes for code completion. They will just generate something that fills the pattern they’re told to look for. It doesn’t matter if it’s right or wrong. Because they have no concept of what is right or wrong Beyond fitting the pattern. Not to mention that we’ve had code completion software for over a decade at this point. Llms do it less efficiently and less reliably. The only upside of them is that sometimes they can recognize and suggest a pattern that those programming the other coding helpers might have missed. Outside of that. Such as generating act like whole blocks of code or even entire programs. You can’t even get an llm to reliably spit out a hello world program.
Large context window LLMs are able to do quite a bit more than filling the gaps and completion. They can edit multiple files.
Yet, they’re unreliable, as they hallucinate all the time. Debugging LLM-generated code is a new skill, and it’s up to you to decide to learn it or not. I see quite an even split among devs. I think it’s worth it, though once it took me two hours to find a very obscure bug in LLM-generated code.
Humans are notoriously worse at tasks that have to do with reviewing than they are at tasks that have to do with creating. Editing an article is more boring and painful than writing it. Understanding and debugging code is much harder than writing it etc., observing someone cooking to spot mistakes is more boring than cooking etc.
This also fights with the attention required to perform those tasks, which means a higher ratio of reviewing vs creating tasks leads to lower quality output because attention is depleted at some point and mistakes slip in.
All this with the additional “bonus” to have to pay for the tool AND the human reviewing while also wasting tons of water and energy.
I think it’s wise to ask ourselves whether this makes sense at all.
If you consider debugging broken LLM-generated code to be a skill… sure, go for it. But, since generated code is able to use tons of unknown side effects and other seemingly (for humans) random stuff to achieve its goal, I’d rather take the other approach, where it takes a human half an hour to write the code that some LLM could generate in seconds, and not have to learn how to parse random mumbo jumbo from a machine, while getting a working result.
Writing code is far from being the longest part of the job; and you gingerly decided that making the tedious part even more tedious is a great idea to shorten the already short part of it…
Computers have always been good at pattern recognition. This isn’t new. LLM are not a type of actual AI. They are programs capable of recognizing patterns and Loosely reproducing them in semi randomized ways. The reason these so-called generative AI Solutions have trouble generating the right number of fingers. Is not only because they have no idea how many fingers a person is supposed to have. They have no idea what a finger is.
The same goes for code completion. They will just generate something that fills the pattern they’re told to look for. It doesn’t matter if it’s right or wrong. Because they have no concept of what is right or wrong Beyond fitting the pattern. Not to mention that we’ve had code completion software for over a decade at this point. Llms do it less efficiently and less reliably. The only upside of them is that sometimes they can recognize and suggest a pattern that those programming the other coding helpers might have missed. Outside of that. Such as generating act like whole blocks of code or even entire programs. You can’t even get an llm to reliably spit out a hello world program.
Large context window LLMs are able to do quite a bit more than filling the gaps and completion. They can edit multiple files.
Yet, they’re unreliable, as they hallucinate all the time. Debugging LLM-generated code is a new skill, and it’s up to you to decide to learn it or not. I see quite an even split among devs. I think it’s worth it, though once it took me two hours to find a very obscure bug in LLM-generated code.
Humans are notoriously worse at tasks that have to do with reviewing than they are at tasks that have to do with creating. Editing an article is more boring and painful than writing it. Understanding and debugging code is much harder than writing it etc., observing someone cooking to spot mistakes is more boring than cooking etc.
This also fights with the attention required to perform those tasks, which means a higher ratio of reviewing vs creating tasks leads to lower quality output because attention is depleted at some point and mistakes slip in. All this with the additional “bonus” to have to pay for the tool AND the human reviewing while also wasting tons of water and energy. I think it’s wise to ask ourselves whether this makes sense at all.
If you consider debugging broken LLM-generated code to be a skill… sure, go for it. But, since generated code is able to use tons of unknown side effects and other seemingly (for humans) random stuff to achieve its goal, I’d rather take the other approach, where it takes a human half an hour to write the code that some LLM could generate in seconds, and not have to learn how to parse random mumbo jumbo from a machine, while getting a working result.
Writing code is far from being the longest part of the job; and you gingerly decided that making the tedious part even more tedious is a great idea to shorten the already short part of it…
What is your favorite flavor of kool aid?
Grape, my nigga.