“Hello World!” – A phrase immortalized by Dennis Ritchie – the creator of my favourite programming language C. “Hello World!” was used to demonstrate by example, how a minimilal ‘C’ program can be written, compiled and run. The beauty of the ‘C’ language was that once the learner created their first program, they could incrementally learn more about the language and create bigger and more complex programs. The process was intuitive and naturally evolving.
Same was true of Unix – also my favorite Operating System. I would even go on to say that UNIX, C, and now “Hello World!” were made for each other because they shared more than their origin – they shared the underlying philosophy. Having written your first program of no more than 4 lines, tells you everything about what is to come.
To this day, every programming language or development environment tutorial starts with a “Hello World” example. But then it abruptly switches to something completely different. Having built your basic first program gets you nowhere.
It is tempting to argue that those were simpler times and today’s program are more complex – but are they? Or more realistically – do they need to be? What are today’s applications (and I will stick to business applications only here) doing more?
If you are a part of a software development team, do this little exercise – In your application, see how much code is used to perform actual business computations or functions and how much code is used to perform plain technical tasks like data marshaling, object life-cycle management, calling and interacting with APIs etc. The technical part of the code is not directly adding any business value, but “is needed” to support the functions that actually do. We not only assume that this is how it is supposed to be – but further propagate this technical complexity, perhaps, in order to feel useful and glamorize our jobs.
Modern day APIs are single-entry, single-exit programs much like the programs of the UNIX-C era. Why do they need to contain so much technical complexity. In the good-old days, I could write an algorithm as a pseudo-code and then find a line-by-line translation to ‘C’ – there was one-to-one correspondence with the business functionality.
Think about it – why can’t we do that to business programs (APIs) today. Write a structured business description of that is to be achieved by the API and then do a line-by-line translation to the actual program.
ZOAPIIO.COM is a realization of this concept – your program needs to be business and nothing else. You environment should hide the technical complexity and expose the bare minimum that is required for the programmer to interface with it – you would be surprised on how little of it actually needs to be exposed.
Go ahead, try it out.