Creator of Galileo RIA Framework (www.galileo-riaf.com). Marvin has posted 2 posts at DZone. View Full User Profile

Can the Java Plug-in Compete?

10.29.2008
| 11639 views |
  • submit to reddit

Why hasn't Java become the dominant technology in RIA development?
I'm not the first person to ask this question, nor will I be the last. It is unbelievable to me that the company that invented the RIA over a decade ago has made little or no progress in this field and presents absolutely no challenge to inferior technologies that came later. JavaScript was named "Java" script deceptively to give it better visibility in the marketplace, but given its dominance in the RIA market, you'd never believe it.

I have been developing software for over 25 years now with the majority of  my experience in C++ development and object-oriented analysis and design. Wanting to move into the web market, I started doing RIA development a few years ago. I was horrified by the development options available to me and the seemingly infinite amount of hoops I had to jump through to get even the simplest application functionality implemented and working correctly. I had  been using Java to do backend work and had really come to like it. To me, the ideal situation would be to use Java to do the client-side work as well as the server-side work. Not only would I be using a real OO programming language, I'd also be using a single technology across the board. The problem was that there really was no nice client-side Java solution available. Swing was just too cumbersome and inflexible and other products had similar drawbacks. What I really wanted was a client-side solution that was as easy to use and just as flexible as HTML/CSS for building a UI, but provided the dynamic and robust programming features of Java. So I quit my full-time job about 18 months ago and started designing a Java-based RIA product called the Galileo RIA Framework (http://www.galileo-riaf.com/).

One of the many frustrations that I had experienced working with JavaScript was the problem of inconsistent appearance and behavior on different browsers; therefore, when I started designing Galileo one of its primary requirements was that it be able to run on all major browsers on all major platforms and produce a consistent looking UI. Knowing the history of the Java Plug-in, I wasn't sure if it would meet this requirement. Much to my relief, it turned out that the latest Java plug-in (1.5 at the time) worked fine with all the latest and greatest browsers (IE, Firefox, Netscape, Opera, Safari, and Camino) on all of my test machines which included Windows XP and Vista, Mac OS-X, and a few Linux distros. This was great. I figured now all I had to do was focus on developing the actual UI framework and I would have the product I had been longing for and a product that the Java community would be excited about.

I recently released Galileo as a Beta and while many developers who have looked at the product have admitted that it is an impressive product and that they'd like it to gain much success, they are reluctant to use it because it depends on the Java Plug-in. This has been a major disappointment to say the least. I knew that applets had developed a stigma over the years, but I didn't realize how pronounced the distaste for the plug-in had become.

The negativity and skepticism within the Java community itself is so overwhelming that any hope for wide acceptance of the plug-in seems impossible. The funny thing is that all the developers I have talked with would like the plug-in to become widely accepted, but in order for it to become widely accepted, it would have to be used, however, most website developers are hesitant to use it, because, well, it's not widely accepted.

I want to change this. Not only because the success of my product depends on it, but because I would like more job opportunities to be available to me as a Java programmer as the RIA market continues to grow.

Why did the Java Plug-in fail in the first place?


My guess is that there were several major reasons for the failure of the Java Plug-in. One, applets and the plug-in were introduced at a time when most users were limited to dial-up access to the internet. Downloading the plug-in and the applets that used it took too long for a normal user's patience. Two, a Swing UI compared to an HTML website designed by a graphics artist looked terrible. Three, platform and browser compatibility may have been an issue also, but not being involved in Java development back then, I don't know if that was an issue or not. Four, it has been said that installation of the Plug-in was not straightforward and could have been difficult for non-developers. Five, the web was still pretty new itself . The concept of the RIA didn't exist; therefore, there wasn't any pressure for websites to be anymore than straight HTML. Adding technology that complicated implementation, limited potential visitors, and looked bad, just didn't make any sense.

Can the Java Plug-in compete now?

