Devoxx 2010 - Conference Day One - Review
This is it, the official conference has started, lots of talks lots of action so let me begin.
Session1: Keynote
Stephan Janssen, the conference leader and beJUG leader opened the keynote with some statistics regarding this year's Devoxx. 3000 attendees, 150 speakers, a Wi-Fi infrastructure that is able to support most of the people (developers) (that is really impressive) ah yes and lots of food!
Stephan demo-ed some existing Devoxx conference schedule application for various platforms iphone, android, html5 version even a command line in Scala! I have to point here that these small apps (there 2 for the iphone) have proven extremely useful all over the conference days. Finally, he showed samples of the parleys.com clients for the android platform and ipad. That was really impressive from his android phone he could stream talks and then remotely control the application at his mac! I wish they release such a client for the iPhone as well - soon enough. You will find the Android version which is open source - here.
Then it Mark Reinhold - Chief Java Architect for Oracle - came on stage. His talk was about the past the present and future of Java and the JDK. Eventually there was lots of anticipation for this talk since - the java community is expecting from the new Java 'owner_ to step up with a plan on future releases. Eventually Mark Reinhold, despite the fact that iterated over things that have already been elaborated in previous years (actually his talk last year here), presented indeed a quite concrete estimate for the upcoming Java 7 and 8 version. The plan will be found here. During the summer we will be expecting the version final version of JDK 7 with main features, Project Coin, Invoke Dynamic, and fork join framework (plus other stuff) as listed in the link of the plan. More major changes like project Jingsaw Lamda project will be included in JDK8 .but that seems quite ahead, and some of them (apis / specs) are subject to change.
Despite the fact that there is a lot of fuzz regarding stuff like closures or how Java is evolving - copying some Scala ideas ( this is not bad per-Se) - I am interested on changes that are about to happen soon enough and are going to help developer's productivity. Project coin is the main thing to talk about for me - and simple stuff from the new switch statement to multi-catch with precise re-throw or new generics' syntax elimination the duplication of type writing on the right side of the object declaration are going quite a help for everyday coding.
The keynote ended with a talk from by Dion Almaer and Ben Galbraith about The State of the Web. Despite the fact that - it started quite well I felt a bit bored in the end - especially with the CSS editing examples etc, anyway I am not a big fun of these technologies so .maybe I am biased.
Session 2: Reflection Madness by Dr. Heinz Kabutz
Heinz is one of the favorite java rock starts for every java developer - it was no surprise that the room was more than full - I would say packed. Heinz talked about weird and tricky hacks you can do on present and past implementations of the JVM using the Reflection API. Really impressive stuff that when coded could create havoc in a system or can provide dynamic and flexible solutions on hard problems. It depends on how you view things. Excellent talk, very nice examples and lots of enthusiasm from the attendees. Heinz was kind enough to upload his slides right away after the talk - so you will find them here.
Session 3: Hacking Infinispan: the new open source data grid meets NoSQL by Manik Surtani
it's been a year that I have attended a similar session from Manik around his latest child Infinispan, an open source data grid (distributed cache). The technology seems more mature, under rapid development and is evolving to areas like the NoSQL field. Definitely one of the project that is in my to check and evaluate list. Infinispan can operate in an embedded mode (inside - along with your container) or a standalone mode - communicating over the network with potential client applications - of any kind (not only Java). It seems the perfect fit for those already working with JBossCache, but it's grid nature makes it something more than a simple cache. Excellent talk with very good material - related to a technology that is maturing as the time goes by.
Session 4: Performance anxiety by J.Bloch ( joshbloch@twitter)
The talk of the day. Joshua Bloch is the Java Architect of Google, famous for his contributions on the JDK and Java lang spec and books like Effective Java. His session was more than packed - people have been standing everywhere just to listen to his talk. Eventually Stephan responded quickly when twit's from the audience started complaining by not getting any seat - so this talk will be the FIRST free talk to be published on parleys.com in a few days. Well done Stephan!
The talk was about how complexity in today's systems affects performance in a way that some times we can not predict. Bloch stated that the modern CPUs of our days - are making things sometimes non deterministic and the very same code that could be performing for a period at certain levels could alter its performance state on another occasion due to many factors. As he noted we should benchmark as much as possible but at the same time _Benchmarking is difficult, avoid traps and pitfalls'. He mentioned a benchmarking framework developed at Google - Caliper. It was an excellent talk - I have not seen any bad talk by this guy anyway for some many years. I really liked some hints provided like difference in performance of && and & operator. According to Bloch && is slower (in certain occasions) comparing to &. At the end of the talk I was lucky enough to make him sign the latest version of Effective Java which I had bought an hour ago from the Devoxx bookstore. Very proud - book owner see here.
Session 5: HTML5 Websockets: A New World of Limitless, Live, and Wickedly Cool Web Applications by Jonas Jacobi
That was my last session of the day - I tried to attend some BOF's later, but the rooms were packed- really!. WebSockets is part of the HTML5 specification. Still quite blurry on what is actually going to end up - or look like - but there are already implementations from company like Kazzing. So what is actually websockets in plain words? Eventually a dynamic full ** duplex** communication channel over HTTP ports enabling clients to pull or push data to servers by passing the stateless model of the HTTP - Web. Really I find the idea logical and nice - especially in the ear of RIA where applications want to provide a user experience closer to the desktop and the need for interactive data flow - decoupled from stateless and long running http requests. What I don't like or may I say - is putting me away from my comfort zone of how we built up until now web applications is that - giving such a power to the client (there were examples where within the browser using JavaScript we could create a web socket channel and start communicating with the other end) - we really go back on where the logic will be - the client become again fat (the need to consume data - models much faster and with a more flexible way) and it is like we going back to the old pure client - server model. I don't know maybe I am over reacting. What I want to say is that I believe websockets is a nice idea - we have the means to support it technically, but the spec should limit or may I say control the use cases where they can be used.
So that is all for today, tomorrow is an interesting day as well. Thank you for your time. I managed to collect some more T-shirts .by far the coolest one was this from jetbrains.