Why we need a Common Free Software Applications Interface
Computer Applications help us with the presentation, creation and manipulation of information and knowledge. Deployment of applications on the Internet has seen an explosive rise in complexity. Programming languages and frameworks have struggled to keep up, imposing legacy infrastructure and ways of working that were never designed to cope with the ways in which they are now being used.
Attempts are being made to provide better infrastructure that suits the increasing Internet-led demand for access to information and knowledge, yet at the same time provide an easier way to reuse the same source code to write applications that run stand-alone on the Desktop. Adobe AIR, Silverlight and its free-software counterpart, Moonlight, are proprietary-driven frameworks that blur the distinction between "Desktop" and "Internet". Google's Web Toolkit (GWT) is a toolkit exclusive to Java that allows you to write applications that look like they are Java Desktop applications, but actually they are being run in a web browser (as AJAX). You cannot, however, take the same GWT Java application and actually run it as a desktop application (unless it's under Adobe AIR, as AJAX).
The strategic significance of the independence of the Pyjamas User-Interface API is easily underestimated. A free software python-based application can be written - once - and can run on any web browser, including IE6, IE7, Opera, Mozilla, Firefox and Safari, and also it can be run on embedded platforms such as smartphones and PDAs, as well as Desktop OSes such as Linux, Windows, FreeBSD and MacOSX.
Also, the Pyjamas API is effectively a new type of Widget set, and is not only functionally superior in its scope and features to its competitors, Qt4 and Gtk2, but is also easier to use, extend and understand. The reason for this is quite straightforward: Pyjamas is based on DOM model - browser - manipulation, and browser technology has had to mature much, much faster than Desktop technology. Browsers have to be far more tolerant, forgiving and flexible when it comes to layout and presentation, whereas the Desktop application APIs are really quite rigid; advise developers not to fix the width and height of widgets, for fear of interfering with the framework's limited ability to cope with resizing and layouts; extension of either of the competitor frameworks is far from straightforward; Rich text (such as HTML) support is limited or severely limited, and is broken by design. By contrast, the features that Pyjamas comes with by default, even in Pyjamas Desktop, includes not only full and complete CSS and HTML support, but also includes support for things like SVG 2D canvas and NPAPI plugins such as Adobe Flash.
In only thirty minutes, even the average Python developer should be up and running, creating ubiquitous rich media applications, and be dreaming one day of writing their own version of a gmail client...