I'm optimistic it can for several reasons. One, according to the latest statistics I've read, 86% of U.S. internet users now use broadband. Download times for JAR files and other resources have become negligible.
Two, Sun has finally decided to rewrite the plug-in making it easier to detect, download,
install, and upgrade. Also most major browsers will prompt the user in a standard way to install the plug-in if a page that requires it is loaded.
Three, new operating systems / machines are coming with the Java plug-in already installed. I know both my Windows Vista machines from Dell did, my Mini-Mac from Apple did, and several distros of Linux install the plug-in when the OS is installed.
Four, installing a plug-in just isn't a big deal for users anymore. According to a June 2008 survey 99% of internet enabled desktops have already installed the Flash plug-in and 85% have Java installed.
Five, standard HTML websites are no longer the standard. To be competitive, websites will have to continue to evolve with RIAs being the latest evolutionary step. Where standard HTML sites with bits and pieces of
JavaScript could be developed by graphic artists and other non-developer types, RIAs, because of the complicated implementations, require software developers. Where the major driving force in the web development market used to be graphics artists and non-developer types, as the RIA market grows
software developers, many of which are Java developers, will become a greater driving force. This opens up more opportunities for Java.
And six, with a framework like Galileo which allows easily customizable UI's that can look as good as any HTML/CSS based UI, aesthetics are no longer an issue for Java UI's.

I was discussing this issue with Marty Hall of http://www.coreservlets.com/ this  week and here's what he had to say:

I would love it if a Java-based solution gained some traction in the RIA
world. I spend a lot of time doing Ajax training, and right now, Ajax is
tremendously complicated for developers. Developers have to learn xhtml,
XML, JSON, JavaScript, Prototype, 37 other JavaScript libraries, and a
server-side technology (servlets/JSP, PHP, ROR, or whatever). Even with
integrated technologies like GWT or JSON-RPC, there are still an awfully lot
of underlying technologies for a developer to master, and the interface is
still limited by what current browsers can support.

I really hope your framework catches on. It would be a good thing. You could
build apps that were so much better if you had a real programming language
and a single underlying technology.

The more compelling apps out there that get people to install Java in their
browsers the better. And the more powerful but simplified GUI frameworks
like yours, the better.

JavaRiaDev.org

I believe a window of opportunity has opened to give the Java Plug-in a rare second chance. It appears that Sun believes this too, since they have taken the initiative to redesign the plug-in and to create JavaFx. However, with no disrespect to Sun, if Java developers expect the plug-in to succeed due to Sun's efforts alone, I think they are sadly mistaken. In order for the plug-in to succeed, a concerted effort by the Java community will be necessary. For this reason I have created JavaRiaDev.org. The main initiative of this effort will be to pool developer resources to create RIAs that utilize the Java plug-in and appeal to a broad audience by coming up with new ideas for websites, copying successful website ideas and making them better, and/or trying to forge strategic partnerships with existing websites that already have a substantial user base who are looking to upgrade to RIA technology. The second initiative will be to provide the
appropriate resources to help other developers interested in Java RIA development. I, of course, will be pushing Galileo, but will welcome the use of any product that promotes the use of the Java plug-in.

There will no doubt be skeptics in the Java community who say this is a  fool's errand. But for those like me who are not content sitting on the sidelines waiting for others to decide their fate, I say join me and help me in my effort to make Java, if not the dominating, at least a viable option for RIA development. Personally I'd like to have an impact that creates the general opinion that any machine connected to the internet that isn't equipped with the Java plug-in is an inconvenience to the user. If a machine has a modern browser there's no reason for it not to have the plug-in.

I'm interested in any and all opinions. If you are interested in becoming a part of this effort, please drop me an email.

m.warble@javariadev.org

Published at DZone with permission of its author, Marvin Warble.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Dirk Lemmermann replied on Wed, 2008/10/29 - 5:15am

I totally agree with you Marvin. There really is no reason anymore why the Java plugin should not be a viable option for RIA development. In my opinion it is simply the plugin's bad reputation, which stops it from being more successful. This is very similar to another article that was posted today regarding the JDK logger:

http://java.dzone.com/articles/what-wrong-with-jdk-logger

