Technology Thoughts

Wednesday, January 11, 2006

Which will be the face of Web 2.0?

(Originally published at TheBlog on January 11th, 2006)

Actually I do not like much the name of "Web 2.0" (and even less the mystification of "Web 3.0"), but it seems the only currently available.

(Me, being a Capt. Picard fan, would rather prefer something like "WebNG", but this is hopeless).

This post is to reply to the article Web 2.01, a rich internet application example from TheServerSide.com. I posted my reply there, but what do I have a tech blog for, if not for dumping these kind of things?

It is puzzling that, in the article, Java is considered as more powerful in the desktop than in the server, since reality is otherwise. Thus, either reality is wrong, or the article is in this respect.

The client-side (the "face") of Web 1.0 was the HTML browser, and in fact this was a very large percent of its success. Reviewing the alternatives for the face of Web 2.0 given in the article:
  • Java has, up to now, been an utterly failure when coming to client-side applications, and it will remain to be so, despite the swift SWT, as long as 90% of the workstations of the world do not come with a JVM preinstalled - namely, until Windows does not come with a JVM again. And since MS has bet its future on .Net, it will be hardly so.
  • One of the main points of the web, HTML, XML, web services, SOA and so on is that it must be platform agnostic, which is a sine qua non requisite for making it ubiquitous. Web 1.0 is mainly platform agnostic and Web 2.0 will also be, even more. Arguabily, .Net will never be platform agnostic, and even if there are properly emulations in non-Windows systems (including Nokia phones), lots of people will never consider it as an universal platform for running client-side applications. Thus, I'd rule out .Net too.
  • Flash is indeed a fine thing, powerful and appealing. Only, since it is proprietary, I find it difficult for it to be the "face" of Web 2.0 . Also, usually you need to pay to create Flash content (yeah, I know OpenLaszlo, but the vast majority of Flash out there is built with the Flash designer, plus a little with Flex). These two things would have to change for Flash to become this face, but also it would have to prove to be, or evolve into, a platform solid enough for professional application development. Also, given the intertia (i.e. effort, expertise, tools, etc), I find it very difficult to switch away from [X]HTML.
  • AJAX is mainly a frenzy that will pass (along with all of its usually unnamed varieties like just JAX, JSON and the resurrected RADs for web applications). But Javascript + DHTML will stay as a popular method to create RiAs because it fulfills the main requisites that any Web x.x client platform must have.

I think that the features that made the HTML browser a success were that it is:

  • Ubiquitous (which implies platform-agnostic)
  • Easy and free to create content for it (many early web sites were started just by "view source" and copy+paste on a notepad)

And for the Web 2.0 client-side platform the requisites should be also these, plus the ability to include control and presentation logic in the client side for which is very easy to discover and access web services, and I guess that a lot of more nice things. Hopefully domain logic will remain in the server, although sadly in many projects this rule will be broken.

Given the existing intertia, I would rule out that this platform would be anything else than a web browser. I am sure sure it will be an enhanced browser, but a browser anyway, and not custom, independent applications. These applications will exist, but running inside the browser. The "platform" for Web 2.0 applications will be that enhanced browser as client, running light applications quickly downloaded on demand (I hope this alone is enough to rule out applets) which access arbitrary web services, along with facilities for discovery, security, transactions, and several others. Maybe this backend could be called some "world wide SOA", but I am not sure that it is the right term.

Now, from between the two camps of dynamic typed (scripting) languages vs strongly typed languages, I rather fall in the second side, and thus I do not consider Javascript as a proper platform for creating professional, robust applications. Of course it is not that it is impossible to create them, only that the average real life development team of the average real life project will create just a mess if trying to implement a large project with Javascript. I have seen messes enough just from trying to use much Javascript in regular, server-side Java web applications, and I usually flee from it.

But indeed my guess is that Javascript+DHTML, being already a popular tool, fulfilling many requisites for success, and fully embraced both by Microsoft and all-the-rest, will be the tool of choice for creating client side applications. It will evolve so that it is able to easily discover services, connect everywhere without posing a security risk, in general to easily use all the features of that "world wide SOA"; and hopefully something will be made in order for it to become a more suitable tool for creating professional, complex applications (e.g. maybe it will be optionally brought closer to Java or .Net). Also, more powerful user interface capabilities will be provided to HTML (e.g. see The future of HTML, Part 1: WHATWG ). Maybe some sort of "compiled Javascript" will appear, to improve network performance and helping to write proprietary interfaces. Dunno. I actually would like it to be a more powerful platform closer to Java/.Net, but just imagine the fuss to make Microsoft and all-the-rest to agree on it: near to impossible.

Up to here, my thoughts about Web 2.0 . The conclusion I draw from all this is that the article, more than showing a Web 2.0 example, is illustrating just an example of a web services client. The second title sounds far less compelling, but I think it is closer to reality.

0 Comments:

Post a Comment

<< Home

Weblog Commenting and Trackback by HaloScan.com