We encounter fun and challenging tasks in the daily hobby of developing software. Programming is an art that allows us to create solutions from anywhere in the world with just an internet connection. This art involves various challenges: writing functions, reading documentation, and, for example, searching on StackOverflow for that piece of code that allows us to store a PDF in an S3 bucket, followed by testing its functionality before moving on to the next task. This can be summarized as a matter of time and productivity.
A few months ago, we began hearing about an assistant called Code Copilot that provides real-time code autocompletion to developers as they write code. It’s not just about offering code suggestions; the precision with which it does so and the minimal amount of context it needs to recommend the necessary code to solve a specific problem is surprising. Having artificial intelligence as an ally will undoubtedly improve the quality and speed with which we deliver value as long as we learn to use it correctly and responsibly.
What is Code Copilot?
It acts as a handy programming companion thanks to its enormous knowledge base, which is nourished by a vast amount of information from forums, repositories, and documentation.
How does Code Copilot work?
This assistant can analyze the context provided while programming. This context can be a comment, the name of a function, or the declaration of a variable with a specific name. Internally, it uses the Codex model, developed by OpenAI, to generate suggestions and convert natural language into a structured code response in more than 12 different programming languages. It’s not magic, it’s the result of training a data model with trillions of data from various public source code sources.
I want to share a definition that I obtained directly from the OpenAI site, and that I find helpful for the way, it explains part of the goals of Codex. Remember that Codex is the model that powers the functioning of Code Copilot:
When a programmer knows what to build, writing code can be understood as (1) breaking down a problem into more straightforward problems and (2) mapping these simple problems to existing code, such as libraries, APIs, or existing functions. This latter activity is probably the least fun part of programming (and also the highest entry barrier), and that’s where OpenAI Codex significantly excels.
We could establish a connection between ChatGPT and Code Copilot, highlighting the fundamental difference that the latter specializes in and excels at generating and recommending source code.
Codex, the Model Behind Code Copilot
Codex is the name of the model that makes the functioning of Code Copilot possible, built through collaboration between GitHub and OpenAI. It’s interesting to note that we can use the Codex API directly to develop and integrate our customized assistant into any application.
OpenAI Codex is a descendant of GPT-3, and internally, the teams supporting this project are responsible for purifying the information that is most relevant to the model and its use, in this case, information related to source code for the creation of an assistant to help us write code.
Can Code Copilot Improve a Company’s Productivity?
The short answer is yes. According to data directly extracted from its website, more than 37,000 companies already use this assistant in their development teams, including prominent companies like Mercado Libre, Duolingo, Stripe, Shopify, Dell, and Coca-Cola.
It has been shown that Code Copilot can increase productivity and accelerate software development by 55%. I leave you with the link to a post called Research: Quantifying the Impact of GitHub Copilot on Developer Productivity and Happiness, where this is addressed in more detail, using figures and surveys conducted on each of the aspects taken into account to reach this conclusion.
I believe that Code Copilot can be a competitive advantage by optimizing code creation, documentation, analysis, and understanding. It adapts to the current trend of collaborative programming (peer programming), promoting collaboration between developers and artificial intelligence.
How Can Code Copilot Change the Way We Develop Software?
Most changes can generate uncertainty, but undoubtedly, having an assistant that supports us in writing and debugging code more quickly is incredibly useful. However, it is crucial not to stop learning, as software development involves a much more complex process that, for now, cannot be replaced. Like the gears that make an engine run, we must create code that complies with the SOLID principles and ensure that these components communicate and function best. This is where we should focus our efforts. Code Copilot offers us a way to write code quickly, but as programmers, we must maintain consistency, respect principles, and ensure the quality of our code.
We must learn to properly delegate the tasks that will be performed by Code Copilot, not forgetting that it is an AI assistant that will centralize our efforts to create better quality code in less time, and ensuring that quality implies never stopping studying or learning at any time.
Code Copilot: An Assistant, Not a Substitute
Code Copilot operates as an assistant for programmers, not as a replacement. The programmer makes essential decisions, understands the context, and ensures the code meets quality standards and requirements.
Visual Studio Code + Code Copilot
Considering that Visual Studio Code is an IDE developed and supported by Microsoft and the open-source community and is the most widely used text editor for coding, it is unsurprising that Code Copilot is initially available as an extension in this environment. Although it can currently be configured in other IDEs, the ease of execution and management within Visual Studio Code makes it the preferred choice for the developer community. Additionally, simple integration with GitHub adds significant value. Undoubtedly, future functionalities will first arrive at Microsoft environments due to the priority that will be given to the integration stack between their tools.
Although we can configure the assistant in other IDEs, currently and shortly, those who use Visual Studio Code will get the most out of this tool. This is due to the priority given to future updates, focusing primarily on the continuous improvement of the experience for users of this editor.
Is It an Investment Worth Making?
The pricing section on the official Code Copilot website shows that the plans offered are affordable. Although internally, the data models used for its operation may imply costs that are not exactly low, the investment of tech giants in OpenAI reduces the final cost that we, as users, will end up paying.
Suppose you are interested in using the assistant on the website. In that case, a 30-day free trial allows you to evaluate whether Code Copilot meets the needs you have to improve your productivity when writing code. If so, the fixed monthly charge for continuing to use the capabilities of this artificial intelligence is $10.
I do not intend to sell you the assistant, but after reading this post, I invite you to continue exploring how Code Copilot can become your ally. You can check out some videos on YouTube published by the programming community to form your opinion on whether it is a valuable tool or could hinder your work.
The Promise of AI in Programming
Code Copilot The GitHub AI tool Code Copilot, in collaboration with OpenAI, is a clear example of how artificial intelligence can transform our work. Code Copilot suggests blocks of code and solutions to common programming problems based on an extensive database of source code, allowing us to reuse code within our projects without the need to rewrite the wheel; we just need to add an explicit comment about what our function should do and Code Copilot will proceed to show us the piece of code that best suits our need, it is our task to determine if it meets or does not meet what we need, we press TAB. We can already execute our function, but we are missing something, right? We must write a test that allows us to check that we are controlling possible errors. To do this, we press CTRL + I to open the interactive interface of Code Copilot, which allows us to execute commands. Writing “/test,” we will get recommendations for our tests.
How Code Copilot Changes the Game
The integration of Code Copilot into the workflow can significantly improve efficiency and productivity in several aspects:
- Search and adaptation of code: Provides quick and appropriate suggestions, saving time in the search and adaptation of code.
- Error resolution: Helps identify and correct problems more quickly, reducing debugging time.
- Documentation: Generates more detailed comments on a specific functionality for better understanding by other developers when viewing our code.
- Unit testing: Create custom tests that allow us to identify and solve possible failures that may generate future inconveniences.
- Quick access to recommendations: We do not need to leave our IDE to get suggestions for the portion of code or function to perform a specific task.
- Learning: Code Copilot can explain to us in detail the implementation process of a solution, providing step-by-step instructions, essential methods or classes, and the functions they perform.
- Pair Programming with AI: This assistant will accompany us in our creative process during software development. With its extensive knowledge base, it will offer recommendations on best practices, acting as a tireless collaborator and supporting us in improving the speed and quality with which we write code.
Code Llama, an Alternative to Code Copilot for the Curious
Facebook has made significant contributions to the open-source community over the past few months by releasing several versions of the LLM named Llama. This implies that anyone with a relatively powerful PC can download and run this model without making payments, thus providing the opportunity to create AI-driven solutions without relying on external APIs that may incur costs.
Notably, Facebook continues to support this LLM and has surprised the community with new versions, such as Llama 2. Although it might be thought that, as open models, they might have a lower generative capacity compared to the models of the OpenAI family, such as GPT-4, the reality is that the quality of the data used for training Llama positions it as a worthy rival not far behind these models.
In the context of these advances, Facebook defines Code Llama as a specialized version of Llama 2 in code, created through additional training on specific code data sets. This underlines Facebook’s specialized focus and attention towards the development of natural language models aimed at understanding and generating code with such a powerful and free model for the community.
AI as an Ally in Programming Tools like Code Copilot represents an advancement in the integration of AI in software development. They allow for greater focus on problem-solving and creativity, delegating repetitive tasks, and searching for standard solutions to artificial intelligence. This change saves time and opens up new possibilities for innovation and improving the quality of work in programming.
*Images created with DALL·E, 2023-12-11.