The state of the web (apps)
May 25th, 2010 by ravi

Joe Hewitt is not without credentials. Pretty solid credentials. The man participated in Firefox development, worked at Netscape (remember Netscape?), and was the author of the Facebook application for iPhone. And that’s just some of the stuff he has done. Of importance to what follows, he quit development on the iPhone Facebook app in protest over Apple’s review policies; so he is not to be confused with the standard issue Apple fanboy blogger.

I bring him up because he has given a significant voice to what is (or at least should be!) any web developer’s lament: that HTML/CSS/JavaScript trail desktop development environments by years, perhaps decades. Thus spake he on Twitter:

I want desperately to be a web developer again, but if I have to wait until 2020 for browsers to do what Cocoa can do in 2010, I won’t wait.

and truer words haven’t been spoken (despite the sterling work of Cappucino, SproutCore, et al). Many of the simplest capabilities that have come to be familiar and necessary to the end user are as yet unavailable in web apps, nor do the most advanced toolkits provide abstractions that make implementation of sophisticated interfaces structured and pain free. The preponderance of sites that document CSS or JavaScript hacks to overcome this or that failing or lack testifies to this state of affairs.

Google, whose entire existence is, by this time, predicated on the success of the web app paradigm, has been quick to respond to Hewitt, claiming that his criticisms apply more to the web of two years ago (you know the web sans Chrome!). But it was only few days later that one of Google’s flagship products, Gmail, was outfitted with a feature that has existed on desktops for more than a decade: drag and drop file attachments to email messages.

Unfortunately for web surfing humanity, Hewitt’s youthful angst is directed not at the rush to web applications or at the purveyors of the interface products (namely browsers, extensions and toolkits), but the W3C and web standardisation “commies”. Defending the many “innovations” of Microsoft Internet Explorer at the turn of the millennium, Hewitt bemoans the persecution (“bullying”) of the anti-commie crusading innovator and underdog (Microsoft, as per Hewitt, is an underdog because IE’s share was a meagre 10% in comparison to Netscape’s 90%) by the lethargic standards bodies and the Department of Justice, and finally web developers themselves crying out for less innovation, putting at peril the future of the web.

I am not sure how much of this argument needs refutation or commentary. On the one hand, they are cobbled together from snippets of Hewitt’s thoughts (tweets) and it would be a misrepresentation of Hewitt to present them as a cohesive argument or factual record. On the other hand, many of the exaggerated terms employed by Hewitt are self-refuting: does it need pointing out that web developers call[ed] for standardisation not as a cry for lesser innovation, but as a requisite for stable development? Or that Microsoft’s unchallenged domination of the desktop endowed their free browser a tremendous advantage (not captured by initial market share numbers), long before Netscape’s hubris destroyed their product?

From the introduction of platform specific extensions on the part of Microsoft which haunt many of us today (requiring us to launch Internet Explorer, in turn often requiring launch of Windows) to the plethora of extensions implemented by many browsers while they await standardisation (e.g: the -moz, -webkit, etc CSS properties, or the browser specific JavaScript features that have ironically enough served as a means of browser identification), innovation, at least of this variety, has not been lacking. What these hacks point to is not that an interminable standardisation process is holding back progress that would get web interfaces to match what Cocoa offers today. To the contrary, they expose the weakness of a particular long-running trend in web development: namely, the reliance on hacks in lieu of robust frameworks.

Cocoa is a sophisticated user interface and development framework backed by a powerful development tool (XCode). Before Microsoft was Hewitt’s innovation leader in web technology, they pushed desktop development using languages and IDEs such as the Visual* suite. Even the much-maligned (and unfairly so) X Windows environment came with Openlook or Motif (among other options). Together, these libraries and IDEs also provided a higher-level interface and necessary abstractions that rid the developer of mundane and low-level chores. And this is where web development finds itself at disadvantage in comparison to the desktop.

A related thought: another inherent problem of web development is the problem of re-inventing the wheel (user interface) but while confined to the feature-poor sandbox of a browser (itself a special instance of a desktop application). Earlier Internet applications (for there were/are indeed such things before, and after, the browser came into existence) leveraged the rich capabilities of desktop development (innovations like Cocoa) while enjoying the benefits of networking, through the use of protocols. Standards based open protocols. It is arguable that such a model bests the web application model (and I will take a shot at that argument when time permits), but it should not be forgotten that the push to web applications, often with lesser capabilities (see above regarding Gmail), was not driven merely by the advantages of “cloud computing”, but also by the perceived benefits of a standardised UI and programming language (HTML/CSS/JavaScript) that afforded platform-independence.

»  Substance: WordPress  »  Style: Ahren Ahimsa