> Only took them 10 years then? I guess dropping by the > Swing developers booth every year at JavaOne is beginning > to have an impact? Not particularly quick on the uptake > I'd say.
As I said, Sun's focus has been on server side programming because all of the "webpage is the UI" people have pushed for developments of serverside tools instead of client side. The market has been large. There are perhaps 10,000 to 100,000 server side customers, worldwide. There are more than 100,000,000 client side customers. I think Sun realizes this, finally.
> Generally, I find lines drawn at oblique angles to be > clumsily pixellated. Some stuff gets anti-aliased, some > doesn't. The overall quality is sucky and I would be > embarrased to release such a thing.
I guess it depends on what you are drawing and doing. I don't tend to draw a lot of 3D graphics, using oblique lines. But, I do have a postscript render and some other graphics intensive applications that seem to create perfectly fine renderings. Anti-aliasing everywhere would be nice.
> Rendering quality is a third of the problem, speed (and I > mean both speed to launch as well as running speed) is the > other third.
I am not impressed with the size of the rt.jar. CORBA is in there, and shouldn't be. It should be in a separate jar. National Language support and many other things that dynamically initialize at JVM startup are expensive and slow things down
> The final third is really stupid default > behavior by layout managers. If I create a scrolling > list, and I don't put anything into it, the default width > is something like 2 pixels wide. OTOH, if I put something > into it, then it sizes to fit the widest thing.
Yes, this particular minimum size behavior is annoying. However, I use my packer layout (packer.dev.java.net) and always set lists to expand horizontally. Finally, I just pick a reasonable default size for the frame, and set its size to make sure the list has some horizontal size. Also, my swingutil project (swingutil.dev.java.net) has a class called PreferencesManager which you initialize with a Preferences node. You can then say pm.map("frame-name", frame) and it will preserve the last size of the frame/dialog for the user, under preferences.
> I'll shut up now.
As much negativity as your comments seem to explore, you have managed to provide substance to your arguments, so don't feel like it's a battle. I enjoy debates with substance!
As a *long-time* rich-UI bigot, I have to say, I have been impressed by Google's Ajax implementations (e.g., Gmail). They are not quite as rich as rich-client, but they are many times better than I ever dreamed web-UI would ever be.
I would be fine using Gmail full-time for personal email. It lacks certain functionality for very-intense corporate usage, as compared to fat-client Outlook, but it is stunningly close.
The other thing that perhaps makes Google's Ajax stuff sublime is the attention to detail, and wise design choices, which can greatly mitigate the functionality that is missing (e.g., the confirmation dialogs approach, as discussed on this site: http://www.artima.com/weblogs/viewpost.jsp?thread=97581).