Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by Martijn van de Rijdt at 22:14 on Tuesday 23 November    Add 'Devoxx 2010' site to delicious  Add 'Devoxx 2010' site to technorati  Add 'Devoxx 2010' site to digg  Add 'Devoxx 2010' site to dzone

Last week I was at Devoxx! There will probably be more in-depth blog posts here about some of the sessions, but for now, here’s an overview of all of the sessions I was able to attend and my own impressions.

Wednesday

Welcome and intro
Stephan Janssen

The first keynote speech by Stephan Janssen was a pretty standard word of welcome and otherwise mostly just an ad for Parleys. Then again, to be honest, Parleys does look pretty awesome.

Java SE: the road ahead
Mark Reinhold

This talk focused on what’s going to be new in Java 7, as well as some of the features we can expect in Java 8. It didn’t really introduce many new things, since I’d already heard most of this information (and seen most of the slides) at J-Fall a few weeks earlier. What was most interesting to me was hearing more about Project Jigsaw: the intention of replacing Java’s classpath with a new module-info construct, in which you can specify jar dependencies in a way that’s pretty similar to Maven’s dependency management. This should also add support for building (amongst other things) rpms directly from Java modules. Since building rpms is something we’ve had some issues with in the past this would definitely be a nice feature to have.

The state of the web
Dion Almaer and Ben Galbraith

The talk started out with a pretty interesting and entertaining history of the world wide web, and then moved into HTML 5 and other upcoming web developments. Unfortunately the talk ran a bit long and I found myself sort of zoning out, right when the speakers started getting into the gritty details of HTML 5, JavaScript etc..

Reflection madness
Heinz Kabutz

This was a really fun talk about the different awesome ways you can use reflection in Java applications. There were a bunch of code samples that were really creative ways of completely destroying a JVM, like meddling with the values of autoboxed Integers at runtime. Still, there were also some really legitimate applications, such as a very convenient way of fetching Logger instances, as well as testing how future-proof your application is by adding extra values to an enum – at runtime! – from within a JUnit test case. The speaker also mentioned the Instrumentation API, which can apparently can be used to measure object instance sizes at runtime; this sounds pretty interesting and I will probably have to play around with it a bit.

From shabby to chic
Richard Bair and Jasper Potts

This JavaFX talk had two major topics: css support and the importance of UI design in general. It was pretty nice to see that it is possible to use a single css sheet for both a website and a JavaFX applicaiton to get a consistent look and feel. On the other hand most of the examples given in the talk seemed pretty obvious, even to someone like me who hasn’t worked that much with stylesheets. What personally struck me as very interesting about the design part of the talk is that Richard Bair highly recommended reading The design of everyday things by Donald Norman. I’m pretty sure this same book was also at one point recommended by game designer David Sirlin, as well as some other UI and game designers. I have only read a few short excerpts of this book but maybe I should get a copy and read the whole thing after all.

Project Lambda: to multicore and beyond
Brian Goetz

A pretty interesting talk about the introduction of lambda expressions into the Java language, which should be a part of Java version 8. Unfortunately the same old “computing the maximum grade of all students” example was used for like the fifth time, but it did get the point across. The speaker also talked some more about the concept of interfaces with extension methods, and how they differ from abstract classes as wel as multiple inheritance in languages like C++.

Performance anxiety
Joshua Bloch

This was a really great talk about performance in modern applications. Two major points were that application performance these days is highly unpredictable, even if you run the same program with the same input multiple times, because of the enormous complexity of the entire (software and hardware) stack, and that this means you really have to measure performance instead. Still, the entire talk was really worth listening to. I heard this talk was going to be provided for free on Parleys so I can definitely recommend checking it out.

Physically attractive
Richard Bair and Jasper Potts

Richard and Jasper demoed a nifty 3D JavaFX game which tied into NVidia’s physics engine. As the talk started out I wondered “why haven’t I done more with 3D graphics again?” Then the first matrix calculation popped up onscreen and I remembered. Still, it was very impressive what JavaFX can do in 3D and how it’s a relatively straightforward modification of a standard 2D JavaFX user interface.

JavaFX BOF
Richard Bair and Jasper Potts

This was a sort of interactive session with Richard and Jasper, as well as (via Skype) the rest of the JavaFX development team. The team is working hard to provide JavaFX’s functionality as a plain Java API in JavaFX 2.0. There was a discussion about how to write JavaFX(Script)’s object literals in plain Java syntax. It was really nice to see (and be a part of) this discussion between the experts of the JavaFX team as well as people like Stephen Chin in the audience.

Thursday

The future roadmap of Java EE
Jerome Dochez, Paul Sandoz and Linda DeMichiel

