The keynote this morning was hosted by Sony Ericsson. During the keynote, one of their developers was on stage, building a twitter client for mobiles in JavaFX. The part on the vision was probably less interesting to the audience than to the people on stage: it’s no different than the usual vision: more integration of devices to provide access and fun wherever you are. Their developer offering is about supporting the full stack of Java mobile MSA APIs, augmented with custom APIs and an application store (yet another one) where you can sell your applications to the world.
‘Extreme GUI Makeover (Hybrid Swing and JavaFX Technology)’ showed how to leverage existing Swing apps and use JavaFX to improve it. Swing is so mature and has many 3rd party libraries available, that it would be unwise to ignore it. Java itself is still (and will probably remain for the foreseeable future) very useful as the platform providing the data and threading functionality. JavaFX builds on top of existing Java libraries and allows effects to be easily created. The session rebuilds an application that was built in a previous makeover session, but that by now looked a bit dated, too. Lots of tips and hints were provided on how to create effects like rounded panels with shadowy edges, application stylesheets and animations.
With modularity being a key feature for the next Java release, I went to the session ‘Modularity in the Java Programming Language: JSR 294 and Beyond’. It clarified several things. Jigsaw is not part of the JSR, but uses the JSR. OSGi is well represented on the expert group (thus has influence, and this JSR is not a competitor to OSGi). The JSR is more generic than a single implementation, and intends to facilitate such systems, by defining concepts for dependencies, versioning and accessibility. The distinction of pure spec and implementation remains a bit vague due to all examples using Jigsaw. Dependency-wise the notion of a module path is introduced as a replacement for the classpath, which doesn’t scale. Versioning allows for changes that break existing code by having dependencies specify the version one depends on. Again, implementations decide on the way how to specify compatible versions. Accessibility introduces new keywords to specify the visibility of classes and methods.
‘Effective Java: Still Effective After All These Years’ was overly well attended, as usual. It started the same as last year with the PECS acronym, but fortunately provided some new content soon thereafter: a situation in which the compiler fails to infer the generics type, the typesafe heterogeneous container pattern, two element enums, vararg tricks, the correct use of ConcurrentHashMap and the serialization proxy pattern.
Next was a session on something a little different: ‘Programming Music for Fun and Productivity: JFugue and Log4JFugue’. It showed the complexity of the Midi library, and the simplicity of the JFugue library. I have tried Midi programming in Java once, and while producing a single or a few notes ain’t that hard, it is a lot of code. JFugue makes the translation of sheet music to a program, or creating rhythms, child’s play. It is also the foundation for the project Log4JFugue. This cool project turns log4j output to sound. The demo was absolutely fabulous. Patterns and changes in large amounts of logging output became apparent instantly.
The introduction of ‘The Ghost in the Virtual Machine: A Reference to References’ promised to make us garbage collection experts. It started with the stuff the GC cannot clean up (listeners, file handles, native memory etc) and some solutions (finally blocks, finalizers and the reference API). Obviously, the references API provides the most flexible solution. In a refreshingly high tempo with clear storyline we were taken on a tour of the various reference types, plus some of the classes of the Google collections library. The session ended with twenty minutes to spare after an example of the way a mark-and-sweep garbage collector works in relation to the different reference types. Closing the presentation, Bob Lee showed his geekiness even more by showing he generated the presentation from a Java program, in which the GC sweep graph was generated by generating a random object graph and a home-made mark-and-sweep algorithm: brilliant! :-)
After shooting some more tshirts into the audience, the afternoon keynote, ‘Mobility General Session (Part II)’, started on the reach of the Java (mobile) platform and JavaFX mobile. It showed demos of JavaFX combined with twitter, facebook etc, but also a PayPal application. I’m just not sure if I am impressed with the ‘just one week’ it took to develop that application. More typical American partnership presentations followed, before a demo was shown that takes an application from desktop, to mobile, to television. Pretty awesome!
The BOF ‘Grizzly 2.0: Monster Reloaded!’ did a good job of introducing the Grizzly project. It went over the history, components and users. The description of the new features in Grizzly 2.0 became a long list, with some useful explanations.
I choose ‘OSGi and the Enterprise Service Bus: Friend or Foe’ because the technologies do not seem to be directly related. The format of the BOF tried to get the interaction with the audience going: a panel was given statements and the question ‘truth or fiction?’, after which the audience could give their comments. Subjects discussed were modularity, versioning, service mediation etc. In the end, in my opinion, both goals were only partly successful.
The last BOF of my day was ‘Developing/Testing Accessible Java Technology-Based Applications in the NetBeans IDE’: either most people decided to go home early, or no-one is interested in accessibility, as the room was almost empty. The session went over different disabilities and tools to help overcome those. The presenters took their time to get to the description of JAAPI (the accessibility API). The demo showed how a Netbeans plugin can be used to test for accessibility issues. Another one for the list.
No Pingbacks for this post yet...
Personal blog on my interests.
|<< <||> >>|