AI: A Developer’s Best Friend?
How artificial intelligence will help developers discover and leverage the APIs they need to build powerful new apps.
The challenges of software development change over time. Until recently, any developer who wanted to create powerful functionality needed to build it themselves from scratch. Open source code has proved increasingly helpful, but the real breakthrough was the arrival of the web API. These days, application developers have a wealth of existing functionality and data to draw on—and APIs act as the glue that holds it all together.
With new opportunities come new challenges. The challenge facing today’s app developers is how to find and use the resources needed to create the functionality they have in mind. There’s a lot to discover and a lot to learn—which is why machine learning and other aspects of artificial intelligence (AI) may provide the ideal solution. And a system developed at Rice University is pointing the way forward to the future of AI-enabled app development.
The Power and Complexity of API-Based Apps
Sometimes, it seems like application development is getting simpler and more complex at the same time.
On one hand, emerging paradigms like low-code, NoOps and microservices are creating environments where developers can quickly create powerful new apps by linking together existing application services, infrastructural functions and code fragments. This is making development practices increasingly agile and allowing devs to concentrate more on creativity and less on learning new coding languages and grinding through “grunt work”.
On the other hand, in the age of mobile, IoT and—once again—microservices, the context in which these apps access the various elements of data, functionality and infrastructure they need is highly dispersed and often very complex. Commonly, it means accessing a large number of the APIs that make it possible (though not necessarily easy) to integrate with a technically diverse collection of systems and services.
API Strategy and Architecture: A Coordinated Approach >
Building Apps with Well-Managed APIs
There is a lot to be benefitted from putting systems in place that will simplify the process of discovering and securely accessing the wide range of internal and third-party systems required to efficiently build powerful new apps. API management technology can do a great deal to standardize and secure access to an organization’s APIs, as well as offering tools to help educate devs on how to get the most out of these APIs.
API management can make things a lot easier for developers working within or leveraging resources from a specific organization. However, a typical app will have to access a wide range of APIs, many of which will may not be as well-managed as you might hope. So, how can developers simplify the process of discovering and making effective use of resources from a range of organizations at varying levels of API maturity?
The Dawn of AI-Enabled App Development
For the last half-century, there have been some who have dreamed of using artificial intelligence as a means to simplify application development, with unfortunately little success. As AI innovations come along in leaps and bounds, though, we may be approaching a time when techniques such as machine learning will be used to address the type of development complexity described above.
A recent TechRepublic article reported on a system called Bayou, which has been developed at Rice University (with funding from the US Department of Defense and Google) for this very purpose. It is based on a neural network generated by scanning massive amounts of code posted on GitHub. Essentially, the system works a lot like a search engine or predictive text—the developer provides a few keywords and Bayou generates lines of code.
The system is still in its infancy and is mostly useful for addressing one particular use case, but that use case is extremely valuable. Bayou specifically generates lines of Java code that will work with available open APIs. In other words, a developer tells the system what they want to do, then the system finds examples of relevant APIs and provides code that may help them get what they want from those APIs.
In an app ecosystem that increasingly grows out of a complex network of API-integrated devices, systems and databases, this technology has the potential to be extraordinarily useful. But it may be just the tip of the iceberg insofar as it is a long-sought-after breakthrough in using AI for software development. It will be fascinating to see how Bayou is leveraged in practice and how the principles it uses may be applied to other aspects of software development.