The question that has launched a thousand think pieces — is AI coming for your job? — should now be of personal interest to developers. AI tools for code review and bug patching are getting better and better.
Martin Vechev is one of the scientists behind the recent advances. He is cofounder of Zurich-based DeepCode, which will crawl through your code before it is committed, flag errors, and tell you how to fix them. All starting from €5.99/month.
Billed as “Grammarly for developers”, the tool looks a lot like familiar code vetting apps in use today, and is intended to mesh easily into developer’s “normal, everyday workflow”. Its selling point is performance. Vechev cites an internal analysis in which DeepCode caught four times more errors than any other tool they tested, without a notably high false-positive rate.
The two-year-old startup raised €1.1m last year from venture capitalists btov, and is now planning its second round of fundraising. Vechev declined to say how many clients they have, but they plan to ramp up marketing later this year. Sifted spoke to Vechev, also a professor at ETH, about DeepCode’s technology and the future of software development:
What makes DeepCode’s software different from other offerings in the market?
The main separation point is that DeepCode has a unique way to combine machine learning and semantic analysis of code. Most companies have either hard-coded rules, which they use to analyse the software, or some more-shallow machine learning. DeepCode has the ability to combine these two areas. As a result, it can find issues that nobody else can.
It also learns from how people have fixed code already in millions of programs. Based on those fixes, it learns how to fix your program. So it doesn’t just show you warnings in your code, it shows you how others have fixed these warnings.
Is there a reason we don't yet see businesses adopting this technology en masse?
For our case, there has been a lot of interest from businesses. We have focused on making the product very strong — to make it a unique product on the market. Very soon we will be entering the enterprise market. I think it will be the default machine learning product for code. It can handle many programming languages quickly in a common platform.
Code review takes up a lot of development time. If your tool is widely adopted, will it put a lot of software developers out of work?
I don’t think development jobs will be made redundant. I think they will just be made more efficient. You will let the programmers focus on the code logic that they want to express and let the system deal will all the other details.
3x a week
We tell you what's happening across startup Europe — and why it matters.
Of course, some parts may be automated. Somebody is who is doing very low level reviewing, that may be automated. And it’s not just developers. There are also managers who want to get reports about what’s happening with the code. About 20% of time is spent on code review. Some of this time will be shifted to other activities.
If you were a developer, what skills would you want to have to keep ahead of changes in the field coming from AI?
Just like we teach in university, it’s about having a good grasp of critical thinking. Building the architecture; setting up the core algorithms and the communication between them; design of applications, clever logic: those are hard to automate. What is easier to automate are common repetitive tasks. For instance, low-level details of how libraries are used or how APIs are used. Those parts may be automated.
Where do you see your company and this field in five years?
Over the next five years, we’ll see a greater variety of tasks being attacked with these techniques. For instance, if you want to understand what the code does — a malware, let’s say — you’ll be able to de-obfuscate it more effectively. Another task may be synthesis. You may be able to produce more high-quality code from user intents. You would give one keyword or one part of the code, and it would figure out the rest.
You may see a chatbot-like interface. You might ask questions like “What is this function supposed to do?” and it would give you a high-level interpretation of what it does. Or you might say “Can you produce code that does x, y, z?” and it would look up everything that people have ever written, consolidate it, and then say: “Here are some candidate pieces of code.”