In [[http://​eiswindsoftware.blogspot.com/​2008/​05/​web-20-or-are-we-going-wrong-way.html|The Web 2.0 - or are we going the wrong way?]], Tom accurately compares Web 2.0 with 3270 (and 5250) terminals of yesteryear and wonders aloud if Web 2.0 is really the right way to go technically with E4.

+

+

This is a good question. ​ What __is__ the right way to go, both politically and technically?​

+

+

===== Industry Forces =====

+

+

The way I look at it, the following forces are shaping the industry'​s solution to this problem:

* Install the client once. Desktops are very expensive to install and maintain. ​ The web browser is already on literally every desktop out there, courtesy of Microsoft and the Mozilla Foundation. ​ Adobe Flash is nearly ubiquitous too.

+

* A rich experience is preferred. ​ Google search will probably remain a Web 1.0 application. ​ But for anything much more complicated than this, the world is moving toward a richer Internet experience.

+

+

===== Technical Choices =====

+

+

Given these realities, let's list the technical means for deploying rich Internet applications and then draw some conclusions about good places to consider investing in E4.

+

+

* AJAX-based Web 2.0 applications.

+

* Flash-based applications.

+

* Java Web Start.

+

* Create a browser plugin like Flash, but that just includes OSGI, SWT, and probably a security model.

+

* Create a brand new universal network client based on Eclipse RCP.

+

+

Let's look at each of these in turn.

+

+

==== AJAX-based Web 2.0 applications ====

+

+

Tom already described the weaknesses of AJAX: It's basically a hack to turn asynchronous XML requests from a browser into a rich graphical terminal. ​ AJAX applications tend to be sluggish, as they can require round-trip network requests to anywhere in the world and rely on interpreted JavaScript operating over a DOM.

+

+

Having said this, AJAX's biggest advantage is that it is already supported everywhere the web is. AJAX is basically the least common denominator platform for rich web applications.

+

+

==== Flash-based applications ====

+

+

Flash is well-understood and fairly ubiquitous, but it is proprietary. ​ It is not as well supported on 64 bit platforms. ​ However, it has a better programming model for really rich graphics.

+

+

For example, there is no standard analog of an SWT Graphics Context in AJAX JavaScript, so something like Flash is required in order to implement generic graphics drawing over the web.

+

+

==== Java Web Start ====

+

+

Java Web Start has a reputation for being roundly hated by Java programmers. ​ I have no personal experience with it so perhaps people can elaborate in the comments.

+

+

JWS has the disadvantage that its content is not integrated into the web browsing experience. ​ It's basically a way to bootstrap a regular Java application over the web. (Again, if I'm wrong, someone please correct me in the comments.)

+

+

==== A new browser plugin like Flash, but that just includes OSGI, SWT, and probably a security model ====

+

+

This could be really cool to do. OSGI and SWT running in the browser would be very nice. With less than a 4 meg starting footprint, this could be really practical too.

+

+

The main problem here is that nobody has written it yet. Also, whoever writes it would need to have someone on staff who is **really** good at security, if this thing is to be deployed on the Wild, Wild Web (WWW). ​ ;-)

+

+

==== A brand new universal network client based on Eclipse RCP ====

+

+

At JPMorgan, [[http://​www.eclipsecon.org/​2007/​index.php?​page=sub/&​id=3842|we'​ve already done this]]. ​ ([[http://​www.eclipsezone.com/​eclipse/​forums/​t91179.html|See also]].) ​ The [[eclipseprj>​riena|Riena]] project at Eclipse is also working on this. This makes tons of sense within the corporate firewall because:

+

+

- You can control deployment of a new universal network client

+

- There normally is a well-defined security model already in place.

+

+

To be a general solution, however, someone would have to figure out the security implications of running arbitrary OSGI bundles over the Wild, Wild Web. And then the challenge would be to make such a universal network client truly universal on the Internet-- ie: deployed to every desktop.

+

+

===== Conclusion =====

+

+

Looking at the above forces and solutions, it seems to me that AJAX is an obvious platform for building out a new generation of rich Internet applications. ​ It is everywhere.

+

+

However, I agree that we we __will__ probably run into the limitations of AJAX fairly soon and want something better.

+

+

The only two possibly-viable solutions I can see above are Flash and a custom SWT Browser Plugin. ​ I'd vastly prefer the latter, but fear that the former will win, simply because it's there.

+

+

Is there any interest in the community writing a SWT-based web browser plugin?