In 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 E4 belongs on Web 2.0.
This is a good question. What is the right way to go, both politically and technically?
The way I look at it, the following forces are shaping the industry's solution to this problem:
- Low-touch deployment model. Web pages load fast into the browser. Hot-deploy changes to the server and clients automatically pick them up.
- 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.
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.
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 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.
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.)
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).
- 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.
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? Is this a hopeless cause?
Some commenters on my bliki feel strongly that a brand new RCP universal web client is the right approach.
What do you think?