The big success story of the past few years in software was the “app” model based around native mobile apps and app stores.
However last year saw a surge of interest in using web standards rather than proprietary interfaces, Objective C and Java. This enables developers to use their experience in building websites to applications, and also brings a much wider set of options for distributing applications. You can still install an app from an app store, but you can also download it, email it and host it on your site. You can install them on your phone, on your desktop, or access them with the browser in a portal or start page.
A number of organisations and standards bodies have been working in this space for quite a while now, and there is a rich ecosystem of specifications – some complementing each other, some competing. So now we have W3C Widgets, WAC/JIL Widgets, the Chrome Web Store, Mozilla Open Web Apps, OpenSocial Gadgets, Opera Extensions and so on all providing an app platform based on the same fundamental web standards model but with enough differences that make interoperability difficult to achieve right now.
This is tricky situation to keep on top of, so I’ve tried in the diagram below to give a snapshot of where things stand today. Apologies if I’ve left out your favourite spec as their are quite a lot out there.
The most common packaging format for web apps is to use a Zip archive with a manifest containing metadata such as the app’s name, author and pointers to things like icons and screenshots. W3C’s Widget Packaging and Configuration specification has been adopted across a few different app stacks, including the Wholesale App Community specification stack and Opera’s Extensions and Unite platforms, while there are competing specifications from OpenSocial, Google Chrome Apps and Mozilla Open Web Apps.
However, application packaging isn’t a strong differentiator in the app market – the only reason to have competing specifications at this level is to attempt some sort of lock-in – so we’re likely to see more convergence in this space. I’ve been working on bridging the W3C and OpenSocial specifications, and some Mozilla developers have been considering adopting W3C Widgets (maybe in JSON rather than XML) in place of its own nearly-identical Manifest specification.
(Google has developed quite a few competing models for mobile web applications -actually, some of them compete against each other too. Sometimes it comes across as a tension between a desire to embrace open standards and paranoia over controlling their platforms.)
Things get more interesting as you move up the stack, and you can see there is a strong relationship between W3C and WAC in their activities. This isn’t accidental – to some extent WAC either profile W3C specifications, or develops APIs that eventually get fed into W3C to be refined into specifications. (This is similar in some respects to the relationship between IMS and SCORM in the early days of elearning specifications). So we’re likely to see a lot of convergence between WAC and W3C specifications, although WAC specifications will also likely continue, partly in response to the needs of mobile developers on the platforms offered by WAC partners .
(For the first half of the last decade W3C seemed to move at a glacial pace as things like XHTML and RDF dragged along, largely ignored by the wider web. However its been in overdrive since, churning out a huge stack of HTML5-related specifications plus all of these widget and device API specs.)