Sergey Nivens - Fotolia
Codota, an Israeli software development startup, has snagged $2 million in funding from Khosla Ventures to accelerate the buildout of its artificial-intelligence-driven pair-programming system that understands and learns code.
Charles King, principal analyst at Pund-IT, said Codota has the potential to fix a very real problem in software development, which is to take back the time developers more or less waste searching for code.
"According to the company, that can be as much as 20% of the time developers spend working -- or a full day out of an average work week," King stated. "If the company can deliver on its promises, one result will be less stressed, more fulfilled developers. But their employers should also benefit via improved time to value for development projects and the knowledge that their developer employees are using their time more efficiently."
Programmers working together
Pair programming is an Agile software development technique where two programmers work together at one workstation. According to the company's FAQ, Codota is an artificial pair programmer that learns from existing code to help developers build software faster and smarter. It suggests the most appropriate code to developers in real time, based on models learned from all code available on the web. It runs alongside the integrated development environment (IDE) and uses learned code models to suggest relevant code. These suggestions save developers time searching for references and help prevent errors, the company said.
Dror Weissco-founder and CEO of Codota
The pair-programmer product runs on macOS, Windows and Linux, and it works with IDEs such as Eclipse, IntelliJ and Android Studio. It does not yet support NetBeans, however.
Dror Weiss, Codota's co-founder and CEO, said Codota analyzes all public code available, including platforms such as GitHub and Stack Overflow. It then applies learning algorithms that work on a semantic representation of a program, rather than just its source code. This new layer of understanding enables Codota to identify similarities and patterns across programs that are written differently, but actually perform the same tasks, he said.
Weiss told TechTarget that Codota learns in two phases. One is the analysis of individual programs, where the technology understands the code itself and extracts an abstract representation of the program that captures interesting semantic properties from which it wants to learn. And, secondly, it learns from the extracted representations to build models that capture patterns at a global level -- for example, the likelihood of sequences of operations or predictions of next symbols in a program, he said.
Applying vision and expertise
"Codota has both the right vision and the unique expertise required for leading this fundamental change in the way software is created," said Ari Zilka, an investing partner at Khosla Ventures and former CTO of Hortonworks, which made the seed deal with Codota. In addition to Khosla Ventures, Codota's investors include Bob Pasker, co-founder of WebLogic -- which was acquired by BEA-Oracle -- and the Technion.
The idea for Codota, Weiss said, came from the domain background of the company's founders -- himself and co-founder Eran Yahav, who is the company's CTO. Codota commercializes results of a research project led by Yahav, who has served as a professor at the Technion, a leading Israeli technical institute, for over six years. Yahav also is an alumnus of the IBM Thomas J. Watson Research Center, and Weiss served for years as director of technology at Panaya -- acquired by Infosys -- building products that rely on sophisticated analysis of code.
"The idea of applying machine learning to help create new code, leveraging the massive amount of existing code, was extremely compelling for us," Weiss said. "Codota was made possible by the convergence of several enablers -- the availability of vast amount of code on platforms such as GitHub, advances in machine learning, advances in program analysis and the availability of computing resources that make this massive crunching feasible."
Accelerating the development learning curve
Weiss noted that Codota can better prepare developers to take on new challenges.
"Codota accelerates the learning curve when entering new technologies by giving you relevant code predictions as soon as you start coding," he said. "In a rapidly changing technology landscape, Codota helps you keep up to speed. Currently, Codota focuses on code. But in the future, it will also learn from configuration files and command-line interactions, so it will also accelerate many aspects of DevOps."
"Over time, the value of Codota and other AI-based development tools seems likely to grow," Pund-IT's King said. "That's partly due to the increasing role that software development is playing in organizations where improved efficiency translates into better applications, more swiftly created. But it's also easy to imagine how such tools could be applied to other kinds of software projects, including those created by so-called citizen developers."
Deciding whether to pair up
Machine learning making inroads all over
AI going mainstream for software developers