We’re back in the saddle for some more AI exploration!
Today, we are experimenting with AI applications, focusing on GitHub Copilot, as we continue our exploration into unchartered territories to streamline our development processes by letting our Cubes loose on this new frontier. The siren call of AI is tempting because it promises to revolutionise the way we code, offers the very real potential to enhance productivity, reduce workloads, and ultimately make the lives of our developers less bug-y.
Sounds promising, right?!
Since it was announced, it has been a hot topic within the developer community. As the pros and cons have been bandied about since its inception, curiosity got the cat, so we’re wading into the discussion to experiment and share our firsthand experiences in integrating this AI powerhouse into our daily routines.
In this blog, our ridiculously talented Senior Fullstack Developer, Eddie Jibson dissects the nuances, experiments with various AI applications, and spotlights the potential of these technological tools for our Cubes. Let the adventure begin!
What IS GitHub Copilot?!
GitHub Copilot, introduced by GitHub on June 29th, 2021, has generated some mixed reviews, ranging from fascination to apprehension within the developer community. Classic robots are coming for our jobs unease. Copilot is an AI-powered pair programmer that provides real-time assistance to developers, helping them code faster and more efficiently. It suggests code as developers write a comment or a line of code, thereby accelerating the development process.
GitHub Copilot is powered by a novel AI system, OpenAI Codex, and is designed to understand and translate natural language into coding prompts. This suite of AI tools claims to tap into the potential of artificial intelligence, promising to significantly boost productivity, lighten workloads, and alleviate the challenges faced by developers.
You had us at lighter workloads!
But, skeptical that Copilot was just touting the empty promise of a snake oil salesman, Eddie wanted to find out if it was worth the hype and delve into the practical aspects, explore limitations, share our production experiences, and ultimately determine whether GitHub’s bestowed title of “copilot” is spot on or if it’s just another useful tool in a developer’s toolkit.
Find out more about Copilot’s shiny features here:
Unpicking the Copilot arsenal
Copilot’s allure lies in its promise to generate entire and intricate methods effortlessly. Operating similarly to other chat-based AI tools, Copilot functions as a responsive assistant. However, the reality proves more nuanced. It gives answers to questions related to the current workspace or open file, tailoring solutions based on the context. Initially, Copilot had limitations in handling large code segments or entire files, often resorting to basic responses. Recent updates, however, have significantly improved its ability to understand larger code chunks, especially when seeking a reduction in cognitive complexity.
SQL mastery and the art of precision prompts
Copilot’s competence varies across languages, standing out notably in the realm of complex statements for query languages like SQL. A precise prompt becomes crucial for accurate results. Yes, it’s time-consuming, but the payoff lies in expediting intricate tasks, sparing developers from the agony of revisiting ancient Stackoverflow solutions. It even extends to translating base queries into the preferred format of your ORM framework.
Comment generation unleashed
Beyond code generation, Copilot proved useful for administrative tasks, notably in generating comments. It navigates code intricacies, breaking down logic steps and providing eloquent explanations. This proves invaluable for comment generation but also in collaborative environments, bringing clarity to complex logic and offering enlightenment even for code crafted during delirious, unholy hours – we’ve all been there!
Unit tests: liberation from the testing abyss
One standout feature is Copilot’s liberation from the abyss of unit test creation. For a quick refresh, or our developer newbs out there, In computer programming, unit testing is a software testing method by which individual units of source code—sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures—are tested to determine whether they are fit for use. Simplifying the often-dreaded task, Copilot automates unit test generation, ensuring thorough testing without subjecting developers to the scorn of coworkers or worse yet, HR visits.
Autocomplete brilliance: time saving suggestions
The autocomplete feature stands as a beacon of brilliance within Copilot. Distinguishing itself from conventional autocomplete, Copilot generates complete, ready-to-use code with minimal input. This feature significantly contributes to time savings on a project scale, maintaining accuracy and coherence.
And the verdict is...
Copilot is a dynamic ally, not master of our domain.
It is capable of significant time savings. Features similar to an “assistant,” such as autocomplete and unit test generation, showcase constant accuracy and competence. While providing time savings on routine lines of code, Copilot needs to fully solve complex solutions with varying levels of human intervention. The robots haven’t taken over…YET! It demands careful application, especially in the hands of those who simply copy and paste. It’s worth bearing in mind that Copilot, like any code addition, should be validated before deployment.
Check yourself before you wreck yourself!
Don’t think of Copilot as an all-singing, all-dancing master of code, but more as a versatile intern or freelancer – capable of specific tasks but needing a bit of direction, especially with sensitive assignments. Should Copilot embrace this role, it becomes a utility that not only frees our developers from their fortress of 1’s and 0’s but, most importantly, preserves mental health by cutting through the noise of their mundane tasks, and allowing them the time and space to boldly push the boundaries and go where no Cube has gone before!
If you enjoyed our foray into Copilot, head over to our AI Labs space and check out more of our experiments and tinkering!