I am primarily a JavaSE desktop application developer (http://www.dlsc.com) but had my share of short trips into the magical world of web development. I always returned frustrated. There were just too many different technologies that needed to be used in combination with each other, which often resulted in fragile, heterogenous, hard to maintain applications. On each one of these trips there was a moment where I thought how beautiful it would be if I could implement everything in one technology where I had total control over all aspects of the application execution (e.g. the environment in which it runs, the JVM).

For some reason there seems to be developers out there, who get a kick out of using as many technologies as possible. It is almost like a competition: who creates the most complicated application with the highest technology stack. The "keep it simple and straightforward" (KISS) concept has been forgotten, but I know that there are a lot of developers who would like to embrace it again. They are the ones who display an envy look when I tell them that I do most of my work in JavaSE.

--Dirk 

Rajesh Sawant replied on Wed, 2008/10/29 - 7:19am

I agree with you and with Java plugin 6 Update 10, Java on client side works really nice.

Java-based RIA produc Galileo RIA Framework (http://www.galileo-riaf.com/) is first step

and IT ROCKS !!!.I really want to see more framework like this more...

 

Keep up good work & God Bless.

 

Greg Brown replied on Wed, 2008/10/29 - 7:42am

Hi Marvin,

Congrats on your beta release. The Pivot development team recently released version 1.0 of the Pivot toolkit, which has similar objectives:

http://pivot-toolkit.org

J6u10 is a great update, but Swing and JavaFX just don't cut it. Unfortunately, it seems like non-Sun developers such as ourselves need to step up to make sure that Java remains a viable option for RIA development.

Greg

 

Arek Stryjski replied on Wed, 2008/10/29 - 9:32am

Why Java 6 u 10?

I got this massage on Ubuntu:

[quote]we recommend using Microsoft Internet Explorer temporarily to view our site. [/quote]

I don't like your joke...

It will take months till this version will be default in Linux distributions and available in standard repositories. It will take years for Mac.

I will install it but 50% of Linux users will wait, and Mac users have no other option...

Update:
So now I have it on disk I need to change symbolic links in /usr/bin/ as root... how easy is this...

 

 

Greg Brown replied on Wed, 2008/10/29 - 9:42am in response to: Arek Stryjski

Arek-

Pivot and Galileo both work well on Java 5 - in fact, Pivot was developed primarily on Mac OSX and Fedora using Java 5 and pre-update 10 Java 6. So, you don't have to upgrade to J6u10, but your user experience is likely to be much better if you do.

Greg

 

Marvin Warble replied on Wed, 2008/10/29 - 9:43am in response to: Arek Stryjski

Sorry.  That message is an oversight in our error handling. I'll make a note and fix it.

 Just to clarify.

Galileo will work fine with Firefox on Mac OS-X, however, there is an incompatibility with JRE > 1.6.1 and Firefox on Windows and Linux.  This problem was fixed with 1.6.10.  Therefore Linux and Window users must use 1.6.10 to avoid the problems encountered with this incompatibility. 

Thanks for feedback,
M. Warble

Paul Davis replied on Wed, 2008/10/29 - 11:48am

This exemplifies the problem of dealing with the java plugin. Requiring a very specific version to be used is going to further complicate things.

 For the plugin to take off, we (Java Developers) need to build apps that are able to run on many versions of the java plugin. Yes, it is a pain, I know it.

For comparisson, look at some of the stuff out there in flash. Most handle running on multiple versions of the flash player very well. Until apps are built the same way, it's going to be a long road to get the plugin to take off.

We need RIA apps that will work on not just the latest version of the Sun plugin (that's only been out a short while) but, also with IBM's plugin and IcedTea (we should embrace vendor neutrality). Apps should be able to on at least a major version behind too. We should also be good citizens and not lock up a user's browser for a minute while initializing an app. ESPECIALLY if they go through the effort to install a specific version of the java plugin from a specifc vendor.

 

FYI, the "Launch it Now" link on the demo page does nothing. I see a big java app that looks and acts like a normal html web page

Raveman Ravemanus replied on Wed, 2008/10/29 - 11:48am

I think java plugin should die, if sun wants they could intreduce something new(maybe almost the same, but with different name and grafix). I hate java plugin and when page have I am almost always scared that my other tabs will die with it. I think java plugin has really bad reputation, because of how it used to work years ago. I would rather change job than work with applets. A lot of bad memories for me and i think im not the only one. Why not just rename it and sell it as something new without all the bad memories?

Collin Fagan replied on Wed, 2008/10/29 - 11:50am in response to: Greg Brown

J6u10 is a great update, but Swing and JavaFX just don't cut it
Seriously Greg, JavaFX isn't even final yet. You want to promote your framework that's fine with me. It really could be the be all end all of frameworks. I have to say though that trashing a beta version of a technology that isn't finished doesn't help your credibility. Criticize it for being an entirely new language or late to market or having a silly name but no one can say what JavaFXScript can or can't do yet.

Greg Brown replied on Wed, 2008/10/29 - 12:08pm in response to: Collin Fagan

cfagan- 

I think you're reading a bit much into what I wrote. All I said was "JavaFX doesn't cut it".

However, to be more specific: I don't want to write RIAs using a new scripting language - I want to write them in Java. From that perspective, JavaFX pretty clearly does not cut it.

Greg

 

David Lee replied on Wed, 2008/10/29 - 2:40pm

Good Luck w/your product. It's an impressive start.  The Java plugin can compete, it's just an inferior option to flash/flex and siverlight.    I spent several years doing swing development hoping and waiting for java to get better on the client via webstart.  It did get better and is still getting better, but it's still inferior to most other RIA alternatives. 

 I use intellij about 12 hours a day 7 days a week.  It's my all time favorite java ide.  But, it's slow compared to eclipse and other native apps.  It's slow to start and the GCing gets very noticable.   It's such a great product that these problems don't deter me from using it.  Not all users are like me.  At the root of all of Java web based efforts (applets, jnlp & javafx) is the same problematic java.  The consumer jre will help and may solve the problem, but i'm not as hopeful as I used to be. 

Even w/ your product , the Galileo webpage  is not snappy.  Java is much improved, but it's not consistently fast on the client. (The only java apps, I've seen without this problem are the ones at jgoodies) It's certainly acceptable, but when you remove your love of java from the equation it's hard to side w/java as the best platform for doing RIA.  It's argubly the best on the server side, hence Flex apps w/java backends, just not on the client.

The plugin is only part of the problem.

James Selvakumar replied on Wed, 2008/10/29 - 9:12pm

Nice article. It will be really nice to see RIA apps developed in java.

I checked your product as well. It's impressive. I couldn't believe it was done in java. Congrats and wish u the very best.

Regards,

James

Mike P(Okidoky) replied on Thu, 2008/10/30 - 4:01pm in response to: Rajesh Sawant

rss10711:

http://www.galileo-riaf.com/

Gives me the following error, repeated indefinitely (scrolls on and on):

Starting Application...
Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException

Browser based Java failed again....

However, pivot-toolkit works like a train. Was this created just because the person didn't like Swing or something? Seriously, aside from some new features, Swing+third-party-look-and-feel could have competed with pivot?

 

Marvin Warble replied on Thu, 2008/10/30 - 4:10pm in response to: Mike P(Okidoky)

[quote=okidoky]

rss10711:

http://www.galileo-riaf.com/

Gives me the following error, repeated indefinitely (scrolls on and on):

Starting Application...
Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException

Browser based Java failed again....

[/quote]

Betas generally are error free.  Maybe you could tell me what platform, browser, and JRE your using so I can look into it.

Thanks,
M. Warble

 

 

Greg Brown replied on Thu, 2008/10/30 - 5:47pm in response to: Mike P(Okidoky)

pivot-toolkit works like a train

Is this good or bad? It sounds good, but I'm not sure.  :-)

aside from some new features, Swing+third-party-look-and-feel could have competed with pivot?

Are you asking what advantages Pivot offers over Swing?

 

Mike P(Okidoky) replied on Thu, 2008/10/30 - 7:18pm in response to: Marvin Warble

rss10711:

Xubuntu 8.04 with a stock 2.6.24-19-generic kernel

Firefox 3.0.3, JDK 1.6.0_10

Core Duo Dell 9400, Ati x1400

 ps. I very strongly prefer Xubuntu's (default) xfce over gnome. But i highly doubt if that is contributing. You're doing something that is considered outside the sandbox perhaps?

Mike P(Okidoky) replied on Thu, 2008/10/30 - 7:22pm in response to: Greg Brown

Works like a train - ha, It's loosely translated Dutch. It means it runs effortlessly and trouble free, like the way you'd want everything to run ;-)

Pivot looks very suave. I'd love to try it on for size on a future project. Is there a layout engine that gives me the flexibility like MigLayout? Is there a resource editor of sorts so that I can write gui interfaces without having to endlessly go back and forth between coding and testing?

Greg Brown replied on Fri, 2008/10/31 - 9:10am in response to: Mike P(Okidoky)

Works like a train - ha, It's loosely translated Dutch. It means it runs effortlessly and trouble free, like the way you'd want everything to run ;-)

