It’s November
2013 and it’s conference time again. The European Java and Web Community
gathered in Antwerp for the annual DEVOXX conference, which always means days
tightly packed with information. My head is still spinning but I’d like to
highlight a few things which are noteworthy this year. But first, a picture from the first keynote session, showing live-DJ-ing with software scripting:
No single hype
This year, there was
no unique theme standing out. The hypes of the years past, Mobile,
Cloud, NoSQL, BigData, are now regarded as standard. There were still
presentations about those topics, but they are “normal” now. This of course is
a good thing, although great emotions and extraordinary news are missing.
Java 8 expected with Lambdas and support for parallel execution
There were
a lot of talks on Java 8 and on the new features available with Lambdas and
functional / declarative programming. They especially seem to enhance code
readability which is important because “reading code is more important than
writing code” (Brian Goetz). The most prominent example is the replacement of
the infamous anonymous inner classes through lamdbas. This can be seen in the
following code sample:
public class MyListener {
public static void main(String[]
args) {
JButton myAnonymousButton = new
JButton("A Button");
//actionlistener using anonymous
class
myAnonymousButton.addActionListener(new
ActionListener() {
public void
actionPerformed(ActionEvent ae) {
System.out.println("anon
click!");
}
});
//actionlistener using lambda
expression
myAnonymousButton.addActionListener(e -> { System.out.println("a
lambda click!");
});
JFrame frame = new
JFrame("Functional Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(myAnonymousButton,
BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
Internally,
the lambdas are implemented using invokedynamic which was introduced in Java 7.
By doing so, the JVM can choose that implementation of the lambda which it sees
fit. This is an advantage, since at programming time you don’t necessarily know
the concrete circumstances of the runtime environment. On the other hand, the
programmer loses control, because he only tells the JVM what to do but not how.
There is
also a new stream library coming, which especially intends to simplify parallel
programming. I’m not sure how much of a performance gain this can achieve,
because it half of the code can be parallelized, the program can only run twice
as fast.
Microsoft is Sponsor now
The Devoxx
organizers can be happy, because the “big four” are sponsors now: Google,
Oracle, RedHat and Microsoft. Google dominated the talks, while, strangely
enough, Microsoft did not show up in any of the presentations (although they
had a booth). This is really a chance missed, especially since Windows 8 opened
up to the Web and allowed for Windows Applications being written in JavaScript
and HTML5.
More crowded, but…
Devoxx 2013
was even more crowded than the conferences of the last years. It was harder to
get a seat for the important presentations and it was a pain to get something
to eat. This all is ok, if the costs are low (which is true) and if the quality
of the presentation content is high (which is not so true anymore). Actually,
the quality of the slides was a catastrophy! I cannot remember another
conference in the last years where “death by bullet point” was so imminent.
Many presenters even read all their slides aloud and some did seem to be on the
edge of sleeping (or at least trying to get their listeners to sleep). What’s
more, good talks on methodology and architecture were missing, while many
presenters focused on detailed features of various (sometimes not so important)
frameworks. I also missed great keynote speakers. To wrap it up: quality at
Devoxx seems to be on the decline. Maybe it’s because there are a lot of Devoxxes out there now (London, Paris, Kids …). Do they lose focus?
Highlights
Nevertheless,
there were some very interesting and entertaining presentations: The session on
Google Glass was absolutely packed and really lived up to the expectations.
Another good one was Arun Gupta talking about web sockets. Also, Brian Goetz on
details of the JVM and Ludovic Champenois on Google App Engine excelled. Next
time, get us more of those, please.
No comments:
Post a Comment