Welcome!

Java Authors: Maureen O'Gara, Bruce Armstrong, Liz McMillan, Walter H. Pinson, III, Yakov Werde

Related Topics: Java

Java: Article

User Experience Matters

User Experience Matters

Much has been said about the limitations of HTML, coupled with the HTTP request/response model, for delivering the user interface of Web applications. These limitations revolve around the page-centric and stateless nature of the Web, HTML's limited number of user interface components and metaphors, and the absence of smart client-side data manipulation.

While it's a well-known problem, not much has been done about it. For the past few years the focus of many IT organizations has been on the back end: consolidating business and data-access logic, exposing business processes as Web services, and implementing a service oriented architecture. Similarly, many innovations in the Java APIs have been focused on the server side, around the M and the C in your MVC architecture.

Yes, frameworks that facilitate the development of the View have emerged. But the limitations of HTML are twofold: from the developer point of view, HTML-based applications are cumbersome to build (i.e., you maintain the client state - or even handle client-side events - at the server side). From the end-user point of view, HTML-based applications are cumbersome to use. Current frameworks do a great job of solving the first problem, but the end result is still an HTML-based user interface. Hence the second problem is still not solved.

This also comes at a time when people in charge of the business side of applications realize that these applications don't always deliver on the promised ROI: e-business applications' completion rates are still low, and inside the firewall internal applications' utilization rates could use a boost as well.

In general, there is an increasing sense that the back end is currently in fairly good shape, and that we are at a stage where the client side needs to catch up to allow the advances made at the server side to fully deliver on their promise.

Macromedia has been working on rich Internet applications for a long time, and while sharing a common vision for a desktop application-like user experience with other vendors, like Microsoft and their Avalon-rich client strategy, Macromedia RIAs differ on the deployment model: they are delivered to the client using the traditional lightweight, cross-operating system, and cross-browser Web deployment model. These RIAs run on the ubiquitous Flash Player platform that enables this universal deployment.

In addition to this ubiquitous virtual machine and a lightweight deployment model, developers also need a programming model that supports established methodologies and design patterns and that integrates with existing IDEs and version control systems. To address this requirement, Macromedia recently released Flex, a platform that enables enterprise developers to build rich Internet applications using a familiar programming model. The Flex programming model builds on the strengths of two popular development paradigms: markup languages and traditional object-oriented programming languages. Use the Flex XML markup language (MXML), much like HTML, to declaratively lay out the user interface of your application. MXML includes a much richer set of tags than HTML and allows you to create your own components. The first time the MXML application is requested, it's compiled into Flash bytecode much like a JSP is compiled into a servlet. The major difference is that the generated bytecode (the View) is executed at the client side by Flash Player, providing the users with a much more engaging experience than traditional HTML-based applications.

Building rich Internet applications is often a liberating experience: the limitations of HTML disappear, and it's hard not to get excited by the new possibilities and opportunities. You can finally build real applications for the client tier. These applications are stateful, and are neither cluttered with page refreshes nor limited to a handful of user interface controls. They can expose rich user interface metaphors such as drag and drop, support smart client-side data manipulation, and even access a local data storage area to work in an occasionally connected environment. But most important, they integrate naturally with your existing middle tier business logic and frameworks.

More Stories By Christophe Coenraets

Christophe Coenraets currently works as a Senior Technical Evangelist at Adobe. Before joining Adobe, Christophe was an evangelist at Macromedia, focusing on Rich Internet Applications and Enterprise integration. Prior to Macromedia, Christophe was the head of Java and J2EE Technical Evangelism at Sybase, where he started working on Java Enterprise projects in 1996. Before joining Sybase in the US, Christophe held different positions at Powersoft in Belgium, including Principal Consultant for PowerBuilder, and Manager of the Professional Services organization. Before joining Powersoft, Christophe worked as a developer and architect on several retail and BPM projects. Christophe has been a regular speaker at conferences worldwide for the last 10 years.

Comments (19) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Robert Wilson 08/02/04 09:06:36 AM EDT

Coldfusion and flex together would be a great combination, Spend your time wisely, the less time it take to do somthing the more money you can make or save, your choice, spend all day with a java app or just a few minutes writing a CF app, and with a flex front end you get the best of both worlds

