WML, Widgets and HTML5 web apps, they are all the same thing

I like to observe how in technology (and often in life) things are repeated. Sometimes they are just the same thing again and again, other times they are slightly different. Especially in technology, some ideas fail because they are missing some pieces or because their timing was not perfect, this of course allows for refinement and repetition.

Glossary

Some of the terms in this blog post’s title are buzzwords these days, so let me first clarify what I mean here.

WML: YES, I really mean the WML that was part of WAP 1.
Widgets: by “widgets” I mean the self-contained mini-applications that you can download and install on your mobile device, created with Web technologies like HTML and Javascript. The most obvious examples are of course Nokia’s WRT and the W3C’s Widget Rec, now already implemented in various browsers and devices.
HTML5 Web app: Web applications developed as a single-HTML-page that is updated mostly using Javascript, i.e. with almost no page reloads.

Why WML, Widgets and HTML Web apps are the same thing

Forget for a moment the technical details or the SDK that you use to create one of these applications. Let’s start from this sentence:

My service is developed using the latest Web technologies, it contains mark-up and scripts, you can download it with a single request and while you use it you will see different content without actually making new requests to the network

It might sound crazy, but the above sentence applies to WML, Widgets and HTML web apps. Why? Let me explain.
WML is a highly underestimated mark-up that died a cruel and early death because the rest of the technology was not good enough yet (and possibly because it was a bit too strict). On the other hand it had some interesting ideas that have been disregarded for years or we have forgotten too soon. A WML page was called “a deck”, a deck was one file with a header and then one or more “cards”. Each card was rendered as a page on your mobile device and you could use anchors to jump from a page to another. The main reason for this was to save network requests, i.e. download everything you need in one go and then browse within that content until you need more.
A Widget, in the context I described above, is normally one HTML page, some CSS, some Javacript and an XML file that acts as a descriptor. You download and install it on your mobile device. When you run it, a sandboxed browser opens your starting HTML page and some Javascript and CSS magic loads the content and updates it according to your actions. Of course it is much more advanced than what WML (and WMLScript) did, but 10 years have also gone! What are the key selling points of a widget? That once installed on your mobile device it looks like a native application and that you have the markup pre-loaded in your device’s memory. IMHO, it sounds a lot like a pre-loaded WML page and in fact something that was also possible with WAPPush (you would send a compiled WML page via SMS and the device would parse it and display it).
An HTML5 Web app is not rocket science and in fact Web apps existed way before HTML5. Think about Gmail, it’s a Web page, but you never hit the “back” button or load a new page. In essence Gmail (like any single-page Web app) is one Web page with a lot of CSS and Javascript that load and update different parts of the page. VERY similar to a widget with regards to both technology and functionality, much more advanced than a deck in WML, but not so different in concept.

So what’s the story?

The two ideas might have started from different assumptions, for WML it was a matter of saving network requests, for Widgets was the idea of creating an application that looked native, but was as simple as a Web page and for HTML5 it was a bit of both, look like a native application and optimise network requests. The end result seems to be the same.

Of course, the road to success (if we can already declare Web apps a success) has been paved with many tiles that were missing at the time of WML and even when the first Widget implementations came. We now have much better connectivity and lower latency, we have better Javascript engines and a way of styling pages that allows to manipulate elements in the page easily.

If you are like me and thought that Widgets were not interesting, what is your thinking with HTML5? Why is an HTML5 Web app any better than a widget?
A Web app is downloaded from a URI and is always up-to-date, but updating a Widget is almost as easy. A widget can be installed in your device and appear as an icon like a native application, but you can also save a bookmark of a Web app and some devices let you add shortcuts to bookmarks in your mobile device’s menus.

So can we call Widgets useless and love Web apps? Can we call WML a complete failure?
Are these just names created by marketing and sales teams for the same thing?

2 thoughts on “WML, Widgets and HTML5 web apps, they are all the same thing

  1. I embrace all three technologies for their capabilities (but at the same time am probably equally quick to poopoo them for their shortcomings).

    In fact, if we really had it figured out we’d use all three in harmony to create Semantic Mobile Agents… but we’re not quite there yet.

    Think about it, WML defines a strict Deck -> Card -> Data (content) relationship. If every widget were to use WML (probably a more powerful version, call it RDF/WML) as the data markup, then we could have URI-indexed data Card Decks all over the web with interesting, well-defined data presentations (by then it would probably be serialized in JSON as W3C finalizes it, unless a new markup preference emerges in the ADD-like trends of the web community).

    Mashups could then finally become significantly easier (to the point that basic data integrations could eventually be automated by code), and widgets could be built/customized using progressively enhanced HTML5 building blocks.

    It sounds like a pipedream, but I see the effective combination of WML “philosophy” (well-defined user interactions that minimize network requests by containing multi-tiered data), Widgets (write once, run-anywhere [that can access the web] client-side code), and HTML5 (interactive, self-contained, visually appealing web application presentation layer) as being the key towards getting to a place where the Mobile space is no longer a nightmare and monopolized profit-center that changes every other year, but a clear success case for ubiquitous information access and harmonized development environment for humanity to move forward into the 21st century of consciousness and awareness.

    (Ok, the automated part is still probably a pipedream… but hey if we can access the web in space we’re making some progress into inter-galaxy communication at least! Can user-controlled agent automation really be that far off?)

    Like

Leave a comment