The Highs and Lows of GitHub Copilot: Why I Called It Quits

Juan Villela

If you’re not familiar with it, Copilot is an AI-based code completion tool, created by GitHub and OpenAI. What it does is suggest whole lines or chunks of code while you’re writing. And a lot of developers initially loved this concept. But after nearly a year of heavy use, I’ve decided to call it quits.

At the start, Copilot comes across as super helpful. It’s like having a coding buddy who’s dishing out suggestions and solutions to help you speed up your work. It’s got a massive database of code from GitHub’s public repositories to learn from. Have trouble deciphering a TypeScript error message? Don’t bother searching Google or Stack Overflow. GitHub Copilot will deal with it for you.

It’s always there to help, with no need for lunch breaks, coffee breaks, or weekends. It doesn’t just repeat pre-written code. What’s cool is that GitHub Copilot can adjust to your style and conventions within your project, making suggestions that fit your project perfectly. But despite all these great features, I can’t stand using it anymore.

Becoming Too Dependent and Unreliable

Copilot is helpful when you’re focused. The last thing you want is to break that flow state just to figure out how to sort an array, again. So instead, you can write a verbose variable name, some guiding comments, and let the AI figure out the rest. And that’s great! It’s an easy productivity boost. However, constant use does eventually lead to a heavy dependence. It gets you out of the habit of looking closely into specific coding tasks. Yes, it might save time, but at the expense of ignoring the ‘why’ behind the ‘how’. You’re no longer developing software and instead just supervising the AI.

What’s more, the code snippets it serves up aren’t always the best or most efficient. Its suggestions are often based on popular trends found within public repositories. Sometimes, it opts for longer, more complex routes, when a simpler, faster solution could work better. Sure, the code it suggests may run just fine, but that doesn’t necessarily mean it’s the best or most efficient way to carry out a task. So you eventually end up having to clean up some of Copilot’s code.

Saying Goodbye

I got into this field out of necessity but fell in love with it almost instantly. It scratches all the right places in my brain. But over time, I realized GitHub Copilot was sucking out the joy of coding. This job is often stressful, sometimes punishing, but mostly rewarding. And that feeling of accomplishment comes after long sessions of working through a problem and finally seeing your work run successfully. And that feeling is just gone when Copilot is the one coding.

There’s a plethora of AI coding tools. And they’re great and fun and sorta useful. But it shouldn’t stop us from coming up with original ideas and thinking through problems for ourselves, just because it makes things a bit easier. Despite all the innovative and useful features that GitHub Copilot offers, the negative impact it had on my coding experience was simply not worth it. I just wish I had thought about this before the yearly subscription was renewed…

See Also

The Plumber Problem: A Coder's Lament

Ever watched a hacking scene in a movie and cringed at how unrealistic it was? As someone who has spent years in the trenches of software development, these scenes are not just inaccurate; they're painful to watch. They're a caricature, a gross oversimplification of a complex and nuanced field.

Tools of the Trade

A Pen Addict episode discussed the importance of having the right tools for optimal productivity and simple elegance to them. Here's a list of the most important tools I use daily as a web developer.

The WET Codebase

Early in our careers, we're exposed to several principles which are thought of as hard rules one must abide by. And while constraints can yield innovation, they shouldn't be at the cost of having a maintainable codebase.