- 2005. Ajax – browser-based desktop-class applications
Ajax is a collection of technologies that brings a level of interactivity to web pages that rivals that of desktop applications. One impressive example of what can be achieved via Ajax was introduced in February 2005: Google Maps. You were able to pan and zoom over a map of the world, but only the content that was currently visible was downloaded to the browser. After Google Maps came out, Jesse James Garrett noticed that it shared certain traits with other interactive web sites. He called these traits
Ajax, an acronym for
Document Object Model) of the browser (DHTML, 1997, Netscape 4 and Internet Explorer 4). That was a marked usability improvement from always performing complete page reloads.
Since the inception of Ajax, other data formats have become popular (JSON instead of XML), other protocols can be used (e.g. Web Sockets in addition to HTTP) and bi-directional communication is possible. But the basic techniques are still the same.
- 2007. WebKit becomes the foundation of the mobile web
Based on prior work by KDE, WebKit is an HTML engine introduced by Apple in 2003. It was open-sourced in 2005. With the introduction of the iPhone in 2007, it became
the foundation of the mobile web. WebKit is now the main engine for Android and the only engine for iOS and dominates the mobile market. That means that if you want to write a cross-platform mobile application then web technology is currently your best bet (unless you need features that are only available natively).
- Because it’s bare and does not come with I/O APIs [hence all of them are new and non-blocking].
- Web developers use it already.
- DOM API is event-based. Everyone is already used to running without threads and on an event loop. [Web developers are not scared of callbacks.]
- 2009. Chrome OS – a web operating system 
Since Ajax, more and more applications that people use are running in the browser: social networking, email, games, etc. Add to that the fact that Chrome even has its own task manager and you can see that a browser is already an embedded operating system. Then you have to ask the question: What do you need the embedding operating system for? That is the motivation behind Chrome OS: Run just the browser, as an operating system. There are three advantages to using this approach: First, it allows you to get started quickly with a new operating system, because all of the user interface technology is already there (for lower levels, you’ll need to plunder something else, such as Android or Linux). Second, many developers already know how to program for your operating system. Third, for users of the system, there is nothing to install, new users can get started quickly. That’s a big plus for public installations such as internet cafes and schools.
We also need a hill to take, in order to scope and focus our efforts. Recently we saw the pdf.js project [which renders PDFs via HTML5, without plugins] expose small gaps that needed filling in order for “HTML5” to be a superset of PDF. We want to take a bigger step now, and find the gaps that keep web developers from being able to build apps that are—in every way—the equals of native apps built for the iPhone, Android, and WP7.
- When Microsoft introduced Windows 8, it surprised everyone with the operating system’s extensive integration of HTML5. HTML5 applications are first-class citizens in Windows 8, on par with those implemented via incumbent technologies such as .NET and C++. To demonstrate that point, Microsoft wrote several important Windows 8 applications in HTML5 (plus proprietary extensions), including the app store and the email app.
- Features for applications: Canvas for bitmap graphics (static or animated), WebGL for 3D graphics, etc.
- Features for documents: SVG for vector graphics, MathML for typesetting math, etc.
Comments on this blog post are welcome: Did I miss a milestone? Do you agree with the ones I picked?