One GUI to Rule Them All

I remember the day that Mark Andreessen announced the Mosaic web browser. In the fashion of the internet, Andreessen and his team released Mosaic as free for non-commercial use. I was immediately struck by the implications that it had for use interface standardization. At the time there was a big competition between Microsoft Windows and the Apple Macintosh for the desktops of the world. Unix was bringing up a close third place. A web based user interface would render the underlying desktop GUI insignificant.

The evolution of the web platform has been gradual. It started out with very clunky user interfaces and very kludgy mechanisms for processing the data and displaying the results. But by keeping a focus on implementing the simplest thing that might work, the platform has become a formidable standard.

One of the most important components in this universal platform was a stroke of luck. Brendan Eich was asked to write a scripting language to embed in the Netscape Navigator Web browser. He originally intended to implement a lisp like language like scheme. This was vetoed by the marketing team as being too foreign looking to programmers more familiar with more conventional imperative languages like C. He was given two weeks to deliver the modified language.

Javascript retained a progressive object system built around the concept of cloning prototypes instead of the more common class based object systems popular at the time. It was plagued by flaws that were primarily the result of being rushed to production without an adequate shake down. Since Javascript was the one common scripting language available in all browsers, it became the lingua franca of the web.

It took the better part of twenty years for that potential to be realized but with the release of HTML5 and CSS3 along with the development of a huge catalog of Javascript libraries running both in the browser and in the server, the dream of a platform independent application framework has finally been fully realized.

Web based applications are now a popular means of implementing software and there is a special category of web application known as a Single Page Application which runs directly on the desktop instead of in a web browser.

Sweet dreams, don’t forget to tell the ones you love that you love them, and most important of all, be kind.