APIs, GUIs, CLIs, Services

You write a small program beginning with a lib that exposes an API (with procedures to call). Then you write a simple CLI, e.g. by using Click. It would be great if it had a GUI for casual users (QT of course). Let’s integrate it with the rest of our Distributed Computing Platform (TM), so you build a service (Flask maybe?) obviously REST-Style. And all of these are built by hand, because 500 lines of XML and FooFactoryFactoryConfigurator is not your style.

There was WSDL, and there are WADL and RSDL. But what would be really cool is ADL: API Description Language.

Writing a new tool should be a three-step process:

  1. define the public API

  2. write the lib

  3. define the interfaces you want (and I mean CLI / GUI / Web API)