Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

E4 and Web 2.0 - Is There a Better Way?

DZone's Guide to

E4 and Web 2.0 - Is There a Better Way?

· Java Zone
Free Resource

Get the Edge with a Professional Java IDE. 30-day free trial.

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?

Industry Forces

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.

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, we've already done this. (See also.) The Riena project at Eclipse is also working on this. This makes tons of sense within the corporate firewall because:

  1. You can control deployment of a new universal network client
  2. 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? 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?

Get the Java IDE that understands code & makes developing enjoyable. Level up your code with IntelliJ IDEA. Download the free trial.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}