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.

Google Voice and Lysenkoism
May 16th, 2010 by ravi

Back at the height of the Soviet Union, the story goes, a biologist named Lysenko won the favour of über-dictator Stalin, in major part due to his notion (not original to him, see: Lamarckism) that acquired traits can be passed on genetically i.e., inherited. This scientifically unsubstantiated but emotionally appealing idea, which served the general philosophy of the Soviet Union and communism well, was declared unquestionable and academies were purged of dissenters, and so on. As most historical stories go, there are all sorts of simplifications and misrepresentations at play with this one, but nonetheless, the moral of the story is worth consideration: don’t let your ideological commitments unduly influence your research and development.

Which brings me to Google Voice, a telephony service that offers many attractive features (such as using a single number to ring at multiple locations), but one crippling weakness. The weakness is not a technical or design one, but an ideological one: Google’s commitment to the web (and web browser) as the primary, and often only, interface to its applications. The result (made worse by Apple’s self-serving rejection of Google Voice app for the iPhone) is that making a telephone call involves (in my usage pattern, YMMV):

  • Switching to the web browser
  • Opening a new tab
  • Clicking on a bookmark or entering the Google Voice URL
  • Possibly logging in, or worse:
    • Reaching a Google FAQ page because I am logged in as a different user
    • Logging out, and re-logging in as the “correct” user
    • Being returned to the FAQ page! (because that’s where I was at)
    • Returning to the Google Voice URL

  • Clicking on Contacts
  • Navigating to the right person, clicking on his or her entry
  • Selecting the right number and clicking on Call

Some of these steps can be eliminated, but I am fairly certain not enough of them can be, to get the workflow down to the simplicity of using Skype instead:

  • Switching to the Skype app
  • Double clicking a contact list entry to call the person (or right clicking and selecting “Call”)

It would take less than a week for one of Google’s highly skilled developers to whip up a native Mac App, a cross-platform AIR application, or a Dashboard widget, that would provide the same simplicity as Skype’s application does. It is not technical ability, but, I suspect, Google’s commitment to replacing the desktop and desktop OS and application environment with the browser and browser based applications that lies behind the lack of such tools.

Which returns us to the Lysenkoism analogy. It is not that Lamarckism is provably wrong and therefore a wrong route to pursue even if dictated by one’s other commitments. Rather, it was not, at the time, [anywhere near] provably right and, for that reason, the wrong basket to put all of one’s eggs in. Recently, in response to a set of tweeted criticisms (of the failings of HTML/CSS for building serious user interfaces) from celebrity developer and blogger Joe Hewitt, Google countered that such criticisms were perhaps applicable two years ago, but not any longer. A few days later, Google added (and advertised with some gusto) a feature to one of their flagship products, Gmail: drag and drop file attachment to a message. A feature that has been available in desktop applications for more than a decade (two decades, arguably).

Once again, the moral: Lamarckism, or web applications (such as Gmail or Google Voice) are not destined to failure. It is quite possible that they (web apps) are destined to succeed, given the many advantages they offer (universal access, zero user software maintenance, so on). However, if one just added drag and drop to one’s mail interface, that future is distant enough to warrant a more pluralist approach. A failure to do so is in effect a punishment of one’s [academic] biology and biotech, in the case of the Soviet Union, or one’s users, in the case of Google.

Cloudy with a chance of data loss
October 13th, 2009 by ravi

Microsoft and T-Mobile have lost T-Mobile user data:

The cellphone provider T-Mobile and Danger, a subsidiary of Microsoft and one of T-Mobile’s partners, said over the weekend that a technical glitch in their computer systems would probably result in some customers losing their personal information like contact names, phone numbers and digital photos.

via Glitch Could Erase Data for Some T-Mobile Users –

What is interesting is that there seem to have been no backups to recover from? Why not? Well, everyone from Adam Smith to Richard Stallman to Joe Stiglitz has pointed out, in their own way, the simple fact that the your interests and that of those you get/buy services from might not always coincide, and in a situation where there is a great imbalance of knowledge/expertise, your ignorance can be easily exploited. This is not a point that is particular to cloud computing, but cloud computing, when consumed as prescribed, does increase your dependency and lower your control over your data.

The solution may not be to turn Luddite and shun technology, but the recent Google/Gmail issues and all that has occurred since (Apple’s MobileMe problem, the drama surrounding, the above T-Mobile/Microsoft issue) should encourage us to think harder, especially about the trend of moving away from standards, published protocols and data formats, and especially the separation of data and presentation.

Often times, the move to cloud computing (e.g: web-based email) from older technologies designed with the above criteria (open standards, separation of data and UI) in mind, is a step backward. It should be unsurprising that even as Gmail was suffering from a prolonged outage for the web interface, the standards based and client-server IMAP interface was fully functional. For those who started using the Internet after 2000, cloud computing (under which label we might legitimately include web-based services, as per their own claims — to hesitantly quote Larry Ellison: “The interesting thing about cloud computing is that we’ve redefined cloud computing to include everything that we already do”) might be synonymous with the Internet itself (just as the term World-Wide-Web is often used interchangeably with the Internet). Online services are the only ones they may be aware of, and this serves vendors in that space quite well. They would prefer that you forget the hardware device you use, the peripherals that connect to it, the power of the operating system that enables all your activities, the idea and existence of rich, powerful desktop tools (software). Again that serves their interests. Does it always serve yours?

»  Substance: WordPress  »  Style: Ahren Ahimsa