Ah. That is good, then.  :-) 

Pivot looks very suave. I'd love to try it on for size on a future project. Is there a layout engine that gives me the flexibility like MigLayout?

Pivot's TablePane is pretty powerful. It is similar to an HTML table. Combined with FlowPane (similar to AWT FlowLayout, but both horizontal and vertical) you should be able to accomplish most, if not all, of your layout needs.

Is there a resource editor of sorts so that I can write gui interfaces without having to endlessly go back and forth between coding and testing?

We didn't have time to get this in for v1, but it is definitely something we are looking to add to a future release. 

 

Dave Rssbundle replied on Sat, 2008/11/01 - 2:26pm

I cannot put it in better language than Marty Hall has. So +1.

Also, why does not anyone talk of a RIA Java browser

JavaFX and Plugin have all that you need for the rendering engine, IMO.

And the speed at which unpaid volunteers are developing new browsers based on existing technology I would expect nothing short of a browser+communication program that would integrate every aspect of communication, even upto video-editing in some situations.

The case for an HTML5 and RIA Java-only browser is much stronger today than ever before, given everyone's sudden love of the clouds. If clouds it is, then give me a rock solid, highly manouverable, flexible aircraft - not a crash-prone, hacked-up, contraption. The revival of LiveConnect is not getting as much publicity as is Aptana's new server-side Javascript solution. The web2.0 boys are running away at breakneck speed while the HTML5 Java-only browser / communication suite is not even advertized well, if ever already made and shipping.

