Here are some Swing links that you might have missed during this week:

  • Bruce Eckel wonders if anyone really cares about desktop Java, and the responses are mixed. Any established technology has its shortcomings, and it would be short-sighted to assume that the same question will not be asked in five-ten years about Flex. In the meantime, those have have invested in learning Swing produce good-looking and responsive applications.
  • Karl Tauber has announced release 4.0 of the JFormDesigner tool for designing Swing user interfaces. New in this version are support for GroupLayout, FormLayout 1.2, improved conversion of IntelliJ forms and more.
  • JavaPosse has talked about multi-threading in UI toolkits, and there’s a follow-up discussion on this subject in the Google group of the show.
  • Eskil Blomfeldt reports that Qt Jambi AWT bridge has been rewritten to provide better support for window activation and whitespace around embedded components. It sounds that this project faces much the same issues as Albireo (that aims to provide the bridge between Swing and SWT). The Qt Jambi AWT bridge has still some unresolved issues with keyboard focus – something that has been addressed in Albireo.
  • Alex Ruiz has announced the first beta for release 1.0 of FEST Swing, a library that provides a fluent interface for functional Swing UI testing.
  • JavaSwing.net has a number of useful tutorials on using the JTextField and related classes, including the introduction to DocumentFilter to enforce upper limit on the number of characters, auto-conversion to upper case, number-only content and e-mail content. For more background on using regular expressions in e-mail verification see this article.
  • Clemens Eisserer has committed the first changeset for the XRender pipeline under the OpenJDK innovators’ challenge program.
  • And finally, Alexander Potochkin writes about the internal implementation of JXLayer‘s event interception on subcomponents in a non-intrusive manner using the InputContext class.

Java on the desktop

July 26th, 2008

I’ve said before that the customers don’t care about the technology. To a certain extent, this is also true about the developers, especially when it comes to choosing the “right technology” for your next big project. If your team members have considerable experience with a specific technology, you’re much better off going with that instead of trying to learn the newest shiniest framework and making all the beginners’ mistakes (on the other hand, it never hurts to keep your eyes and mind open).

The case at hand – Woopra, the real-time Web tracking and analysis application. It has been called the Chuck Norris of Site Analytics and some promise that it will make you drool, and while a few reviews briefly mention that it is written in Java, nobody seems to care. And this is one of the best compliments the underlying technology can get – it is so good that you don’t even notice it. I’m not going to talk about Woopra’s features (although they are pretty nifty compared to Google Analytics). I’m just going to show a few screenshots that highlight the attention to visual details and the level of customization made possible in Swing. The live application feels great, with subtle animations, intuitive navigation and no UI freezes. Click on the thumbnails below to view the full size slideshow.

And while some ask if anyone really cares about desktop Java, others just use it to create good-looking and responsive applications.

Sleepless Nights - Getting in Shape

< Prev Next >

About three months ago i have posted an interview with Amy Fowler, one of Sun’s senior engineers working on JavaFX. In that interview i had a question that bothered me ever since the original announcement on JavaFX at last year’s JavaOne – what is its target audience? To my surprise, that question had by far the longest answer in the interview, and i still don’t have a clear answer.

Apart from an understandable wish from a for-profit company trying to break into a lucrative market, it is not immediately clear what is the problem that JavaFX is trying to solve. Before going on a slightly off-topic tangent of the well-designed applications in general, Amy says:

In terms of the general target audience, we obviously have to focus initially on meeting the needs of a specific community, which is the RIA crowd (is anyone else tired of acronyms?). They are clearly less resistant to trying something new, especially when it speeds up development and is built on Java, which has always been about the internet.

Implying that RIA developers are waiting en-masse to try JavaFX as soon as it hits the web just because it is built on Java doesn’t really sound realistic. Outside the “walled garden” of internal development, Java has little weight of excitement as far as the web-based client-facing technologies go. As the recent Sun alumni John O’Conner is finding out, business shops already have an established, proven and ubiquituous alternative solution – Flex and Flash:

I’m learning that web application software teams love Java, but they tend to relegate it to the backend, business logic space. Rich client apps? No way. How about Java Web Start? No need. So, how about just a little, teeny, tiny applet then? Get outta here. Flash, flex, swf files…sure, but no Java on the front end. This particular team won’t even consider Java there. I can’t even begin to argue against Flash at this point.

This brings me back to the topic at hand – what is JavaFX trying to solve? Is it the “boring” internal applications? These are highly unlikely to be rewritten, even if they are written in Swing. The “sexy” flashy browser-embedded content? Adobe has hordes of highly trained designers and developers backed by the extensive tooling and continuous improvements to the platform (including hardware accelerated shaders in Flash 10).

Modularized kernel, applets that can be dragged to the desktop, embedding code samples in the docs, binding and animations built into the language – these are just a few features of JavaFX and 6u10. The word “innovation” pops up in quite a few blogs and articles on JavaFX, and it is a very dangerous word that can easily distract from the end goal – addressing the real world problems. As Scott Berkun writes,

One telling anecdote in my research into innovation history is this striking observation: inventors, creators, and leaders, the people who earned fame for the work other people call innovative rarely used that word themselves. Instead their vocabularies leaned heavily on words like problem, experiment, solve, exploration, change, risk and prototype. Powerful words. Words that are either verbs, or imply a set of actions. And more to the point, they care less about being innovative than they do about making things. Making good things. Forget creating a breakthrough: it’s hard enough to make a really good thing that people will love to use. Most markets are in desperate need of affordable, high quality goods that live up to half the promises their advertising make for them.

The first SDK drop should be out by the end of this month. I hope that “by invitation only” from the (still) horrible javafx.com is just a cheap marketing trick, and we will be able to download it freely without registration of any kind. I hope that we are going to see real applications from real companies. One of these might come from MaldenLabs, as hinted by its CTO in the same exact comment here and here:

We are developing a very large scale enterprise application that will utilize JavaFX. Obviously we considered Flash/Flex and Silverlight, but in the end “bet the farm” and chose JavaFX. We have been pleasantly surprised with the advancement of the language and the unbelievable support and commitment we’ve received from Sun. All I can say is that people are going to be ~very~ surprised.

I also hope that these words would be backed up by replacing the Flash content on that site with a JavaFX-based applet. And finally, I hope that the end product will justify all the time not spent working on Swing.

In the grand scheme of things, it all doesn’t matter. Technologies die, new technologies are born, people move to other companies, old prejudices refuse to die and some decisions are forced on technical people. The customers, of course, couldn’t care less about all this.