Glenn W 07/29/04 03:23:45 PM EDT

Macromedia applets.

yg 07/21/04 04:32:28 PM EDT

Another rich UI framework that exists and for free is Gecko from Mozilla.org - Any browser based on this engine (such as Mozilla borwser, Firebird) can execute rich UI written in XML and JavaScript, with capabilities as rich widgets, DnD, SOAP calls, UI packing and flow control, XML datasources for widget content and much more.
Applications can be served over HTTP and generated dynamically using JSPs (thin client model), or installed locally on the client desktop (thick client model).
The technology is built over existing web standards. Examples - ability to style all widgets using CSS stylesheets, ability to embed HTML anywhere.

Ed Tijaplak 07/20/04 05:46:20 PM EDT

I had a very similar reaction to some of your readers above. This article reads purely like an advert for Macromedia. Definitely not appropriate in a publication like JDJ. What happened to objectivity?

Peter S 07/20/04 01:24:36 PM EDT

Interestingly there is a Java RIA solution that as far as I know was commercially available long before Macromedia claimed to have invented this space :)

We are using a great product called AltioLive from Altio that is a Pure Java solution (client and server) for building rich thin clients.

We have built real-time trading applications in it for our bank that perform as well as our older hand-built client/server applications but run on our trader''s desktop in a browser.

The user interface is defined through declarative XML using their great IDE but you can also add your own Java AWT or SWING classes if you want for client side logic or widgets of your own.

You can even download it from their website altio.com

My apologies if this sounds like an advert for them, but I thought it fair to balance out this MACR biased article.

Also, if you do want a Flash plugin based solution you could check out Laszlo Systems that has some cool apps which run in the v5 of the Flash plugin as opposed to Flex which runs only on the latest plugin which I heard is in less than 15% of all browsers.

PS

Peter Ent 07/20/04 11:36:06 AM EDT

Being both a Java and Flex developer, I really see how Flex benefits the Java communitiy. I''ve always felt that JSP was just a temporary solution. I''ve developed applets (too big, very awkward, limiting) and deployed Java/Swing apps using Java Web Start (too big, very awkward, limiting). Having the ability to easily (and I mean, easily) develop UIs with MXML really quickens the development cycle while giving users cross-platform, robust, and interesting applications. Plus you can begin to think outside the box and integrate video, streaming real-time data, and other things you cannot do, or cannot easily do, with HTML or applets.

Flex really allows the serious Java developer the freedom on the server-side to build expansive, rich, and noteworthly applications while giving the UI designer the freedom to put forth a UI that is really rich.

In my opinion, it is the best of both worlds - for the Java server and UI developers.

Lissa Klein 07/20/04 11:28:34 AM EDT

Advertisement --- no real information, no examples no comparisons, no disadvantages!

Scott 07/20/04 10:20:03 AM EDT

Articles like this one are the reason I''ve decided to quit receiving JDJ. I have no problem with the author or his article per se. He is an Evangelist for Macromedia - preparding this kind of piece is his job. It read just like an executive summary or white paper one would get from Macromedia''s web site describing it''s product and why it should be purchased - in fact, it probably is one. My problem is with it being published by JDJ. This is simply an advertisement for one product - should have been relegated to the back in the adverts section. If JDJ wants to tackle the shortfalls of the current browser based user experience, which are quite real, then they should be presenting information more relevant to the developer audience - ie. summarize the issues then present various options available and, perhaps, those being developed (very useful!). One company''s avertisement should NOT be the lead story. Lose your objectivity, lose your ability/interest in research and reporting, lose your subscribers.

Sunil Bhandari 07/20/04 10:07:57 AM EDT

XFoms is another alternative. I have spent some time exploring it using Formsplayer?s (http://www.formsplayer.com) implementation. It looks good so far.

Kirk Hutchinson 07/20/04 09:07:19 AM EDT

Thanks for the Macromedia advertisement mascarading as a thoughtful article. What you didn''t mention is that applets and JavaWebStart are a much better implementation of the V in MVC that has been largely overlooked when solving this issue.
If only Sun could put their emphasis on this instead of JSPs and the doomed "Creator Studio", we might actually be able to make inroads in this area.

Of course, if the browsers actually behaved according to the W3C standards, we would be much farther along as well. :-)

