JavaOne 2009 is Dead. Long Live JavaOne.Next
Consequently I admit that my time was spent on preparation for my own talks, meeting community leaders and networking. If you are looking for in-depth reviews of technical session then you probably have to view that else where. By the time you get this report no doubt you will already have got decent technical coverage. Let keep on pushing along.
Community One West
At Community One West, the three talks, which I did manage to see, on this day (except my own) were Groovy Update on 1.6 and Test Your Product on Multiple Machines with Hudson. CommunityOne is the free day before the JavaOne, which also hosted at Mscone Center. It is designed at free and open source talks.
S304219: What's New in Groovy 1.6? : Guillaume Laforge
Groovy has moved along significantly since its 1.0 debut. There are an awful lot of nice features in this latest version, including multiple assignment. At the JAVAWUG earlier this year we were lucky enough to get Graeme Rocher, also of SpringSource, to present twice. So it was a chance to see his fellow comrade-in-arms step up to the pondium.
As for the 1.6 version of Groovy, this Laforge reported great performance improvements. And this in even before byte code invoke-dynamic appears in JDK 7. There was the multiple assignment operations, which permits function to return multiple objects at once. In the C++ and Java worlds, you would have to a Pair class or arbitary List collection to do this. In Groovy this is very usual feature, at least in the Python world, makes into the language. Moreover, Groovy 1.6 now has new annotation @Immutable, causes an Groovy or Java object to become immutable at the touch of a keyboard. There is also a @Singleton annotation to denote that a class is a Singleton. (At the conference, I heard that there was some objection to this annotation as it conflicts with the EJB 3.1 annotation of the same name. Hmmm)
In any case, these annotation are provided by something called Abstract Syntax Tree Transformation. You can also define annotation in pure Groovy in 1.6. AST is a way of extending the Groovy language in order to support Domain Specific Language.
Laforge also showed some examples where Groovy can emulate expression-based language like JavaFX and Scala, where a function can have an optional return statement. Groovy is moving to proper OSGi support with new builder patterns for Swing (and Griffon). There is also a brand new dependency and package management project Grape. In short the pun deliberately intended is that you can @Grab an artifact dynamically for a running application from an external module system. Don't be slow now! Jokes aside, La forge highlighted the power of this approach with an example of a Jetty server pulling modules it needs as it required them.
In my opinion, this is very strong trend in this Groovy release in the way that it forging (no pun in intended) a complete separate identity away from Java itself. In fact, it's leading proponents, Andres Almiray, a French Groovy / Griffon developer, consider themselves to be part of an underground movement. I will have more to say on this later in part 2 as this touches on the politics around the NetBeans Platform. In any case Groovy has lot of features to entice the developer full time, not just a glue-code or systems administrator's toolbox language.
S304065: Test Your Product on Multiple Machines in Parallel with Hudson: Lukas HasikKohsuke is already famous for creating the Hudson continuous integration. Incidentally, he is a very nice fellow personally. We had an all too brief chat about Hudson in the Pavillion during the week. So I was pleased to see that Hudson now can support distributed builds.
They chose Hudson, because it's a widely used tool extensible with plug-ins. The basic idea was to use Hudson as "master-slave" architecture, where you simply set up everything only on the master machine and let it distribute the work to the slave machines according to your setup. The slave machines then execute the jobs (tests, in this case) and report the results back to the master, where you can evaluate them. The plug-in for Hudson incredibly simplifies the setup of tests run on hundreds of testing machines in a user-friendly UI.
The speakers named their Hudson infrastructure and plug-in Hudson4qe. This session presents their solution of utilizing the continuous integration tool for the needs of the quality assurance department. They share their experience with deployment of Hudson4qe in the NetBeans™ IDE quality assurance department, which runs thousands of tests in many jobs daily against continual builds.
S304406: Enterprise JavaFX Update: Peter Pilgrim
For my own Community West presentation, which did over run. I felt it went well enough with a lot of demonstrations. Developer paid a lot of money to travel one and I was keenly aware that we must as speaker give value for money. This was my prime concern and I worried alot about the value I chose not to use NetBeans to avoid start up. I still feel that the demos can be improved. Some of you at the conference really did like my talk. I will more to say in another blog entry on this. Stay tuned.
Later on I went to the Java Champions and JUG Leader dinner at Harry Hanan's restaurant on Howard Street. It was pretty wild and the food was medium hot this time around.
Tuesday's Emotional Keynote, The Parting of the WaysThe great news of Tuesday key note talk, Sun General Session, was that Larry Ellison, CEO of Oracle, appeared on stage. He endorsed JavaFX and wants to see the product succeed. In fact he was quoted as wanting to "rid the world of AJAX" and "rewrite Open Office with JavaFX". We all know that Larry Ellison is more of business person rather than technical head, so it remains to be seen how much and how far the reinvention of Open Office actually goes.
It was the last time that Scott McNealy appeared on stage as Chairman of Sun Microsystems. Although Jonathan Schwarz was present, it was McNealy who formally handed over the company to Larry with a rope of naval signalling flags convienently spelling J-A-V-A instead of a bunch of house keys. Those of us who were present near the front of the stage witnessed an almost tearful McNealy, as he came down those ten steps, endure a standing ovation from the members of audience and employee, as he talked about "giving away my company". The hall was abrupt with whistles, cheers and shouts of respect, sadness and sincerity. I think all of us who were witness, who made money from Java, who were employed or contracted through Java, felt a lump in our throats for such an open and incredible informal transition of the reins of power. We are all grateful that Mr. McNealy had the courage to start a company called Sun, and then later to invest resources into Java.
During the key note, we say the first demonstration of the JavaStore and the Java Software Warehouse. The warehouse is currently only open to developers in the USA for evalutaion purposes. Sun said that they hope to release the warehouse to other countries after six months. Nandini Ramani appeared on stage for the consequence year. She showed us the JavaFX authoring tool. It has the ability to render to desktop and mobile simultaneously. The authoring tool looks very like the original Flash developer application. The JavaFX authoring has a timeline view, where component can be arranged , positioned and animated.
The first event of JavaOne 2009 was a panel discussion PAN-5348 JavaFX Technology and the Applications Ecosystem: JavaFX Technology Can Help You Make Money with Jim Weaver, Chris Danzig, Lucas Jordan, Amos Winbush, Jacqueline Chang. The billing for this event should have been all about Sun's JavaFX ISV program. Mes Chang spent far too long on the introductions for each of the panelist, and read the directives and agenda by rote from the slides. So we wasted 15 minutes of the session in the preparation. I suspect that many of the attendees wanted to hear about the individual JavaFX components who have signed the NDA to get the latest release.
On the other hand the technical session TS 5576: Introduction to the JavaFX Script Programming Language with Amy Fowler, Stuart Marks and Richard Bair was much better. It was the first chance to learn about the JavaFX 1.2 release. The session introduced the programming language style, but more importantly describe some of the new components . It was a first time to see Amy Fowler, the one person who seems to know technically how to layout components in an alignment at some rate of knots (*speed).
The afternoon kicked off with another Sun General Session, with Bob Brewin. Sun debuted the JavaFX infamous HD video ball, 12 months ago. In 2009, it announced a next generation graphics platform, or actually a rewritten scene graph and rendering stack, called Prism. Sun said that intends to bring out the Prism with the next version of JavaFX 2D/3D later this year. We are still waiting for the release of the HD video ball and accelerated graphics platform this year. I sup pose stack from metal to UI is just not ready for the public. The demo of Prism was almost like the 3D video Ball, but a sphere of static images and not movies. By clicking on the image, the actual panel magic sailed through 3D space orbiting the sphere, before returning to the same point on the sphere. It was pretty impressive to see, if you believe that the whole demonstration was JavaFX and the nascent 3D api. After the JavaFX and Prism demonstration, there were some announcements on Project Kenai and Hudson. Both these of projects were now integrated into the NetBeans IDE 6.7 through new plug-ins. Also Project Kenai being an open source software project forge, a hosting platform similar to Google Code or SourceForge, now includes and supports Hudson continuation integration. Kenai is very interesting, because it is built entirely from web services.
Mark Reinhold appeared on the Tuesday afternoon SGS, he unsurprisingly talked about JDK 7, OpenJDK and Java SE platform. In particular he talk about the new byte code introduced into the JVM, invoke dynamic. I was particularly impressed with the Project Jigsaw, the JDK modularisation effort going since Christmas last year. At Devoxx, Reinhold just talked about it, at this year's JavaOne conference, he demonstrated it with Ubuntu Jaunty Jakolope. The first that vowed was the removable of the CLASSPATH that had the crowd in "oohs and aahs". Reinhold show the JDK can be pulled from Ubuntu repository in stages and the JMOD command. He built a simple application that required the installation of the compilation, awt and swing modules. Jigsaw finally made a lot of common sense. Personally, I am not sure what the OSGi folk are harping on about. Surely OSGi does not specify how to build Debian artifacts or RedHat RPM files. OSGi does not stipulate the design of command line utility like JavaFX packager for the Java Development Kit, which I think was called JPKG or JavaPackager.
I did not stay to the end of the Tuesday afternoon general session. I went to the speakers room and then went to the second technical session by the JavaFX Team, Introduction to the JavaFX Technology Based API (Graphics and Animation), TS-5577 with Richard Bair and Stuart Marks. This was a very important technical session for me as it uncover performance hints and tips. The current scene graph has a few problems, such as rendering of text, selection of any part of the Text node can be troublesome. You cannot select currently the bounds of the text, but click through to the "O" character to the node underneath, if any. The session had some usual tips on ImageView and Image, about background loading and chosing to scale and fit with the Image class instead put that code request on an ImageView, which causes processing to occur on every repaint request. Generally this session was about the working of the scene graph.
For the final part of the day, I attended TS-5493 Getting The Most from the Designers with the JavaFX Production Suite with Martin Brehovsky and Lukas Waldmann. After this session, I still am confused on how to get from the production suite. Yes you can design in PhotoShop or Illustrator and export the graphics as FXD/FXZ file formats, but then a designer often changes his or her mind. I also think the designer and developer will be the same person for a lot of solo projects. FXD might not be the way to go. I think that I would need to see this technical session again to understand the value.
So my Tuesday was done, pretty early. I was in the Pavillion, chatting to developers or working on my presentation in the speaker's room. All I do remember was going out to a dinner and then coming back for JavaPosse BOF at 9:30.
In and around the pavilion or around the Java.net area, I bumped into Jim Weaver. He told me that he had bought a JavaFX mobile phone, I ran off a lunch time to buy a HTC Touch Diamond with JavaFX 1.2 for Mobile, which Sun manually installed for developers. Sun plan to allow developers and early adopter to update the firmware soon. The phone is rubbish compared to the iPhone, but hey hmm. It cost 219 USD at the show. I am just glad that finally there a JavaFX mobile physical device to play with, develop for and test with. Congratulations Sun on that score. Finally, I met up Greg Deonch, Pearson Publishing and long time author and fellow Brit, Kim Topley to talk about his latest upcoming book JavaFX Developer's Guide.
WednesdayWith a late morning from the party with the JavaPosse, at the Katey O'Briens, after their BOF special. I woke up and headed straight for another JavaFX technical sessioon: TS-5575 Extreme GUI Makeover (Hybrid Swing and JavaFX Technology) with the JavaFX UI Team Amy Fowler, Richard Bair and Jasper Potts. They were sporting very nice Caspian Blue tee-shirts (Hey lads and laddettes sent me a copy). The presentation was very nice. Fowler demonstrated an application with an animated Tree View component that she wrote. She said that it used a combination HBox, VBox and ImageView. The guys described the operation of a Mail RIA application. It was a show case for the new components in JavaFX 1.2. Of course, the team demonstrated the fabulous graphing and chart components in the API too. Overall it was a nice study in to the type of tricks with say the InnerShadow effect and ShapeSubstract types, which developer can apply to their JavaFX application to make them appear richer and, I should say, sexier. There is only one hottie on that team and I think you lads know exactly that. Incidentally, Jasper Potts has a dual role, as well being a JavaFX developer, he actually created the Nimbus look and feel for Swing.
After a very strong white coffee, I made my way to TS-4466 Rich Media Applications and Interactive Content, and Chet Haase and Romain Guy. These two are the original Filthy Rich Client duet, so they have left the Java stage for other languages and platforms, but they still have an inimitable style about them. Their idea was to present twelve rules of animation, inspired from Disney illustrators and animators, from the classic book "The Illusion of Lide: Disney Animation Book". It was pretty thought provoking stuff. I especially like the bouncing and shearing of a button to really highlight illusion of movement, which is an example of Squash and Stretch. Chet showed his stuff, using SWF files, of course! At least they launched quickly on the screen. Sigh. I think I still have to learn to short cut all of my demonstration.
After an all too short lunch, walk around the pavillion, then it was on to hear something about OSGi at this conference. I only have a passing interesting in modularity in my real everyday work. However, splitting up the Java Platform, is fundamental to reducing the download and the payload of a Java Runtime Environment to a pristine and clean machine. So it is very important for YOU and me going forward. Peter Kriens and B.J. Hargraves provided the technical session simply titled Upgrading OSGi. From the message, I gathered that OSGi currently does not support annotations, has older API, and requiring thunking to bridge the gap between some of the new and old API. I think Hargraves said that this applies mostly to embedded devices out there. They was some talk about JSR 294 and the demise of JSR 277, and how OSGi fits within the JDK 7. It is clear Peter Kriens, believes that the module system will be broken as there will be mutliple module systems available with no standard that governs them. I still think that the Jigsaw Project is good idea, especially the Ubuntu demo (see above) which actually the real practical benefits. The idea of CLASSPATH less Java is very compelling and if Jigsaw brings that to the party then I am all for it. It means that I can give the system administrator, here is JAR, or even better here is Debian package. Take it and install on the target Linux server. Bingo!
I had the choice of two technical session, Concurrency Gotchas and TS 5214 Java Persistence API 2.0 with Linda De Michel. I decided on the later, because the former was maxed out. Admittedly, I was late. For DeMichel party, I think I was mostly interested in the Criteria API. The story is that the expert group have almost finalised it. The other bits on the API are the ability to create map types with improvement associations. There is whole lot more. Hibernate 3 already has these features and for my money is still the framework to use, but if you can use the standard now then roll with it.
The last session of the Wednesday was TS-4861 Pro JavaFX Platform: RIA Enterprise Application Development with JavaFX Technology with Stephen Chin and Jim Weaver. This was a very good session with the authors of another up and coming book on JavaFX. Stephen Chin, the creator of WidgetFX had some hints on unit testing code with the JFXtras library and described how to communicate with the server cloud using the data pull parser API. I thought the talk was pretty good and there was a lot of content.
For dinner, I had no plans and saw Joe Nuxoll was tweeting about a football (soccer) match between USA and Costa Rica. He was at chieftain, I went down discover he was there with Dick Wall and Karl Quinn. The USA were getting out play by the central American. I joined for dinner slightly late as the Posse had already order. Dick and Karl left for a BOF, I stayed on for longer with Joe watch the third girl go in against the USA. I finished a burger and beer, left for the Griffon in Depth BOF. I had no idea at all, what Griffon was until this BOF. It is actually does for Swing, what Grails does for web development. It is a totally a convention-over-configuration framework and environment for Swing Groovy developers. I thought this was an awesome. As I mentioned above James Williams and Danno Ferrin, consider themselves, rightly or wrongly, to be underground guerilla movement in the Java eco-system. This is actual proof that developing on a JVM with another language is different feel and predicament to normal Java. Each community now exists self contained in this new world order. Oracle will have to watch, participate and understand the individual nuances. We also need as a community to be aware that one language is no longer everything to everybody. It is good time. Griffon like Grails performs the runtime handling of request from the Swing event into the actions that map to calls to the database. Griffon also has testability and profile environment like Grails. It is a very interesting solution to a Swing development problem. I think it is a restricted Rich Client Platform as it rely on the Java 2D and Java Swing stack at the moment, in comparison with JavaFX and its profile. The JavaFX code could ported to the mobile profile and run on a phone now. Griffon does (yet) not support that option.