Subtitel

A blog by Juri Urbainczyk | Juri on Google+ | Juri on Twitter | Juri on Xing

Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Tuesday, September 23, 2014

Devoxx vs. JavaZone

Every now and then I get queried which of the Java and Web conferences in Europe I would recommend. Often, the most sensible answer seems to be: “the one closest to you”.
Nevertheless, since I visited JavaZone in Oslo in September 2014, I think it may be time to make a thorough comparison after all.
But which are the criteria? The number of rock star speakers? The volume of soft drinks available for free? Alas, I came up with the following criteria:

Variety of topics
This is especially important because most people visit conference in order to peak over their horizons or to deep-dive into certain areas. As a minimum, conferences should cover the topics architecture, mobile, methods, coding and research, while all might bear different names or might be slit up into several sub-categories.
Quality of talks
Of course, the presentations must have content and meaning and they must be given in an inspirational manner as well. These are high expectations, and not many can live up to them. Especially talks, which center around products or have a high marketing potential, tend to be boring and to be of low quality.
Choice & Availability
If you have picked up your favourite talk and you can’t see it, because the room is crammed, that’s bad. It’s even worse if there is no sensible alternative, because not enough parallel tracks are available.
Community feeling
You also visit a conference in order to meet other developers and to talk to fellow architects. This is enhanced if the conference introduces a feeling of community into all its visitors. This can be achieved via events which include all or many visitors, by special after-dinner events, by talks which address all of the community and so forth.
Organisation & Infrastructure
You need to find your way to the conference, you have to know the program, must find the correct room and you need a working wi-fi. Especially the last issue is always a source of trouble, but it’s getting more and more important every year.
Venue & after-conference program
If you want to enjoy your conference, you need good lighting, cosy seating, and a venue which makes you want more of it. And in the night you need some distraction from all the hard-brained conference stuff, in order to be fit again next day.
Food & beverages
Everyone who ever organized a party knows: food is the one single most important thing. Thre is a saying “full belly does not easily study”, but that’s even more true for an empty stomach.

For a comparison, I gave each of the conference between 0 and 5 points for each of the criteria. The result looks like this this:

Criterion
Devoxx
JavaZone
Variety of topics
4
3
Quality of talks
4
4
Choice & Availability
4
2
Community feeling
5
4
Organisation & Infrastructure
5
5
Venue & after-conference program
4
4
Food & beverages
2
5

Let me explain, how I came up with the numbers:
Variety of topics: Devoxx is in lead, because it covers nearly any topic one can think of. JavaZone is only shortly behind since the program also is very versatile.
Quality of talks: The quality is above average for both conferences. Due to the sheer amount of sessions, there are in absolute numbers more mediocre talks at Devoxx, but this does not lead to a full point more for JavaZone.
Choice & Availability: Devoxx is clearly better here because all of its talks are in English (JavaZone has Norwegian talks still). Furthermore, the conference is longer (3 vs. 2 days) and contains more parallel sessions. So, you’re in for some hard decisions at Devoxx. Nevertheless, Devoxx does not earn the full score, because it is so over crowded, that you cannot see all the talks you want.
Community feeling: JavaZone is a true community conference. The same is true for Devoxx, which is a little bit ahead, because there are Keynotes (not at JavaZone) and opening and closing talks which appeal to the whole of the visitors.
Organisation & Infrastructure: This is excellent at both conferences and also includes the awesome websites and the (mostly) working wi-fi.
Venue & after-conference program: Devoxx can gather further points here because it offers an evening program at two days. But this is reduced by the venue being too much outside of the city center.
Food & beverages: Food is traditionally poor at Devoxx and excellent at JavaZone.  Devoxx has 2 points, because of its Belgium Fries night.

Which one of the conferences to prefer? It depends on which one is closest…

Tuesday, November 19, 2013

Devoxx 2013 - The coming of lambda

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.