Why machine programming should be the next technology you invest in
All Transform 2021 sessions are available on demand now. Look now.
A new generation of tools uses machine learning and other methods to automate parts of the software development process. GitHub, for example, released such a tool last month that suggests code while a programmer develops it. Amazon also created CodeGuru, a tool to help automatically find performance bottlenecks in software. Facebook has Aroma, which can also provide code-to-code recommendations. And my own team at Intel Labs has built a tool (currently only for our internal use) that autonomously detects errors in code.
This type of automated coding is called “machine programming”. One of its most interesting features is “Semantic Code Similarity,” which attempts to autonomously determine whether two snippets have similar characteristics or serve similar purposes. This has only recently become possible thanks to advances in computation, access to “big code data” such as IBM / MIT’s new CodeNet project which includes around 14 million code samples, and new algorithms. machine learning.
By harnessing the power of semantic similarity in code, industry can develop automated systems to help CIOs ensure that developer teams maintain the same level of productivity despite increased software and hardware complexity, while also addressing the shortage of software developers and combating burnout.
Enabling language-to-language translations
The similarity of code semantics could also be used in translation tools between programming languages (i.e. transpilers). Historically, software systems that convert the source code of a program from one programming language to another have been out of reach. However, recent advancements in transpilation could be critical for large global organizations that have traditionally coded in more specialized legacy languages.
Imagine a world where, instead of spending many years manually translating an entire organization’s code bank from COBOL to Python, a machine programming system could do it all for you in just a few days. The beginnings of such systems already exist and are even used today in some technology companies, such as Adobe. For example, as I understand it, Adobe Photoshop uses verified lifting to convert C / C ++ to Halide in its current version.
Code semantic similarity systems – such as Machine Inferred Code Similarity (MISIM) – will not only help an organization to keep up-to-date. all code system; they will also open up the talent pool. Updating an organization’s code base to a modern programming language from older legacy languages that are less understood by software developers today will make it easier to recruit as more developers are familiar with it. these newer languages (for example, switching from FORTRAN to Python). CIOs might even see a reduction in coding errors, as new age languages tend to be easier to use and handle much of the system complexity internally.
Raise newbie developers, help fill the developer gap
Code semantics similarity systems can also recommend code. GitHub’s co-pilot, which I mentioned earlier, for example, is designed to learn what the intent of software is, then recommend improved (or more complete) versions to help the developer.
When fully realized, such code recommendation systems have the potential to increase the quality and productivity of software for both novice and expert developers by providing them with improved alternatives. Ultimately, this will help CIOs and their IT departments meet software demands without hiring additional staff or spending money on new resources. The blue sky vision of these recommendation systems is to improve the productivity of all developers.
Semantic similarity systems can also work in tandem with developers to autonomously detect errors in code.
The bottom line
The software development landscape is becoming increasingly complex due to the heterogeneity of software and hardware. Development teams are also expected to produce software at an increasing rate. Machine programming may be the only financially viable path forward for CIOs and the software development they oversee. So now is a good time to start testing the new machine programming tools and see how to best implement them in your organization.
Justin Gottschlich founded and heads the Machine Programming Research Group at Intel Labs. He is also principal investigator and co-founder of the joint Intel / NSF CAPA research center. In academia, he was appointed Chairman of the Industry Advisory Board and Executive Director of the PRECISE Center at the University of Pennsylvania (Penn), and is also an Assistant Assistant Professor at Penn in the Department of Computer Science and Science. information.
VentureBeat’s mission is to be a digital public place for technical decision-makers to learn about transformative technology and conduct transactions. Our site provides essential information on data technologies and strategies to guide you in managing your organizations. We invite you to become a member of our community, to access:
- up-to-date information on the topics that interest you
- our newsletters
- Closed thought leader content and discounted access to our popular events, such as Transform 2021: Learn more
- networking features, and more
Become a member