I actually missed quite a bit of the start of this talk because we were talking with Red Hat’s Eric D. Schabell for a bit. I did catch the tail end of the keynote and have to say I wasn’t terribly excited by it. Honestly I’d have to say the Java EE stuff was the least exciting part of Devoxx for me.

Project Coin: small language changes in JDK 7
Joe Darcy and Maurizio Cimadamore

I must admit that I hadn’t realised the pun in the name Project Coin before this talk. Coin as a noun means small change, coin as a verb means introducing a new phrase into a language. It works because Project Coin is all about small language changes in Java. The talk went into the Project Coin language changes for JDK 7 in some detail:

  • underscores in numeric literals (so you can write 1_538_649, which is more readable than 1538649);
  • binary literals (such as 0b0111010, which will be more readable than the hex representation in case of bit masks and such);
  • switching on Strings;
  • improved varargs (fewer and less confusing compiler warnings when you’re using vararg methods);
  • the diamond operator <>;
  • try with resources.

They also went into what was involved with implementing these changes, which was pretty interesting to hear about.

Android UI development: tips, tricks, and techniques
Chet Haase and Romain Guy

The tips, tricks and techniques in this talk were mostly focused on improving your Android application’s performance; specifically, on preventing any choppiness in UI rendering. The talk was pretty good and informative, even though I’ll admit to not being all that familiar with Android development yet.

Hadoop and NoSQL at Twitter
Dmitriy Ryaboy

In this talk the speaker informed us about many of the, mostly open source or soon-to-be open sourced, different frameworks with trendy-sounding names, which are used within Twitter to process and store the massive amounts of data they handle on a daily basis. The talk was very entertaining due to the speaker’s dry sense of humour, but I kind of wish he had focused on fewer frameworks, went into a little more depth and kept the pace a bit slower. It was just too much to take in all at once.

JavaPosse Live
Dick Wall, Carl Quinn and Joe Nuxoll

I think this session was mostly aimed at people who regularly listen to the JavaPosse podcast, which unfortunately I don’t. The guys were funny so it was an entertaining hour, but it didn’t really go into much depth on any Java-related subjects.

The modular Java platform
Mark Reinhold

In this great sesssion Mark Reinhold talked about the Jigsaw project in a lot more detail than during his keynote presentation.

Java Puzzlers – scraping the bottom of the barrel
Joshua Bloch and William Pugh

Puzzlers are always fun, and Joshua Bloch really knows how to present them – even though he seemed to think they were jumping the shark by now, after having done so many puzzler talks at different Java conferences. Each of the puzzlers presented were also great cautionary tales about pitfalls in the Java language to watch out for. I was personally most surprised by the one about the – in some cases – really horrible performance of perfectly reasonable regular expressions in modern programming languages, including Java.

Friday

The Future of Java Discussion Panel
Joshua Bloch, Mark Reinhold, Stephen Colebourne, Antonio Goncalves, Juergen Hoeller and Bill Venners

A great discussion panel, where the speakers talked about questions sent in by various people. The very first discussion about backwards compatibility surprised me the most: most of the speakers thought that they should be bold and just make some backwards-incompatible changes to the language in order to clean up Java.

Pragmatic cloud computing, or, dealing with Morlocks, or, agile infrastructure
Michael Cote

This talk was the only one I walked out of (excluding the Android talk on Thursday, which I left two minutes early to avoid the bathroom lines). It was a very broad talk about the nature of cloud computing that didn’t really go into much detail.

Project Lombok: Boilerplate busters
Roel Spilker and Reinier Zwitserloot

The speakers in the very last talk of Devoxx were actually dressed up as Ghostbusters and sang an off-key version of the Ghostbusters theme song with their own lyrics swapped in. It was pretty over-the-top goofy. Lombok itself ended up looking a lot cooler than I though it would. It helps you avoid writing (or Eclipse-generating) a lot of boilerplate Java code by providing annotations instead. So for example, instead of writing getters and setters for your fields, you can just declare your private field and add @Getter and @Setter annotations. There are many more of these kinds of annotations, such as, for example, @ToString, @EqualsAndHashCode etc.. The large amount of boilerplate code has always been a problem and a frustration with Java and Lombok really seems like it can help eliminate a lot of that without sacrificing your code’s clarity. The only thing I didn’t like was the last feature they announced, where you can replace a variable’s type in its declaration and replace it with the “keyword” var, after which the compiler will infer the variable’s type from its first instantiation. Even though Lombok obviously won’t break the type safety of the Java language, this seemed like it could really obfuscate your Java code by hiding the type information you’re used to seeing in variable declarations and even introducing a new keyword that just isn’t part of Java. Still, I do think I will want to give Lombok a try of my own.

If you have any questions or want to know more about any of these sessions, please, don’t hesitate to contact me!


© 2020 Java Competence Network. All Rights Reserved.