To understand how new artificial intelligence tools can bring more value to a digital product and how programmers can use them to reduce time, improve accuracy and more easily review code, all elements that impact the quality delivered to the customer, I decided to test two of the most talked about these days: GitHub CoPilot and, of course, ChatGPT.
Here is a summary of my experience and my conclusions.
GitHub CoPilot uses deep learning to analyze existing code. As soon as it understands the context of the code, it offers relevant suggestions that help speed up the coding process. To build its recommendations, learn, and continuously improve the accuracy and relevance of its suggestions, the tool sources the information from many code contributions on GitHub.
My first steps with the tool did not go that well. This was so because, initially, the process is not so intuitive. For example, I started a simple console command line project in Python with the intention of creating a proof of concept.
I started PyCharm and installed the CoPilot plugin. At that point, I expected something to happen: a chat window or something else to tell me I was on the right track, but all I saw was the editor on a blank page with the cursor blinking. I doubted whether I had installed it. Anyway, I started writing the first few lines of code, and the suggestions started appearing. In a way, it works like a code auto-completion feature, typical of various IDEs.
It is certainly powerful and useful, with the ability to suggest functions based solely on the name used in the method definition. However, the generated code was not always satisfactory or ideal.
The main issue is the way the tool is designed. It lacks an interaction layer and only infers based on context, which means that, at first, it can generate less than optimal or even useless suggestions.
But as the code has enough context, the tool interprets where the developer is going and becomes a real-time saver. When the developer finds the groove with CoPilot, your coding experience is enhanced and streamlined.
The best part? Microsoft is working on launching a CoPilot X version, which will feature a full chat interface: it will be like having an interactive coding assistant to generate high-quality code.
CoPilot X has the potential to revolutionize the way we approach coding and make the process more enjoyable and efficient for everyone. I can’t wait to test it (and, of course, to share my experience).
Part of the confidence I have in the potential of CoPilot X comes from having already had the opportunity to test similar capabilities with ChatGPT-4.
In my experience as a developer, much time spent coding mundane and repetitive tasks is frustrating and monotonous. ChatGPT is a game changer.
I have transformed the programming process into an interactive session: every request I make is met with a response from AI with several code blocks. I then apply a typical verification process in development known as Pull Request or PR, and after analyzing the generated code, I indicate corrections to the tool. Everything flows naturally since I just need to write a few sentences and then AI does the coding for me.
My job is to guide AI to the best outcome. Of course, it is not perfect. Sometimes, it may not understand my requests or provide less accurate responses. But this will be sorted out going forward. Undoubtedly, it is an ideal ally for creating high-quality code.
Despite initial challenges and limitations, AI tools offer a promising future for developers looking to streamline their workflow and focus on more creative aspects of coding.
With continued progress, we may see problem-solving that rivals the impressive feats of technology depicted in popular movies, such as using JARVIS, Tony Stark’s ally in The Avengers, to tackle complex challenges.
From the point of view of software products, the conclusion is clear. If developers use less time for repetitive tasks and more time to increase product quality, customers and users will benefit the most.