AI-enhanced coding: The future of software development is here

26

September

2024

No ratings yet.

Writing source code is not always an easy task. Sometimes, a bug occurs that it is so hard to find, you spend hours and hours searching through the Internet on websites like Stack Overflow [1] to try and find someone that had that issue before and how they fixed it. Some other times you have to rewrite the same code over and over again, which can be boring.

GitHub Copilot [2] is a Generative AI tool that helps developers with writing code, increases productivity and decreases development times, while also automating the “boring” parts of writing code. The tool offers two main features:

  • Code completions: The tool auto-generates code on-the-go while you are typing, which you can add at any step. You can also write comments and the tool will treat it as a prompt to generate code.

Using a comment to instruct GitHub Copilot what to generate, using code completions.
The red-colored code is the AI suggestion. If suggestion is accepted, it is turned into normal-colored code.

  • Chat Discussion: The tool also offers a way to interact with the model via chat, similar to the ChatGPT-like tools.

Using GitHub Copilot Chat to debug code and fix errors. It can also be used to generate documentation, tests, explain selected code or optimize algorithms.

I have been working as a Software Developer for the past 2 years. Ever since I started, I have been using GitHub Copilot to help me automate (part of) the software development process, especially with writing tests, documentation and to debug errors. Tasks that used to take up to a day to complete were resolved in a matter of one or two hours. Compared to the projects I was involved before such tools emerged, I can definitely say they were a game-changer. Tasks were being completed faster, the code written had better quality and I had time to focus on more important tasks, like improving the customer UI experience.

From my experience, Copilot is very good at suggesting repeating (or similar) code from within the project, as well as general code structures identifiable from other projects. It also has very good understanding of error codes in most programming languages I have used, so it is very powerful to use for fixing errors. This type of debugging usually took a long time, browsing through Stack Overflow posts and trying different suggestions until finding what could be a possible solution. The GitHub Copilot Chat was able to provide a working solution within minutes in most of the cases and with good explanations too of what was going wrong.

Even though it sounds like this is the perfect tool for coding, there are some limitations I found. Sometimes, I noticed it is slow in providing an answer. Theoretically, you can switch between different suggestions, but so far I noticed that feature is broken, as I always get “no alternative suggestions”. Moreover, many times, when you are writing a new feature from scratch, it is not good at giving initial suggestions. I expect this is a “cold start” effect, so until you give it some more input, it will not give suitable suggestions.

The biggest issue I have encountered so far is related to privacy. GitHub (Microsoft) collects data from your (private) repositories with code when you use this tool. Thus, some companies may be reluctant to let their developers use such tools, as sensitive data can leak. There is history on this topic, as Microsoft has been accused of copyright infringement multiple times when developing Copilot, as they used copyright-protected code to train their models [3].

All in all, I am really happy with how this tool incorporates with my work and I use it daily. Up until now I have had free access to this tool (as a student), but even if I would have to, I would 100% pay to use this plugin. I am confident that in the future, the quality of this service will increase continuously and I am looking forward to seeing what other alternatives emerge on this market! Having an AI pair programmer really makes a difference!

Have you used any similar Gen AI tools with your work? How did you find it? Let me know below!


References:

Thumbnail photo: Generated with DALL-E, made by OpenAI. Prompt: Generate an image about a programmer that uses a Generative AI tool such as Microsoft GitHub Copilot as a pair programming tool to enhance their software development cycle.

  1. Stack Overflow – where developers learn, share, & build careers. (n.d.). Stack Overflow. https://stackoverflow.com/
  2. GitHub Copilot · Your AI pair programmer. (2024). GitHub. https://github.com/features/copilot
  3. Vincent, J. (2022, November 8). The lawsuit against Microsoft, GitHub and OpenAI that could change the rules of AI copyright. The Verge. https://www.theverge.com/2022/11/8/23446821/microsoft-openai-github-copilot-class-action-lawsuit-ai-copyright-violation-training-data

Please rate this

Leave a Reply

Your email address will not be published. Required fields are marked *