Eric F 07/20/04 09:04:34 AM EDT

Nice commercial for Macromedia.

DH Allingham 07/20/04 08:58:29 AM EDT

Flash is all very nice but there are two critical draw backs for wide-spread use... 1) Accessibility, coming but still not there yet. Governments must be fully accessible. 2) As a previous commenter indicated... it takes a ton of cash. If a technology can''t address both of those issues, who is going to bother spending (paying for) the time to learn and use it?

Bernard Farrell 07/20/04 08:56:22 AM EDT

Given that this article only talks about Flex, it does appear very like a Macromedia promotion.

What about XForms, Adobe Acrobat Forms, or even XAML and .NET? What about using XML with XSLT transforms to produce forms for differing display technologies?

I think the problem is that folks are focused on HTML/DHTML because it is the lowest common denominator and is reasonably standard. Perhaps the WHAT working group (whatwg.org) will succeed in specifying a new approach to web forms and actually have different vendors (including Microsoft) support that standard. Here''s hoping.

Jason Chen 07/20/04 08:36:02 AM EDT

Just copy & paste this from Flex web site.

"Flex is an enterprise server product. Pricing starts at $12,000 for a dual-CPU license."

If Macromedia wants to make some noise in this client side market, they have to make it free at first. Hook up the developers and some smaller web-hosting providers and sell the "service" to the big clients latter on. After all, that''s the best model (open source or not, free is the best for the first attempt) to attract users. When the programmer base built up due to the free-easy-to-setup-and-use Flex server (not sure if it?s really easy, it?s not free and my boss doesn?t pay me to try so why bother?), then the big enterprise will follow the lead because finding a FLEX developer will be much cheaper at that time.

I think the CEO/CTO/CFO from Macromedia needs to re-thing about their strategy.

John Hanley 07/20/04 07:55:13 AM EDT

What this article doesn''t address are those of us that work in the government sector, specifically for intelligence and defense. Flash is prohibited at all but a few DoD sites which makes it impossible to build GUIs in anything other than HTML.

J. Pulley 07/20/04 07:38:51 AM EDT

While Mr. Wombat and Mr. Pietruschka are right that this article focuses somewhat narrowly on a single solution (after all, the author does work for Macromedia), Mr. Coenraets correctly characterizes the shortcomings of existing client-side technology. He really only gets one point wrong: current server-side frameworks still do not provide an adequate basis for complex, performant, and maintainable applications. Programming with Struts is akin to writing a single-tier GUI application directly on the event queue, and the so-called Inversion of Control frameworks are childrens'' toys, best left to the script-kiddie fringe. The situation is a subset of the larger WWW problem - it''s easy to do something weak, so little that is worthwhile is ever attempted, leaving the amateurs to rule the field.

BrianFWombat 07/20/04 05:16:14 AM EDT

Shame on you JDJ this is just a blatant Macromedia advert. A more balanced approach comparing Applets, Flash/Shockwave, Client side scripting etc. would have been readable; this article is misleading.

Ulf Pietruschka 07/20/04 02:31:37 AM EDT

I just wonder, why java applets are not even mentioned. The concept of java applets solved the addressed problems right from the beginning and in the most consequent way possible, although for a higher price.
This article feeds the common misunderstanding of flash beeing superior to java applets. Still, many people think of applets as blinking text or news tickers. For those applications, flash is certainly the better choice, but when things get more complex, the situation changes: there''s nothing, you can do with flash, what you can''t do with java applets (much bigger plugin, etc, I know), but there''s a lot, you can do with java applets, what you can''t do with flash.
I would very much prefer an article comparing flash and applets and not such an advert like article like this one, pretending that flash is the first technology really addressing these issues.

M. Yousaf Taimur 07/20/04 12:33:10 AM EDT

The article is addressing the real problem that today''s web developer are facing and macromedia''s flash is realy got a valuable space in the market and accepted as de-facto standard for web-client-rich platform.

I appreciate this column.