October 9th, 2010

by Ivan St. Ivanov

So, this year’s Java2Days conference finished. The Bulgarian Java community got its JavaOne (with much smaller scale of course). We deserve this. The audience is still shy to actively participate in the presentations, some of the presenters were even shier and looked like students in front of a crowd of professors and the organizers had their small mistakes too. But as a whole at least my opinion is that the content was more important than all the small bugs!

Day two started very promising – a lot of coding and very few slides. Basically the people who were talking abstract yesterday were inside their IDE today. Arun Gupta showed one of his miles-to-go-like sessions. I must confess that I was very happy when I saw his name in the list of presenters last week. And this morning everyone watching had the same feeling. Basically everything that was just presented and slightly touched yesterday was put into play by Arun. We saw CDI, Servlets, EJBs, RESTful web services, NetBeans,.. and maybe I miss something. No ivory tower or Chinese slides. Just NetBeans, Glassfish and the developer! I hope that more and more people think now that Java and Java EE in particular is much better than the various strange combinations like RoR, PHP or some other awkward framework that promises developer heaven.

And the next session that I attended could be an answer to those of the Java haters that say that the language is too verbose. Yes, they are right, but they don’t quite realize that Java language is no the only thing that make the whole Java stack. We have the libraries and we have the Java platform (or JVM more precisely). And if you put on top languages like Scala, then everything becomes much prettier. Scala is a perfect hybrid of a statically typed, object oriented and function oriented language. It has most of the functionalities that the dynamic languages have and in the same time is type safe and has a compiler that guarantees that. The presenter Vassil Dichev proved that he is not only interested in Scala, but has very broad knowledge on what is going on in the whole industry. It was probably due to the lack of time, but I felt that the pace of the presentation was quicker than people could follow (especially when describing the language features). After the session I talked to Vasko about the Scala enthusiasm in Sofia. He agreed with me that there were not too much fans of the language and nearly zero developers using it productively. Maybe a Scala user group is a good idea for bootstrapping everything?

Next I went to the building lightweight SOA applications with Spring. It was actually all about AOP and cross cutting concerns and also a practical sequel to yesterday’s Spring Integration introduction. Oleg showed two of the areas where the Spring platform rocks and finally with nearly no effort he sent a live twitter message!

The next session I attended was one that was again very scarcely using powerpoint. Sasa Slavnic, a Serbian developer, gave us a brief inside into the Java FX development. Java FX script looked great, but unfortunately Oracle decided to discontinue its support. The reason for that is missing tool support and hard times when debugging. In this direction Sasa showed us how the same thing would look like in Swing and I must admit that it wasn’t the shortest code I’ve read in my life. The coolest thing of Java FX is that the script is used just for declaring the UI and it leaves all the business logic and persistence handling to Java. Sasa’s advice was to try to migrate most of the things we do to Java code before it is known what the replacement for Java FX script will be. The good thing is that the community is not sleeping. There was immediate fork of the Java FX script project. It even got its name – project Visage. Let’s see how it will do.

The afternoon sessions started for me with Vlado Pavlov and Dimitar Giormov’s JRuby issues and the pill for it – SAP’s Eclipse memory analyzer tool. The worst thing in debugging OutOfMemmoryError’s occurring in JRuby applications comes from the fact that the stack traces in the heap dump generated by JRuby are too hard to understand. The situation becomes even more complicated when the out-of-memory is caused after a call from JRuby to Java method. Of course the memory analyzer steps in here with its predefined and easily extensible rules for analyzing traces. It was very impressive (again). The best thing is that the tool is free and hopefully it will soon support not only analyzing heap dumps, but thread dumps as well. With the help of the community.

The room was very small for the next session. Andrew Lombardi, the Wicket guy, showed us what is new in the not yet specified HTML 5. In an even more entertaining fashion than yesterday the keen developers got their first (or for some of them not) impression on the cool features of the markup language. The browser support was one of the things that cheered up the crowd.

Peter Peshev from SAP was the next presenter that I watched. He showed his demo from JavaOne about how a big bloated Java EE application can and should be transferred to an OSGi one. We all viewed the prerequisites, potential migration paths and possible errors. Peter had a lot of jokes, which I do not believe were fine for the JavaOne audience two weeks ago. But we Bulgarians are famous for our black and sometimes rude humor. 😉

The final session Reza Rahman presented us the Java Community Process. This is basically the way how java specifications (or JSRs) are created. It is really an open process, true Java democracy in a sense. Everyone, even individual developers, is invited to participate at least as an observer. I was mostly interested in the Apache boycott of the process due to the strange ‘field of use’ issue that prevents them license their Java SE 6 implementation. And whether this boycott can hinder the release of the Java 7 SE spec (right now all the development goes under the title JDK 7, nobody talks about Java 7 due to lack of a JSR). Fortunately I got reassured by the people on board (all the present JSR Expert Group members) that this is not the issue and nobody can put a veto on releasing a specification just by a single No vote.

I will finish the Java2Days story with my final impression: the content was great, though the organization was not at last year’s merits. The small room on the first floor lacked microphones, there was not support for poor Andrew Lombardy when he tried to fix the beamer’s position and the pretty girls from the fashion agencies that were here last year were missing 😉

My biggest not-too-hard-skill impression was that the Java EE people are quite self-confident after the release of version 6 of the spec. They are very often mentioning (not with the best of their spirit) Spring in their talks. At the same time, the minds of the Spring people seemed high in the sky (probably because of the clouds that appeared there after the VMware acquisition of SpringSource). I didn’t hear that passion which Rod Johnson had when explaining that Java EE is stopping innovation. I hope that they will surprise us soon. Or maybe they are too busy to follow VMware’s strategy?

Anyway, Java2Day conference and all the speakers proved that visiting such events is at the same time helpful and entertaining. So, see you next month at Devoxx. 🙂