Jaroslav Tulach, initial architect of the NetBeans IDE, mixes practicality and philosophy in his API design work. In this video interview, he ponders the future of APIs, why people misunderstand APIs' purpose and whether APIs could help everybody develop applications.
Asked if APIs will evolve to the point where any layperson can be a developer? Tulach, Oracle NetBeans platform architect, is of two minds. On the one hand, he knows that software development is difficult, and why wish such suffering on everyone?
On the other, think of the amazing apps a world of developers could create, said Tulach. "That is my dream, and not only my dream, but the dream of every company who's producing some framework, some toolkit," he said. Their goal is to create APIs that are "easy to use in a clueless mode. Giving them a way to be effective without a high learning curve is basically the holy grail."
He's no stranger to building innovative apps, having come up with NetBeans, the first modular desktop application framework written in Java. Also, he recently created DukeScript with Anton (Toni) Epple, which won the coveted 2014 Duke's Choice Award at JavaOne 2014. DukeScript is a tool for creating cross-platform mobile and desktop applications with Java and HTML5.
Tulach has seen that APIs confound and have been falling short of API designers' and users' expectations.
Designers often create APIs for specific purposes and are surprised when users do something else entirely. "When you are developing a framework, you are creating an environment upon which some kind of evolution will start," he said. Kick off evolution, and there's no predicting where it will go.
APIs fall short for developers who expect them to provide a push-button build. "You cannot expect API to do everything for you," Tulach said. "You still have to do some programming."
Looking to the future of APIs, Tulach first clarified what he thinks an API is. Today, some people think APIs and REST are one and the same, inseparable, and that APIs' future will follow REST's. In his view, an API is not just REST services or JSON. "API is everything somebody else may depend on," he said, which includes a mix of protocols, memory, layout of files, properties you can configure and more. "These kinds of APIs have been with us since computing began and will remain until computing ends."