GitHub Copilot: An Overhyped Tool for Software Developers
Written on
Chapter 1: Introduction to GitHub Copilot
My experience with GitHub Copilot has led me to strong conclusions about its usefulness—or lack thereof. The coding community is rife with discussions on clean code, programming paradigms, and best practices, yet every year, new tools emerge to automate coding tasks. This year is no exception, but GitHub Copilot, an AI tool developed by Microsoft, is not just another WYSIWYG application.
I eagerly signed up for Copilot, driven by curiosity and skepticism. I often see AI as a potential asset or a problem, with no middle ground.
First Impressions
My genuine curiosity—perhaps fueled by too many sci-fi flicks—prompted me to explore what Copilot could do. Installing the extension was straightforward, and I opted for VSCode, a Microsoft product, ensuring compatibility. However, I soon realized that Copilot requires a constant internet connection and access to your repository, which felt unsettling.
To use Copilot, you must remain logged in, and I found the connectivity to be unreliable, likely due to issues with either VSCode or the plugin. But as a software engineer, I understand that bugs are part of early software. Unfortunately, I encountered similar issues in WebStorm as well.
My first attempt at using Copilot involved generating code from comments. I entered this comment in an HTML file:
// a menu with links to the different pages
The result was an alarming snippet:
<ul>
<li>Home</li>
<li>About</li>
<li>Contact</li>
</ul>
If you can't spot the issue—an unclosed <ul> tag—you might want to revisit HTML basics. When a product from a leading tech company fails to deliver on straightforward tasks, alarm bells ring loudly.
While it did create a semantic menu, the failure to close the unordered list was a significant oversight. Still, I decided to test it further with JavaScript.
// an array with 17 items (1-17)
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];
// a function that takes an array and a number
function getItem(arr, num) {
}
At first glance, this seems acceptable. However, having relied on IDEs with autocomplete features for years, I found that writing those comments was not faster than coding it directly. I also expected an arrow function, highlighting a gap in expectations.
Who Is This Tool For?
GitHub Copilot appears to serve no clear audience. Despite Microsoft's intent to create a useful tool, I wonder who in the software engineering community would find it beneficial.
Here are some key considerations:
- Coding is a way to express a potential solution in a language a computer understands. The real challenge lies in understanding problems, devising solutions, and validating them.
- Most developers are competent coders. While they may use Google for help, they generally understand syntax and tools.
- Code editors and IDEs today offer excellent autocomplete, hinting, and linting features, addressing many of the challenges developers face.
- Complex problem-solving takes precedence over writing simple code snippets.
In contrast, platforms like LeetCode and HackerRank promote coding mastery while Copilot appears to undermine it. It lacks context and education, unlike StackOverflow, which provides detailed explanations alongside code snippets.
If Copilot diminishes the skills of junior developers and fails to assist seniors, then who is it actually for? Essentially, it acts as an advanced autocomplete tool that doesn't outperform existing solutions. At $100 a year, it hardly qualifies as inexpensive.
GitHub Copilot seems to be a clever facade designed to siphon away your intellectual property while claiming to automate mundane coding tasks. The reality is that we already have tools that accomplish this effectively.
Ultimately, it doesn’t benefit anyone—except perhaps Microsoft.
While I encourage you to try it for yourself, I personally would not choose to use it, even if it were free. Writing comments and expecting the best is not my approach to programming.
Conclusion
In summary, GitHub Copilot is not the tool I would choose to have alongside me in my coding journey. It's more akin to an expensive liability that could hinder your skills and career.
Copilot, shift + delete!
Attila Vago — Software Engineer dedicated to improving the world one line of code at a time. Cool nerd since forever, writer of codes and blogs. Web accessibility advocate, Lego fan, vinyl record collector. Loves craft beer!
Chapter 2: Video Insights
An analysis of how GitHub Copilot may be impacting code quality negatively.
A first look at GitHub Copilot and its features, exploring its potential and limitations.