That is the going to be most important part of Java user-side software after the JVM and JRE.

Oh btw, SUN should consider talking more about "The Network is the Computer", dont you think so?

Really. I feel so.

Marvin Warble replied on Sat, 2008/11/01 - 10:38pm in response to: Mike P(Okidoky)

[quote=okidoky]

rss10711:

Xubuntu 8.04 with a stock 2.6.24-19-generic kernel

Firefox 3.0.3, JDK 1.6.0_10

Core Duo Dell 9400, Ati x1400

 ps. I very strongly prefer Xubuntu's (default) xfce over gnome. But i highly doubt if that is contributing. You're doing something that is considered outside the sandbox perhaps?

[/quote]

Mike P,

I installed Xubuntu 8.0.4 with Firefox 3.0.3.  After installing the JRE 1.6.10 and configuring the necessary symbolic link in the Firefox plugins directory, it worked fine for me.  If you do not configure the symbolic link as per the instructions on the Java installation page, you will get the behavior that you have described.  

I suggest verifying that you've configured the symbolic link.  If you don't mind let me know if this is your problem.

Thanks,
M. Warble 

 

Marvin Warble replied on Sat, 2008/11/01 - 10:59pm in response to: Paul Davis

[quote=willcode4beer]

This exemplifies the problem of dealing with the java plugin. Requiring a very specific version to be used is going to further complicate things.

 For the plugin to take off, we (Java Developers) need to build apps that are able to run on many versions of the java plugin. Yes, it is a pain, I know it.

[/quote]

I understand what you're saying, but this is slightly different.  Galileo applications will work with jre > 1.5, the problem is specifically with Firefox and the plugin.  In 1.6.2 or 1.6.3 a bug was introduced that causes a security exception when an applet tries to read a resource from the web server.  Don't quote me on this, but I think since FireFox 3 was already in Beta and it wouldn't work with any jre < 1.6.10 (live connect issues), Sun decided not to fix the bug in the old plug-in and instead fixed it in jre 1.6.10 so the new Firefox and new JRE would work fine together.  

I realize this changes nothing, but I thought I'd explain the real issue. 

[quote=willcode4beer]

FYI, the "Launch it Now" link on the demo page does nothing. I see a big java app that looks and acts like a normal html web page

[/quote]

Did the link "do nothing" or did it "launch a big java app that looks and acts like a normal HTML web page"?

