The Future of Code Development

Massi
Metabob
Published in
5 min readJun 30, 2022

By Massimiliano Genta and Klay Ketelle

Coding has become the necessary currency of the new job market. From high budget campaigns with former President Barack Obama encouraging Americans to learn computer science, to Apple’s new collaboration with the Boys & Girls Club of America to launch a new coding program, computer science is being taught earlier and earlier and has now become an essential part of a well-rounded education. A recent study done by code.org shared how Computer Science courses have grown from being available in 35% of High Schools nationwide to now over 51%, just within a span of the last three years. With Computer Science based degrees being some of the highest paying out of college, and the software industry becoming ever more prominent in popularity and prowess, how big can the industry get? What tools or processes will aid in its future Development?

The entire coding process has shifted radically throughout its creation and into its tenure. While the five main steps of the code process have remained the same (defining the problem, planning the solution, coding the program, testing the program, documenting the program) there have been significant innovations to help this process become more streamlined. Regardless of what programming language is used or whether a company’s or personal projects are on premise or in the cloud, AI and machine learning technology have begun to automate the coding process. The most recent example of such efforts being used on a large scale was Github’s launch of its latest software development tool CoPilot. CoPilot provides developers with automated code snippets that can be embedded into a user’s codebase. Where developers once went to check websites such as stackoverflow for prewritten code that was far too time-consuming to write out themselves, CoPilot seeks to decrease time spent searching, freeing up more time for developing meaningful codebase. But the coding process does not stop here. Developers spend a considerable amount of Time review already written code. Recent studies have shown that this process can take up to 35% of a developer’s work hours. In the past, the only real way to define any reasonable solutions for bugs was to go through them manually, painstakingly trying to figure out where a problem is arising and why. Early development tools looking to aid developers in the process were somewhat useful, but not inherently beneficial. Most of these adaptations could only comb through and find bugs easily detectable to the human eye. Some current code review solutions check for style, others for security issues and select bugs, and a few even offer visualizers for a codebase. Yet, automated Code review of more time-consuming errors remains a challenge these tools have been unable to rise to.

Most of these review tools check for a variety of problems that are preset by the developer. More specifically, the developer defines rule-based algorithms for the code review process. This human intervention, however, limits the scope of what is detected to what the developer knows, which in turn sets boundaries for the errors detection process. Moreover, rule-based code review prevents automated learning of the tool. Current tools do not tell the developer how to go about solving issues in any meaningful way.

We are an AI driven, Static Code Analysis tool that learns from bugs found in millions of open-source code repositories. Specifically, Metabob runs attention based, graphed neural networks to detect coding errors. The attention network sits atop inputs given to it, learning in which areas of the codebase bugs typically hide. The model learns dynamically based on each specific node change or correction. Given that Metabob learns from both bugs and individual repositories, it is possible to detect context-based bugs. Context and logical-based bugs, as defined by techterms, are “a mistake in a program’s source code that results in incorrect or unexpected behavior.” In this way, the information provided to developers is more useful, as it is catching issues it already knows to be of concern. Metabob displays results in a code tree view and in a 360 degree visualizer. Both options enable developers to check where problems are and show how they interact with other aspects of the codebase. In addition, Metabob recently added code recommendations. That is, the AI is now also able to make suggestions on how to fix coding errors, which represents another step to a fully automated the code review process.

Compared with other tools that use code input from the open-source community, Metabob alerts developers of real bugs that are harming their codebase, instead of just presenting an ineffective, generic response to problems showing up frequently, resulting in highly counterproductive coding. In this way, Metabob is an all-in-one solution, providing all of the standard tools developers already use to debug code. Metabob is not rooted around commonly known local rule-based systems. Instead, Metabob utilizes intuitive AI practices to learn and create solutions developers need.

The future of coding is still hotly debated. While we are somewhat in that future now, we are well aware that the process of developing code will continue to evolve, with AI playing an increasing role in writing and reviewing codebases. The questions that developers will continually end up running into are “is automating helping me solve the bigger issue?” and “do I have more time freed up for innovation?” Tools such as CoPilot and Metabob are leading the way into the future of coding. While CoPilot makes an important first step towards automating the more tedious parts of programming, Metabob’s AI-powered process is ushering in an era of code correction.

Metabob could potentially even aide in helping improve the recommendations CoPilot provides, as researchers at NYU have mentioned: “Code often contains bugs — and so, given the vast quantity of unvetted code that Copilot has processed, it is certain that the language model will have learned from exploitable, buggy code.” As with CoPilot, Metabob is still in its early stages. Right now the tool is fully available for analyzing Python repositories, with more languages to be added in the future. As the next few years unfold, we will see more and more tools looking to automate and minimize the time spent on the ‘plumbing’ of code development, freeing up time for creative, more nuanced areas of the field.

--

--

Massi
Metabob
Editor for

Python enthusiast, passionate about devtools and ML. Metabob CEO