Generative AI as a Tool for Developers

by Yaron Inger

Yaron Inger is Co-Founder & CTO at Lightricks

Back

Generative AI is a rapidly developing technology that is changing and affecting many industries across the board. These new developments hold immense promise, and will impact almost every industry. While the technology available is far from perfect, it is a major step up with the ability to change an entire industry.
If we look at the most practical of implications, with tools like Github Copilot, ChatGPT, and Replit Ghostwriter, developers can generate code and tests, saving them time and effort all while still producing high-quality results. As an example, Github Copilot was designed to suggest code snippets based on the context of the code being written. This ability can help developers approach coding in an entirely new way, making it a powerful learning tool. With its advanced natural language processing capabilities, ChatGPT can also be used to help developers understand complex concepts and syntax in a conversational way. Just think of it as if ChatGPT were a colleague with whom you can brainstorm and soundboard ideas off of.

These new developments hold immense promise, and will impact almost every industry.

So, we know that developers can use generative AI as a tool to learn new programming languages to better improve their own coding skills, but they can actually use AI to generate code snippets that can be used to then modify and integrate with their own projects, saving them the need to write new code from scratch. But it’s not just about writing code from scratch, these tools also allow anyone to take existing code and process it. For example, you can translate code into a different programming language, check for potential bugs, and even run tests on your code.  

When considering educational opportunities, Generative AI helps reduce the learning curve for developers who are new to a particular programming language or framework. These tools can help developers learn the syntax and structure of a language or framework more quickly and easily. It may also surprise some developers by offering them ways of doing things or ideas that they hadn't previously thought of. Now, if we put the educational benefit aside, practically, the ability to code in a language or to a platform one doesn't know at all or barely understand is truly groundbreaking. Yes, the code isn't always perfect and may not compile or do exactly what you want, but having an almost-working piece of code is way better than writing it from scratch.

However, there are still some gaps in the technology that need to be addressed before we can totally sign off on generative AI and use it to its full potential. One of the original gaps is that GPT-3 tools are still only capable of generating relatively small code segments, which can be useful for certain tasks, such as generating boilerplate code, or project snippets. Sure, any little bit is helpful and more than we’ve had before, but even with GPT-4, which is aimed at having the ability to to write code entirely from scratch, for larger projects, it still won’t understand conventions or best practices for your company or project without more advanced direction. It doesn’t know how that code will interact with other code. It doesn’t understand requirements around performance, security, privacy, accessibility, and so on. Again, it’s a massive help and surely will save time and effort, but ultimately, you’re responsible for the code that ships.

Until we reach a point where generative AI is overall more reliable, developers may need to spend additional time reviewing and debugging generated code to ensure it is both accurate and reliable.

With all this being said, it would be disingenuous not to address some of the issues related to working with generative AI in general, one of which, and arguably the biggest, being the issue of reliability. Like any machine learning model, generative AI models can produce unreliable results, which can have the opposite of the desired effect by causing major frustrations and end up being time-consuming for developers to debug. This is especially true for more general language models, which may not be specifically trained for code generation. Until we reach a point where generative AI is overall more reliable, developers may need to spend additional time reviewing and debugging generated code to ensure it is both accurate and reliable.

Another concern with generative AI is legal issues related to intellectual property or copyright infringement - such as the use of code snippets from other projects. While these issues are still being worked out, it is clear that developers need to be aware of potential legal issues when using generative AI tools. This begs the question: Where does the responsibility lie? How much can developers “trust the process” or would their continuous worry about where the code comes from challenge them enough not to use these tools at all? As for this issue, only time will tell how we can best maneuver this question. 

Despite these challenges, the potential benefits of generative AI for developers are significant. As the technology continues to evolve, it is likely that we will see more advanced generative AI tools that can generate larger and more complex code projects with greater reliability. With the ability to save time and effort while producing high-quality code, generative AI has the potential to revolutionize the way developers work and collaborate. 

While there are still some gaps and challenges that need to be addressed, the benefits of using generative AI for developers are still there. With the continued development of more advanced generative AI tools, we can expect to see even more exciting possibilities for this technology for developers, as well as countless other industries and professions. 

Blog