I usually keep my posts here on HitTail to be related to online marketing. Rarely do I venture off into industry-wide issues, choosing instead to put those on Mike-Levin.com or Connors.com. But with HitTail increasingly referred to as a Web 2.0 application, I thought I’d weigh in on my definition of the topic. It’s going to be a slightly intellectual, rambling post, but such are the heady topics of where Web development is going.
There is a lot of confusion surrounding Web 2.0. I feel that it’s merely the third coming of Sun’s recurring promise that the network is the computer. The second promise was Netscape’s that the Web browser was the new computer platform. And today, Web developers finally have the ability to write client/server-like apps for the Web browser, wiring up program modules that reside all around the Internet, and using Ajax or Flex to break free of the hyper-linking page-load model. This finally makes us feel like Sun’s long-ago promise has arrived–but having forgotten that promise, the Tim O’Reilly innovated term “Web 2.0” was sitting there waiting to fill the vacuum.
The sub-text here is a leveling of the playing field, taking away any disproportionate Microsoft advantage. In this new world, it’s the vendor-neutral, open source specification that’s important, not the implementation. That’s why the open document format (ODF) is so important, and why Microsoft has no interest in it catching on. Once data is universally interchangeable, and office document formats are standardized, then it doesn’t really matter whether you’re using Microsoft’s software or somebody else’s to get there. The playing field is leveled.
The same goes for the underlying computer platform. A standardized open source, vendor neutral code execution platform is a huge threat to Microsoft, for the exact same reason. One would think that this was Sun/Java. But it wasn’t, because it was neither open source nor vendor neutral. Instead, it’s a closed-source solution whose security and standardization comes from being closely held by Sun. This may change very soon, but along with open sourcing Java comes a huge infusion of fear, uncertainty and doubt (FUD) that ruins security, and perhaps even standardization if not done well. Also, Java performance sucks because of the virtual machine, and the Java language appeals only to career programmers.
In response to Java, Microsoft programmed its own virtual machine (VM) in the form of the common language runtime (CLR) which is the VM in .NET, and while it doesn’t close you into an obtuse language, it has similar performance issues as Java, and is most certainly not open source or vendor neutral. Enter Netscape’s promise of years ago that the Web browser was destined to become this new computing platform.
All the techniques of making the Web browser a valid programming platform have been around since Internet Explorer 5, but Microsoft has not been very open about promoting its use as such. Basically, people who used the Web interface to Microsoft Exchange were the only ones to see it, plus a few hackers who figured out how to do the same trick with Microsoft’s HTC technology, or hacks using cookies and iframes. It wasn’t until Google starting sticking seemingly impossible features into GMail and Google Maps that the world took notice, and non-MSIE browsers starting showing browser-envy—adding the same features, thus achieving some semblance of standardization. Scrolling maps forced the Mozilla project and Safari to match MSIE’s capabilities, and therefore the open source, vendor neutral code execution platform was born: the Web browser (and Sun/Netscape’s vision was finally realized).
So, where does that leave Web programming? Do we jump on the Ajax bandwagon by adopting the lest-objectionable Ajax library and living in the Web browser world? Or do we persist in our faith in the obtuse and under-delivering and soon-to-be fractionalized Java platform? Or do we trust the single, unified Microsoft .NET platform that has the biggest installed base via Windows, largest developer network via MSDN, best development platform via Visual Studio? Or do we bet on a dark horse, such as Adobe/Macromedia Flash, which has the potential of being its own high performance, platform independent platform such as the Flash video player’s recent massive success has demonstrated that it can become?
Web 2.0 only stands for a little piece of the software development nexus that is occurring. The dream is an open source, standardized code execution layer that all programmers can write for and target. At very least, developers should be able to target a generic platform, and have the compiler do the work of making it run on different platforms. Of course, you still have all the wildly different variables of device form-factors, display capabilities, speed, special graphics abilities, support for subcomponents like TV Tuners, Internet connection speed and the like. So, even with the ideal “platform”, the bigger development challenges are merely simplified–not solved. But people thirst for this simplification.
All this plays into accelerating what we have come to know as “Web 2.0”, because it locks certain variables down: software running on a Web browser in a large monitor with a broadband connection. It must work on Mac, PCs and Linux. And just like the HTML standard accelerated the adoption of the Internet by making the killer app of the Worldwide Web, Web 2.0 will accelerate the adoption of an open source, standardized code execution platform, because it will clarify the advantages of such a vision with the common folk. The only challenge to it happening is global agreement on what it should be. Otherwise, Microsoft will always be successful in inserting enough FUD to keep people off that platform, and on something that’s commercially supported, highly tested, slick and good enough. Web 2.0 is succeeding in great part because Microsoft created the potential by building the MSXML object into Web browsers, and Google let the cat out of the bag with Google Maps. And now, there’s no taking it back.
Web 2.0 is to the Internet exactly the same as what HTML and the Worldwide Web were to the Internet–not the end unto itself, but rather a killer app that has probably about a decade of life in it before technology changes so completely that the issues become moot.