HTML5 has won the battle against plugins, with Flex and Silverlight universally viewed as dead technologies. Meanwhile the native vs. HTML5 mobile technology debate continues - while HTML5 has clearly ‘won’ the web, the mobile technology debate still rages.

Despite the struggles for mobile, the rise of HTML5 and JavaScript continues; they are now considered viable technologies for server-side, and more recently desktop development. But what exactly is it about HTML5 that has made it so unstoppable? Is it a fundamentally better technology? No…It is not!

The shortcomings of JavaScript are widely known - it is a messy and somewhat broken language.So if it isn’t a better technology, why is it gaining so much traction? To answer this question, it helps to take a close look at the latest HTML5 battleground, on the desktop.

A History of ‘App’ Development

Despite the term ‘app’ being relatively new, having been popularised by smartphones, within the enterprise world we’ve been developing ‘apps’ for decades. While the web is a generic platform that displays a diverse range of content, apps are focused on specific and often complex user tasks.

The technologies used to build apps has transformed considerably over the past few years:

Circa 2010, Microsoft technologies dominated, with one solid product, Windows Forms, being replaced by another, Windows Presentation Foundation (WPF). With WPF, Microsoft hoped to engage both developers with its elegant core, and designers with Expression Blend. Meanwhile Java Swing, while significantly better than it predecessor, had lost much of its market share to Microsoft’s superior products, or as Forrester put it, ‘Java bungled the presentation layer’. At this point in time, the use of web technologies for serious business applications was gaining momentum under the umbrella term Rich Internet Applications (RIA), with the Flex plugin dominating.

Fast-forward five years and WPF has successfully replaced Windows Forms and become the de-facto technology for enterprise app development. However, many feel that Microsoft has been neglecting this technology as the company's attention turned to Windows Store, Azure and Windows Mobile. WPF is a mature and stable technology, but the performance expectations were never fully met. Meanwhile, Oracle intends to use JavaFX (the failed plugin technology) to replace Java Swing (the failing desktop technology), further cementing their irrelevance! On the web, plugins, together with the term RIA have been consigned to the past, as HTML5 reigns supreme.

Collaboration Drives Innovation

Desktop technologies are entirely vendor owned and managed. WPF is Microsoft’s technology and Swing is Oracle’s. In contrast, HTML5 is a collaborative effort with the technology being pushed forward by a diverse range of companies and individuals.

Large technology companies are putting a considerable amount of resource behind HTML5, resulting in significant contributions, many of which can be used in conjunction. The following are just a few recent innovations:

  • Microsoft - developed TypeScript, a superset of JavaScript with static typing, that lends itself well to large-scale app development. TypeScript has recently been adopted by Google’s Angular 2.0 team and has deep support for React’s JSX syntax
  • Google - created the Chrome browser that has set the benchmark that all other browsers aspire to. Google has also been the leading force behind a many web technologies, including Angular
  • Facebook - developed React that has revolutionised the way developers write their user interface (UI) code. Its functional programming concepts have influenced a great many other frameworks, notably Google’s Angular 2.0
  • Netflix - adopted TypeScript and rewrote the popular RxJS library, which is itself a core component of Angular 2
  • Mozilla - continues to push web technologies both with its browser and quality documentation in the form of the Mozilla Developer Network, widely recognised as the most complete and detailed source of information on a wide range of HTML5 topics. Mozilla haS also adopted React, while rebuilding its browser’s developer tools
  • Twitter - developed Bootstrap, which brought the concept of CSS reuse to the mainstream. Now on its fourth version it is very widely adopted. Twitter also uses React for its mobile website.

The level of investment in HTML5 is considerable, but just as notable is the level of collaboration. Examples include Google adopting Microsoft technology (Angular 2 uses TypeScript), and Microsoft using GitHub’s technology (Microsoft VSCode is built on Electron), with engineering teams often working side by side.

The combined efforts of the companies listed above, together with the thousands of smaller companies and individuals, has led to the considerable duplication of ideas, healthy competition and ultimately, innovation. Ideas, concepts and techniques rapidly evolve as they percolate through the open source world of HTML5. As a result, web development is improving exponentially.

HTML5 Takes On The Desktop

The use of HTML5 as a desktop technology is a relatively recent concept, but  it is rapidly gaining momentum and maturity.

The basic mechanics of running an HTML5 application on the desktop are quite straightforward. The app runs within a container that provides a JavaScript runtime and an HTML rendering engine. In many ways it is just a stripped down browser.

As well as providing a JavaScript runtime environment, the container provides APIs that allow the application to integrate with the desktop environment:

  • Desktop notifications
  • Interacting with low-level hardware
  • System level menus
  • Multi-monitor support
  • Directly interact with the file system.

These APIs are often operating system agnostic, for example by allowing the developer to create notifications for both Windows and Mac from the same codebase. This architecture is very similar to Cordova/PhoneGap, allowing developers to write cross-platform HTML5 applications for mobile.

Desktop container technology has enjoyed the same collaboration as other HTML5 technologies, with the current wrapper technology representing the combined efforts of many companies and individuals.

As the technology has matured, its use has become mainstream. A number of high profile desktop applications are now written using HTML5:

  • GitHub Atom - a very popular open source editor
  • Visual Studio Code - Microsoft’s open source editor
  • Brave - a privacy focused web browser
  • Slack - a popular team-based messaging service.

As well as these, there are numerous financial services applications being built using this technology by companies including ICAP, Tullett Prebon,Trading Technologies, REDI and Green Key - in these cases using the OpenFin container. Furthermore, the Symphony Foundation, which is seeking to drive open source software within finance, has a dedicated Desktop Wrapper Working Group.

The applications mentioned above require both security and performance, both of which can be delivered using HTML5. With the third generation of wrapper technology, creating HTML5 applications for the desktop is now just as easy as creating them for the web.

Conclusions

A move towards using HTML5 for desktop development gives access to a great many innovative technologies, frameworks and techniques. The ultimate, and altogether achievable goal, is for your development team to be able to quickly and easily move between projects, technologies and platforms, making use of modern tooling and productivity. This can be succinctly expressed by a subtle twist on Sun’s original (and failed) mantra, write once, run anywhere:

Learn once, use everywhere

It looks like traditional desktop technologies are destined to follow the same fate as plugins, ultimately being replaced by HTML5. How can a technology created by a single company compete with the collaborative efforts of hundreds of enterprises, thousands of start ups and tens of thousands of individuals?

If you haven’t previously considered HTML5 as a desktop technology, it’s time to rethink your strategy…

And what of mobile development? HTML5 has some new tricks up its sleeve, with Progressive Web Apps able to deliver app-like functionality with browser technologies. It’s not only native technologies that are at risk, but also the app stores used to distribute them!

If you are interested in a more detailed version of this article, you can download it in White Paper form from our website.