This year I've started using ChatGPT and Github Copilot to code some projects. So far the experience has been very positive, so I wanted to share some of my thoughts on these technologies (from now on I'll refer them as copilots):
In my experience, ChatGPT4 is much more powerful for generating code than Github Copilot. The problem is that using ChatGPT Plus doesn't protect your sensitive information (unless you go for Enterprise). So it won't be an option for many companies. However, if you're working on open source or small projects, it's definitely worth considering.
Copilots can significantly increase the duplication of code, with all its implications. Imagine if copilot suggested a snippet of code instead of suggesting the use of a library. If the library has a bug and it's fixed sooner or later, you'll benefit by upgrading to a new version. You can even be notified when a new version is available. But you lose this if the code is generated by copilot and doesn't include the use of third-party libraries.
Developers risk getting lazy. This happens to me sometimes. I'd say that for senior developers this might be less important, but for junior developers it can become a disadvantage. At least for the time being, copilots are not yet a replacement for programmers, and good programming skills are needed to check copilot output. In my opinion, companies should carefully analyse these implications before offering Co-Pilot to every developer on their staff. And developers should be aware of the impact of using copilot on their skills.
ChatGPT is great for understanding code. For some programmers working in mature systems, and especially for newcomers, it can be a great help. For example, you can use it to understand open source code. If you want to use it in your company, it's wiser to use ChatGPT Enterprise, which protects company data.
OpenAI doesn't want you to use ChatGPT to build AI models that compete with GPT. They have this clause in their terms and conditions. Does this mean that they think you can build serious competitors to GPT models using ChatGPT? Interesting…
In my opinion, the productivity gains from using co-pilots should be used to spend more time on best practices such as automated testing, code reviews, increased security, CI/CD pipeline automation and technical debt management, before considering reducing the number of programmers or increasing the scope expected of programmers. This is particularly important for small and medium sized enterprises, which typically make multiple trade-offs in these areas.
OpenAI's new GPT creation functionality allows you to create applications using natural language. This can replace programmers for certain use cases. However, even when building GPTs, programming skills will generate better prompts and therefore produce better applications.
Overall, my experience has been pretty good and I think we have only just begun to see some of the full potential of these technologies. I'm looking forward to revisiting these thoughts in a year's time and seeing how things have developed.
Top comments (0)