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) [Click]: https://click.palletsprojects.com/ [Flask]: https://flask.palletsprojects.com/