Java was released by Sun Microsystems back in 1996. As a new programming language, it entered a space long dominated by the likes of C; C++; Perl and many others. Java needed to bring something new to the table. At the time, every compiled programming language needed to be recompiled on every platform you wanted to run it on, often with particular fixes to handle the idiosyncrasies of different operating systems. Java was different in that it had the benefits of a compiled language, but thanks to the cross-platform ‘virtual machine’ it ran on, it could run anywhere without recompilation or tweaking.
This unique benefit was succinctly captured by Sun’s marketing team in the acronym WORA, which stands for “Write Once, Run Anywhere”. The Java libraries dealt with such things as memory management, working with the file system, using the networking features on the device and even creating new threads in an abstract, cross platform way. As many C and C++ programmers experimented with the new language, they were surprised and pleased at the higher level of abstraction Java provided, which allowed them to focus on the application logic.
No ad to show here.
The web is still a youthful environment. A web browser, on loading a web page, must be capable of using a number of different technologies to render the content. Non-standardised proprietary technologies (Flash, Silverlight) mingle with conflicting standards (HTML, XHTML) and different browser interpretations of these standards. Each technology presents particular innovations, but as their number grows, so too does the complexity for the browser developer, the web developer and the end user. Ultimately, for the user, content is king and the technology is incidental.
In the mobile environment, much has been written about the choice between native mobile apps (as delivered by appstores) and the mobile webapps. As in the past with compiled languages, every mobile app must be rewritten for the particular platform on which it will run — and the problem is often exacerbated by entirely different languages for each platform. Native apps tout performance and full access to the phone’s features as their major benefits, but in truth these kinds of advantages diminish quickly over time. By comparison, the modern mobile browser is increasingly capable and unburdened with support for legacy technologies.
As the feature set of competing technologies approaches parity, it is natural for one to win out as the default. I believe we are at such a juncture, and the battle has been fought (and won) by HTML5. In short, it is the web’s new WORA — a platform which allows developers to focus on the application they are writing without worrying about how the content will be displayed across a variety of different browsers and devices.
There are a great (and increasing) number of indicators for HTML’s success as a common platform technology. One of the first victories was in 2009, when the World Wide Web Consortium (W3C) discontinued the development of XHTML2 in favour of HTML5 as the hypertext markup language of the future. Apple has never supported Flash on the iPhone and in 2010 Steve Jobs wrote a famous piece denouncing Flash and promoting HTML5 as the technology of the future.
Google has supported the development of HTML5 directly with the Chrome browser and, in early 2010, surprised the world by adding a HTML5 support to YouTube. Increasingly, it is adopting, supporting and evangelising the standard. In another dramatic twist, Microsoft has recently stated that the Silverlight strategy has ‘shifted’ and that HTML5 is its preferred cross-platform web technology.
Added to this, Windows 8 supports HTML5 apps in the as first class native apps, a move that takes HTML5 beyond the browser. As a final example, Facebook CTO Bret Taylor’s focus for 2011: Mobile and HTML5. Or, mobile using HTML5.
There are many more vendors and examples, but the case for HTML5 is becoming increasingly clear. In just a few years, it has become the darling technology of the software giants who matter, with a consensus that is almost unprecedented in the hotly contested web environment. The reason for its success is simple — much like Java’s WORA promise — it provides a common platform that can simplify many of the complexities of deploying a modern web application. It’s an important evolution, and it has very much arrived.