The Rich Client Strikes Back
Microsoft is redefining the application interface around rich clients, and if Java does not have an answer, it faces being cut off from end users. The answer lies in matching Microsoft's richness while trumping it on security.
There is a movement afoot in the world of enterprise applications toward "rich clients," reversing the past few years' trend that abandoned client/server in favor of Web-based interfaces. One of the most vocal champions of this is Microsoft, which would like to see a return to fat-client software bound to its Windows desktop operating system.
The customers' desire for rich clients is well founded.The deployment ease of HTML into ubiquitous browsers seemed a boon to CIOs, but as end users soon discovered, Web pages are not necessarily well suited to be interactive user interfaces. Studies have shown that poor usability has very significant economic consequences for enterprises (www.useit.com/alertbox/20021111.html). While the switch to HTML may originally have eased deployment issues for developers, users experienced decreased productivity and overall frustration with a poorer application. By contrast, rich client applications use native GUI components and are more interactive and responsive, allowing users to work faster with fewer human errors, as well as for more sustained periods. True rich client applications (unlike "rich browser" applications such as DHTML and Flash) can also integrate with the desktop environment.
Although Java had its beginnings in client-side software, it failed to take root and has now largely retreated to the server, where it has built a veritable stronghold through J2EE. However, it's a stronghold that Microsoft is determined to crack so that it can grow its server market share. Microsoft's main weapon in this siege is .NET and the attack is two-staged: first, conquer the desktop with .NET by leveraging desktop market dominance with the focus being a compelling user experience; second, leverage private synergies between the client and server parts of the .NET Framework to drive from the client back into the server room.
The first part of this campaign is underway. Microsoft is pushing its rich "smart client" model aggressively, touting high usability, desktop/Office integration, and a Java Web Start-like deployment mechanism. For many companies that tried to make Web-based front ends a standard for UI development, their users pushed back on functionality, leaving them to cast around for rich client alternatives. Java has so far failed to offer a viable rich client solution, and the danger is that these tech decision makers may turn to .NET and the allure of a native-style Windows client.
If the Java world does not offer a rich client alternative to .NET, it will be cut off from users and then corralled into a smaller and smaller sphere of influence. However, simply copying Microsoft and trying to offer a client-side programming model won't necessarily win favor. It's very hard for a technology to ever recover from a poorly received initial release, and despite the much-touted advances of previous releases I find that Swing has already been largely discredited among customers. If Java tries to simply copycat .NET, however, there will not be sufficient incentive to provide compelling differentiation for users (aside from cross-platform compatibility, which is often largely irrelevant in most enterprises).
One answer lies in changing the rules of the game. Microsoft is confounding the rich client user experience with a fat client architecture; however, these are two
independent concepts. CIOs originally ran to a thin-client model of the Web because it offered real deployment, administration, and security benefits. The Microsoft
Smart Client model has come a long way to try to address them, but still falls far short, especially with security - their perennial Achilles' heel.
Security is extremely relevant with the frequency and destructive power of malicious code attacks steadily increasing. A thin-client model is significantly more robust against viruses and hacker Trojan horses than fat- client alternatives. Microsoft's strategic dependence on a fat-client architecture means that they will likely never be able to address this problem completely, which leaves a very large opening for Java technology to offer a secure alternative to .NET. IT managers and CIOs should be reassured that Java hasn't given up on traditional client/server topologies, and we should be actively working to innovate in this area so Java developers can deliver high-end, rich client applications to their end users.
About The Author
Philip Brittan is the founder and chairman of Droplets (www.droplets.com), a developer of rich thin-client technology for corporate network applications. Previously, he founded and ran Spheresoft, a software development firm; prior to that he was lead developer and CEO of Astrogamma, a financial software firm.