Search for...

The Future of Coding is Here: How Generative AI is Changing Software Engineering

A portrait photo of Prof. Eran Yahav on an abstract background representing generative AI in software development
Image credit: Canva, prof. Eran Yahav
, ~

“Generative AI, generally speaking, is going to revolutionize everything that we do with software. This is probably the biggest revolution in software development that we’ve seen in decades,” says Eran Yahav, professor at the Computer Science Department at the Technion – Israel Institute of Technology and co-founder and CTO of Tabnine (formerly Codota).

Yahav’s expertise lies in program analysis, program synthesis, and program verification, with a focus on generative AI for code. His research aims to automate software engineering tasks using machine learning, allowing for the automatic generation of programs or the solution to software engineering challenges.

Imagine being able to describe what you need in natural language, and having the program generated for you without the need for coding expertise. Well, the research and the company of Eran, Tabnine, are making this a reality. In essence, he is developing generative AI solutions which make it possible for any software engineering task to be automated through machine learning.

While the problem of program verification has been a fundamental issue in computer science since the 1950s, recent advancements in this area have led to practical applications such as body detection and finding security vulnerabilities. Similarly, program synthesis is also undergoing a transformation thanks to generative AI technology that is maturing to create AI code generation tools for developers in their daily work.

I met with Eran a couple of days prior to his trip to Sofia where he gave a keynote at the INSAIT Series on Trends in AI & Computing event on February 27. We caught up on the state of generative AI in software development and how generative AI companies can do code quality checks.

“Getting code generation right, in a way that does not interrupt the work of the developer, is crucial. The goal of generative AI companies should not be to make the best AI but to make humans better. It is all about the interaction between humans and AI. I am usually referring to Tabnine not only as an AI company but also as a UX company. I believe generative AI should be used to accelerate the work of developers, not to encourage them to follow misguided automation,” Eran highlights in our online interview.

Read more:  Updata One: The community of data companies that helps business leaders make sense of information

The state of Generative AI in software development

Generative AI is poised to revolutionize the world of software development, representing the biggest shift in the field in decades. This powerful technology holds the potential to streamline repetitive and mundane tasks that have long plagued developers, such as reading and iterating over files in Python. Rather than relying on sites like Stackoverflow or endless Googling, generative AI can generate code based on the context of what the developer is trying to achieve, dramatically accelerating the development process.

“I don’t know how many times in life I have to read a file in Python and iterate over the lines, probably hundreds of times. Million other developers experience the same problem, and that is what made sites like Stackoverflow so successful.  For many, many years now, because of the repetitive nature of programming, a lot of programming up until now involved googling stuff and copy-pasting. With generative AI, you don’t have to search anymore. The AI can just generate these things, for you, in your editor, and can actually guess what it is that you’re trying to do. So you don’t even have to tell the AI. Just from the context of what you’re doing. It may be able to infer what is your intent and automatically generate the code for you,” Eran explains.

This same technology is now being applied to other tasks in software development, including test generation, refactoring, and code review. Even the process of diagnosing bugs and crashes can benefit from generative AI, which can analyze code and provide explanations for issues. While this technology is still in its early stages, developers can already use it to generate code components based on specific context clues, eliminating the need to sift through irrelevant results. By using AI code generation, developers can free up valuable time to focus on more complex tasks, boosting productivity and efficiency.

Read more:  The Science Behind Siri Explained by a Bulgarian Professor at Yale

How do generative AI companies do code quality checks?

“The short answer is that we control the training data for some quality. But generally, with generative AI, there are no guarantees in the end. It’s essential to emphasize that we are not trying to replace the developer but to help them with suggestions. Ultimately, it is the responsibility of the developer to check whether the code generated is reliable enough,” Eran emphasizes.

He explains that generative AI is very sensitive to the context it operates. So if the code that is given as a context is bad, the AI would probably keep generating bad code.

Acceleration vs Automation

“It’s not really like going through a chatbot and saying that because you’ll get something random. Professional programmers who are working on bigger projects would have to go into their IDEs and put their scaffold. The developers may use some hints such as ‘generate me the code for a  graph with two colors, red and blue that shows the speed of the Internet connection’ to generate some components. Instead of going for Stack Overflow or googling, developers can use generated AI to retrieve code that is particular to their context,” he adds.

The vision of Tabnine is to become the AI layer in every software organization. This layer would help companies automate all phases of the software development lifecycle, from writing code and reviewing code to refactoring, test generation, code review, and deployment. Throughout the entire software development lifecycle, the AI would learn from everything happening in the organization, to help the developers automate the repetitive tasks, and focus on solving business problems.

Thank you for reading The Recursive!

Over 1 million people from all over the world have learned about the tech ecosystem in Central and Eastern Europe thanks to The Recursive. In order to keep our content free for everyone, we need your help. If you believe what we do is important and have the means to do so, support us in giving a voice to Central and Eastern Europe with as little as €7. Thank you!

DONATE Keep reading this article

Help us grow the emerging innovation hubs in Central and Eastern Europe

Every single contribution of yours helps us guarantee our independence and sustainable future. With your financial support, we can keep on providing constructive reporting on the developments in the region, give even more global visibility to our ecosystem, and educate the next generation of innovation journalists and content creators.

Find out more about how your donation could help us shape the story of the CEE entrepreneurial ecosystem!

One-time donation

You can also support The Recursive’s mission with a pick-any-amount, one-time donation. 👍

Elena is an Innovation Reporter at The Recursive, an online media dedicated to the emerging tech and startup ecosystems in Southeast Europe. She is keen on sharing the innovation stories that shape the regional ecosystem and has a great interest in fintech, IoT, and biotech startups. Elena is currently finishing her Bachelor's Degree in Business Administration and Political Science at the American University in Bulgaria.