I just ran across1 a thread in which a person asserts that GitHub Copilot is a bad tool precisely because it makes it easy to write lots of repetitive code. Their argument amounts to the claim that repetitive, boilerplate code is bad, and if you find yourself writing enough of it that Copilot seems like a good idea then You’re Doing It Wrong.Read more: Let’s Not Argue About Tools
This is a thing I love2 about public discourse: not only do people tell other folks how to live their lives, but they manage to do it while also denigrating all the ways that are not theirs. This is not even confined to short-form social media; it’s even a staple of the lifestyle sections of newspapers.3 This drives “engagement” because insulting people gets them angry and defensive, and people who are feeling strongly about stuff (like, protecting their identities or their feelings of self-worth) are pretty motivated to take some kind of action.
If I pause to reflect, however, I am not able to come up with a single instance of having changed a person’s mind about something by telling that person that they’re an idiot and they’re doing it wrong. (That may, of course, be because I did it wrong.)
You know another tool that some people say you shouldn’t use? An adjustable wrench. Oh, there are reasons, and there are many times when another tool will serve you better, but people still have them and use them. Does that make them bad people?
Oh, yeah, and the argument that Copilot makes it easy to write lots of bad code? That’s just elitist gatekeeping. That’s just saying that you had to work really hard and think really hard and learn a lot of stuff in order to write elegant code, and nobody who didn’t do that should have the ability to bang out a steaming pile of spaghetti that accomplishes the same end.
Copilot is still problematic at best. It’s been trained on a bunch of code that was released under licenses that prohibit its use in that way, and because it is treating programming code as if it were language and not actually instructions, it can make some rookie mistakes just because the training code base also includes rookie mistakes. So, there are cautions and, as I wrote before, it’s really incumbent on the person using the AI tool to understand the limitations of the AI tool.
But let’s stop clutching our pearls and gasping, and let’s also stop calling each other names because of our choice of tools.