Tuesday, November 24, 2009

Devoxx2009 - my impressions

This was my second Devoxx. This year a smaller than last year (I'd say by around 30% - European economy seems to be delayed compared to the US wrt suffering from GFC). There were fewer parallel tracks – less pain to pick sessions, but at the same time less choice. I had really problems finding something really cool for some slots (especially University days and the last day – with only 4 tracks).

I hope that next year will be again better, as our economy improves.

Twitter

Twitter was ubiquitous this year. Devoxx tweets were sometimes pouring in with the rate of 100+ tweets/hour. I was observing tweets during the sessions and they quickly revealed people opinion of currently watched session. I dare say Twitter influenced the traffic and the dynamics of the conference. Sometimes several positive tweets could lure much more people into the session (after it started) and negative tweets could help to empty the rooms as well.

I am quite reserved regarding new media (like Twitter) and related hype, still I find it really interesting for such situations like a conference full of geeks.

Scala

This was a Scala conference. Almost no sessions about Groovy, JRuby, Jython, Clojure and other JVM languages. Scala won the interest completely.

Some say that's another fad or fashion and the next year will belong to yet another new sexy technology or language. I hope not. Scala is the first serious statically typed JVM language, which has a chance to lead Java (JVM) community into the new decade. Groovy is cool, sure, but I still don't believe in dynamically typed languages for implementing medium-to-big systems, which are to be evolved and maintained for years. After all refactoring (one of core agile techniques) is so much easier and safer in statically typed language than a dynamic one.

Many people (including me) were really impressed by already existing frameworks for Scala – like ScalaTest or Lift.

I bet that with all the experience we accumulated from almost 15 years of Java existence and its evolution, we can expect truly awesome and stable Scala-based frameworks much faster than we had to wait in case of Java (e.g. DI frameworks only in early '00)

Cloud Computing

If I were to name any technology which occupied the minds of the attendees (or perhaps the organizers), it would be cloud computing and related implementations/technologies like Amazon EC2 or Google AppEngine. Time will show whether cloud computing (in its current incarnation) will be yet another buzzword (after SOA) or it significantly changes our landscape. I already am convinced about one thing: existing cloud computing solutions may drastically simplify going live for internet startups which would otherwise need to spend a lot of money and time on estimating the predicted load and how to serve it. Cloud computing just makes agile “release early & release often” mantra easier.

Still I feel that a lot of bigger enterprises, which don't want (often due to a good reason) move their infrastructure outside the firewall, will wait until some stable behind-the-firewall solution will be available (will Eucalyptus be one of them?).

Closures in Java

Probably the most unexpected announcement at Devoxx. Sun delays Java by several months (till Fall 2010), but wants to add “simple” closures. I won't elaborate on that, as there are other blog posts which do it extensively. Two things however strike me: several years have passed since closures for Java were proposed and discussed, yet the current approach seems to be quite disturbing – going for a solution more or less made up randomly.

Keynotes

Keynotes were generally boring this year. Some extremely (like Oracle's and Sun's), some rather (like Ivar's one call to “action” on software engineering).

Two keynotes however deserve a separate treatment:

  1. Adobe talk – good speakers, great slides and great demos. Definitely something to follow in your own presentations.

  1. Uncle Bob's talk. This guy always astonishes me. A great, passionate speaker. His words are floating in the air for a long time and then catch the listeners. I expected something similar to his last talk at Agile2009 (the craftsmanship but around Bob's book “Clean code”). However he went this time much deeper analyzing the current state of software developer professionalism and how to achieve it. “They hated us. And we hated them” - for all these years. “Say no. Do not be afraid to say no. Your professionalism requires you to say 'no' ” This talk itself is worth buying the subscription from parleys.com :) Especially if you want to know about the entropy related to a black hole.

On a side note: it was interesting how Stephan Janssen used his opportunity while officially opening Devoxx to demonstrate his parleys.com. Yeah, this guy definitely deserves big thanks for his hard work, but for me it smelled of some kind of Devoxx monetization. Another thing: parleys.com is a Flash app (BTW a wonderful UI). Still it powers the biggest Java conference in Europe which evangelizes JavaFX. Nice, isn't? I would call it democracy and meritocracy.

Craftsmanship

Will '10 will be a decade of software craftsmanship? We will see, but Robert Martin says so. Ivar Jacobson also complains on years of changing fashions and our forgetfulness with regard to good, verified engineering practices, software management skills, etc.

Craftsmanship is something which differentiates good and responsible software developer from a bad or irresponsible one. Uncle Bob calls for 100% (or as close as possible to this number) unit test coverage. Calls for clean code. Calls for your professionalism.

A good observation though is that our industry suffers from an engineering talent drain. There is a lot of skilled and promising software engineers (with around 10 years of professional experience) who quit their engineering work to become various types of managers or analysts. Thus the experience does not accumulate and there are no real mentors (on the code level) and thought engineering leaders across companies. Somehow being a manager is considered by most of people to be a more attractive and desirable career path than being a leading (principal) engineer. We probably have serious problems in our companies which do not offer interesting development paths for their technical staff. That's bad and honestly I myself am often troubled by this dilemma.

Flash vs JavaFX

This was another year when Sun tries to compete with Flash in rich internet applications market. Whereas I wish well JavaFX (especially its desktop controls which will hopefully replace old Swing), it's obvious that Flash has a big advantage – being at this market so much earlier.

At Devoxx I learnt about a new thing which may even further drive Flash domination: Flash player for mobile devices (v. 10.1), which handles even things like accelerometer or the orientation detection. It seems that Flash may become now the best technology for writing cross-platform mobile apps. Adobe won in desktop browsers space and now with Flash player being able to run exactly the same app on Android, BlackBerry and even iPhone (here due to Apple policies one needs to generate an app executable with a tool Adobe provides). I saw live parleys.com (Flash) on BlackBerry – just awesome.

I hope that JavaFX can compete with that – having another monopoly would not be good.

Apple Store

Apple becomes hated. This is a significant mind shift I am observing.

Developers hate their Apple Store policy which blocks many interesting apps forever and seriously hampers the evolution of others (making iterative releases really painful).

Apple paranoid focus on controlling everything in the store hurts them a lot. They are actually just widely opening a market for a new platform and I bet Android will quickly take its market share.

So Apple itself became the biggest enemy of Apple. Can they fix it or rather they will become another Microsoft – a giant company, which people ridicule, but which still controls most of the market. Everyone waits (or foresees) their doom, but it does not happen … yet.

Paul Graham wrote a much deeper analysis of this situation. I recommend you read it.

Java Store

This was something totally unexpected for me: James Gosling announced store.java.com – Apple Store-like website for Java applications run by Sun.

Sun tries to copy the success of its competitor. Sun believes that all these millions of Java-enabled desktop users and billions of Java-capable mobile phone users may be interested in buying something via a central store.

I see several problems here:

  • Sun store is not present world-wide, it's not even accessible from most of European countries. They seem to struggle with legal and fiscal stuff and till now they are ready only to operate for American customers. That sucks and Apple did much better than that.

  • Most of iPhone users download their apps directly from the phone.

  • Java apps do not work directly on two most popular mobile platforms now: iPhone and Android.

  • Desktop users seem to be potentially the most promising target. I wonder if they want to pay several bucks for a game or a small utility when the Internet is crowded with tons of free Flash games and apps.


That's all folks. Comments? Thoughts?

Hopefully see you at Devoxx next year.