Standards are the Present
I was writing a press release recently, and I was just about to write a heading that has been something of a mantra the past 20 years: "Standards are the Future". But I paused, realizing the product I was describing is completely standards-based, thanks to recent technology advances. I corrected the title, and I think now is the right time to declare victory for web standards over proprietary technologies and walled gardens.
As of 2015, web standards-based approaches at last make complete sense for the majority of software use cases, at least those that our company works with on a daily basis. Sure, there are places where walled gardens and native software have a valid reason to exist, but those have become the exception rather than the rule.
The Bad Old Days
When the web became popular 20 years ago, software was something like the Wild West. There had to be some sort of standard for web browsing, but remarkably few players were involved in determining what those standards should be. Microsoft, in particular, dove in with monopolistic fervor and worked hard to subvert or derail standards, swinging its OS monopoly like a mighty weapon. ActiveX controls, arbitrary mis-interpretations of CSS specifications, home-invented replacements for standards-based XML/XSLT... these were hallmark of Microsoft during the early years of Internet Explorer. IE muscled Netscape Navigator out of prime time, but Mozilla endured and carried on the standards torch, despite the best efforts of Clan MS.
Plugins were one way that browsers could be extended, yet very few reached a large market share. Macromedia hit a home run with their Flash technology, which attained near ubiquity. Yet this approach represented a complete end-run around standards. It made Microsoft look almost benign by comparison.
The Promise of an HTML Runtime
Flash may be on its way to extinction, but it set many precedents that will live on in HTML5. Fundamentally, it showed for the first time the concept of a "Rich Internet Application" within a browser. Macromedia may have cheated by using a plugin (in that right-place right-time moment when users were so new to browsers that plugins were acceptable), but it certainly gave a glimpse of what was then the future, which is now the present. In its infancy, HTML was fundamentally a document renderer. Flash demonstrated that a browser could be a runtime for serious applications.
Success Due to Failure
Microsoft was gradually shamed into becoming more accountable to XML and HTML standards in the early 2000s, but they did not, for example, embrace Scalable Vector Graphics (SVG) as a standards-based alternative to Macromedia Flash. Instead, they created their own ill-fated stealth copy of SVG, Silverlight, which was so late to market compared to Flash that it never really had a chance. As Apple and Google became significant players in the browser space, the steady evolution of Firefox and the advent of Webkit and the new "HTML5" effort combined to make it clear that Microsoft could not rest on its laurels forever.
Three factors forced Microsoft to finally accept SVG and support it: the success of Flash, the momentum of HTML5, and the advent of smart phones/tablets. Prior to the iPhone, Flash was poised to take over the world, with 98% adoption and very good marketing around "inevitable" mobile support. Silverlight did not have any traction, proving that an alternative plugin would not be the answer to Flash.
HTML5 began to make sense for everybody. With IE9, Microsoft came around and started a trend that has continued to this day, a trend towards standards compliance. Meanwhile, Apple and Google stepped up their game. Steve Jobs' aggressive denial of Flash on iOS devices created a responsibility to offer a true alternative in a standards-based way. Even Adobe threw in the Flash towel, realizing that standards were inevitable and such a "platform" was not going to quite make it.
Walled Garden Resistance
At the point that all major browsers supported HTML5, one might have assumed that standards were inevitable. Companies like Facebook put huge sums of money into HTML5 development, only to find that there were great challenges, as well as severe limitations in the experience that could be offered by HTML5 on mobile, when compared to native applications. Or, for that matter on desktop, when compared to Flash.
While HTML5 was the only option to feed mobile users on web browsers, the promise of re-using this code "wrapped" into a native app proved premature. This was due to a combination of factors: device performance; browser software; development software for this new technology. In 2012, Facebook reversed course and scrapped their standards-based "wrapped HTML5" app for pure native, which clearly did better at the time.
If a monster like Facebook couldn't make HTML5 sing, imagine the difficulties that mere mortals faced. It was one thing for Steve Jobs to say "Flash is dead" and suddenly feign a new-found love of standards, but that did not auto-magically make browsers such as Mobile Safari have native-like performance, or parity with the Flash feature set.
During the past 3 years, we have witnessed steady progress on all of the fronts that held HTML5 back: hardware performance; browser compliance and development frameworks. All have improved dramatically, and there are more and more success stories for HTML5 and standards. Facebook, for their part, has evolved React.js to include React Native, which they currently use to build their iOS apps.
WebGL: the Healthy Canary
The strongest evidence that standards are starting to rule the day is the lightning-fast advance of WebGL. This standard for 3D rendition currently runs beautifully across all major desktop browsers, tablets, and smartphones.
The difference between the adoption of this standard vs. SVG 15 years ago is stunning. There was only one holdout to WebGL, Apple, and their resistance did not endure for long. With iOS8, WebGL attained support on 2 billion+ devices, thus showing that standards really can propagate and prevail in non-glacial timeframes. Meanwhile, the progress of HTML5 has been stunning, with tooling and frameworks making it possible not just to say "don't use Flash", but to actually create richly interactive experiences as good as, or better than Flash... with comparable or less effort.
Good things come to those who wait.