There's a short DJJ article out recently quoting Steve Jobs on Java's usefulness in creating Rich-Interface Applications (RIAs).
In 1998, when Java was around release 0.9x - I spent $10K on a client project hiring someone on a contract basis (who I believed to be a good C++ programmer) to develop a backend administrative web interface using the then current servlet techniques. After about one month of development effort - I did a code review of the progress thus far - and was less than excited at what seemed to be a rat's nest of code needed to do some of the most basic types of user interface functionality. I deemed the code was un-supportable, given my client's level of technical sophistication, and their budget constraints. We threw the code away and wrote it in Cold Fusion. Never regretted that decision. It worked for the client - and we delivered on schedule...and the client was able to subsequently find local talent quite easily to continue enhancing the application.
In 2004-2005 I was leading the development efforts for a start-up in the Bellevue Washington area - for a new cutting edge commercial software product to market to the international banking and financial service market. The team was hand-picked by me. They were sharp, highly skilled, and had significant experience with Java. We adopted Java Server Faces (JSF), Hibernate, and Spring - and utilized an Open Source Java Web Server for our development and production environment. It was an interesting experience.
The product we eventually delivered was stable, strong, flexible, and had a competitive mix of feature / functionality.
However, I don't know if I would choose JSF as a technology base for such a commercial application development effort again. There seems to be just too much pain and complexity in the learning curve for developers. [Granted - we were one of the very very early adopters of the Beta release of some JSF libraries].
I don't know if I agree with the suggestion at the bottom of the article that I linked to at the top of this posting (use Flash for enterprise user interface application development?!!!] - but I might be willing to try it - given the drawbacks of other options.
You're probably wondering why I haven't mentioned ASP.NET as an option - or PHP?
Depending on a client's existing skill sets, technology policy / constraints - I might very well recommend / use either of those technologies.
In th past, I have developed applications with both of ASP and PHP - as well as some C# .NET development for user interface development. They are reliable technologies - and I feel comfortable working with any of them.
But I still believe that most software development projects expend way too much time, money, and effort hand-coding user interface details that should just be easier - at this stage of our industry's growth.
I'm always open to tring some new ideas / approaches.