This is just a quick note about the WJAX Java developer conference that take place last week in Munich.
The conference program was quite balanced and beside the main stream topics about SOA (ServiceOrientedArchitektur – represented by the SOACon conference), Spring, Application Security and OSGi there was a huge number of different topics, which were addressed by several talks.
Most interesting from my point of view were following sessions:
Keynote from Jonas Jacobi: Re-architecting the Web with HTML 5 Communication.
Talk from Karsten Lentzsch: Efficient design of swing UI’s.
Talk from Angelika Langer: Java programming in the age of multicore.
Talk from Dierk Koenig: RESTful JEE with Grails.
Canoo was exhibiting on a booth, which gave the great opportunity to present and talk about our products UltraLightClient (ULC), the just released language application for the IPhone (using canoo.net), our demo for the new JavaFX platform and fancy UltraLightClient / Swing rich client applications. In addition Canoo members used the presence to keep in touch with existing costumers, contact new ones or presented the company to potential new staff members.
Canoo Online Quiz
All the visitors on the booth and all other interested software developers had and still have the possibility to join an online quiz. Its possible to win an iPod touch or one of ten ‘Groovy in Action’ books. The quiz can be found at www.canoo.com/quiz and will end at the 30.11.2008.
Dierk König, Canoo fellow and author of the ‘Groovy in Action’ book, was holding a groovy workshop and was giving a talk about RESTful JEE with Grails.
One of the many interesting talks I attended at the JavaPolis 2007 conference was the Swinging RIA talk. At the end of the talk Chet Haase announced the brand new Java Scene Graph library. Scene Graph gives you a new way to implement your visual output in Swing. It will replace the Jazz library that provides the Java2D stuff in the current JavaFX implementation. In the current release, the API is a little bit verbose but I expect this to change as the API is not final yet.
How does Scene Graph work? With Scene Graph, instead of subclassing a Swing component and providing your Java2D drawing instructions in a custom paint() method, you build up a data structure that declares your visual output, i.e old Java2D is the procedural approach to do graphics, whereas Scene Graph is the declarative approach.
How does this look in practice? In Scene Graph you amazingly build up a scene graph! Each scene graph is composed of nodes and each node represents a graphics operation, e.g.
SGText result = new SGText();
result.setText("Scene");
result.setFont(new Font("Arial", Font.BOLD, 128));
result.setAntialiasingHint(VALUE_TEXT_ANTIALIAS_ON);
result.setLocation(new Point(50, 180));
My impression is that a programmer familiar with Java2D is immediately productive with the Scene Graph library. Great! And as a bonus he gets good effect and animation support for free! Wow! I hope this is just a first step to:
Powerful effect libraries
Good animation libraries
Visual scene graph tools
Integrations into existing visual tools like PhotoShop
…
Another thing that makes building good-looking Swing applications easy! Good!
Not being able to attend the conference yesterday, I not only missed some interesting talks, but also Bruce Willis in “Die Hard 4″ ;-(
In today’s keynote, Neal Gafter of Google talked about the possibilities of closures and how they can reduce the amount of boilerplate code and increase the readability of software. In addition, by integrating closures into Java some language feature requests would change to library (API) feature requests, which have a much greater chance to become included.
Danny Coward from Sun showed the road map regarding Java SE and Java EE. He also explained how open source complements the JCP process.
Today was also filled by a lot of networking. That’s what I like about conferences, you meet new people. And people you only know by email suddenly get a face and a voice.
One of them was Kaspar von Gunten. He gave a talk about Process-based Software Development today. He showed how the process modelled approach can change the development of software towards end-user programming. And how this approach integrates with RIA. They also showed a Software Demo of their product Xpert.ivy. The new release of Xpert.ivy is based on Eclipse and a graphical process designer. In addition it uses ULC Visual Editor to generate the UI for the RIA front-end of these processes. Quite impressive. Xpert.ivy 4.0 will be shipped in 2008.
I didn’t get much out of the talk about Jackrabbit. I almost got discouraged to use Jackrabbit, being warned to be patient and reading the spec to get the information about how to use the API.
For the closing session they decided to do some lightning speaks: Everybody could speak up for 2 minutes. Neal Gafter started showing some optical illusions from the Java puzzler book. Then Felipe Gaucho presented his footprint.dev.java.net project. We were then given the elevator story of the semantic web – basically everything is replaced with URI. Then somebody told us good reasons why to attend Jazoon 2008 (reasons like Euro 08 or because the weather will be better). And then we learned what we should read to become a better Java developer:
Joe Armstrong’s thesis: Concurrency oriented languages.
Functional languages explained.
Understand your manager: One minute manager meets the monkeys.
Shell scripting (because there are so many bad shell scripts around)
After that Gregory Murray showed how to impress managers: Do rapid prototyping with Jmaki. Some other guys followed. I was actually pretty amazed how much you can say in 2 minutes.
That was about it. Thank you to all who made this event happen!
The source code contains an Eclipse project file and a build script, which allows you to build it yourself (after having adjusted the build.properties):
Currently a number of different Rich Internet Application (RIA) technologies are emerging, each with their own strengths and weaknesses. In many cases a combination of technologies can be used to meet application requirements. This session shows, based on examples, how various technologies such as AJAX, Swing and Flash can be integrated into one application.