If it is the later, than you should have seen a web page titled "Galileo Explorer" that does look like an HTML page, but in reality is Java.  That's the purpose of Galileo.  To be able to create Java apps that look like HTML, but are much easier to write in terms of dynamic functionality. 

 

Robert Buffone replied on Tue, 2008/11/11 - 6:16pm

Java-Plugin does compete currently.  Nexaweb provides Enterprises with an Enterprise Web Platform that uses a Java-based RIA.   Companies have successfully used Nexaweb to build very complex and mission-critical applications.  For these companies they aren't looking for just another UI tookit.  There are many of these; what companies need is a complete end-to-end solution with four components.

  • A Rich UI Toolkit that can be Styled, is Performant, Extensible and works on any JVM not just 1.5 or Update 10.  The issue that Java has always been to the notion that you need the latest version of the JVM.  For an Enterprise this is extremely costly.  If they have built ten applications that use JDK 1.4 and I tell them they need to move to Update 10 to use my product, this means that have to test and fix all ten application that are currently in maintenance. Nexaweb UI can be run in JDK 1.1 or even the Microsoft JVM with as much richness as any developed in Update 10.
  • An Internet Messaging Bus that works over top of HTTP and is Application Server friendly.  Extra servers or non-HTTP protocols means extra work. 
  • A Enterprise Data Service layer that makes connecting to any back-end data source (DB, SOAP, REST...) easy.
  • Tooling that provides developers who are a beginner or advanced with the ability to develop application quickly.

Then once you provide all of that, you have only made it half way home.  On top of the platform you need to provide two additional things:

  • A Reference Architecture that makes it easy to create many applications, bringing together Spring, iBatis, Screen Navigations, Personalization and Permissioning.
  • A Transformation solution that Enterprises can use to migrate existing legacy applications (PowerBuilder, ColdFusion, VB, Cobol...) Into the Reference Framework.


That is what Nexaweb has built over the last 8 years, it's not about the plugin, its about the stack and putting it all together allows customers to build on the great community that exists around Java.

Bob (Buffone)

Mike P(Okidoky) replied on Wed, 2008/11/12 - 12:25pm in response to: Marvin Warble

Hi Marvin, I didn't realize you went through the trouble of installing Xubuntu, and only noticed it now. The email notification system of dzone didn't tell me you directly responded to my message...

Ok, so I tried it again. Pointed my browser to that website, and same error. Same infinitely repeating error in the console:
 
 Starting Application...
 java.security.AccessControlException: access denied (java.net.SocketPermission 72.81.252.90:80 connect,resolve)
 java.lang.NullPointerException
 Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
 Starting Application...
 Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
 Starting Application...
 Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
 Starting Application...
 Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
 Starting Application...
 Ignored exception: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
 Starting Application...
 
 ...
 

 
  The way java is installed, the way I installed it, was by putting in the  firefox/plugins directory, a symbolic link to:
  libjavaplugin_oji.so -> /usr/java/jdk1.6.0_10/jre/plugin/i386/ns7/libjavaplugin_oji.so
 
  Other websites work ok with this.
 
  No abnormalities discovered with my setup so far I think.
 
  Strange?

Is there a way to run the application manually using appletviewer somehow?

 It looks like it's trying to open a socket port 80 to 72.81.252.90, which the VM thinks is not from the codebase where the applet is coming from. Could we be dealing with a simple name lookup mismatch, the browsing using a name and the applet an ip address? Perhaps in the code you can use the code base as reported by the JApplet and use it, instead of relying on it matching?...

Mike P(Okidoky) replied on Wed, 2008/11/12 - 12:29pm in response to: Marvin Warble

For kicks, I also changed my /etc/resolv.conf to localhost and installed the bind named server, so that name lookups are done using it, instead of my home router (ordinary cheapo router).

John Allen replied on Wed, 2008/11/12 - 12:34pm

I had to come back to register my impression of Galileo.  To use a (good) US idiom:  it knocked by socks off!  The architecture, the controls, especially SmartNavigation, are great.  Coming from Java desktop development, I really like the idea of doing web development in Java -- only.

Negatives:  it took a few minutes to get it running right in Firefox 3.0.3, and performance was a little slow.  But those are not major problems compared to learning (much less mastering) the bewildering number of technologies now used in web development.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.