Last week’s Java conference – Geecon was very interesting. It was well prepared, and gave an insight into the current Java related trends – concurrency, DSLs, polyglot programming. But not only that – there were also some pretty different talks from excellent speakers.
The whole event took 4 days:
- University day (wednesday)
- 2 regular conference days (Thursday + Friday)
- hacker garden (Sunday)
I decided to attend only on Thursday and Friday – no time for more. Here is what interesting happened during those days.
Day 1
The morning got me unprepared. After hard enough, after work travel to Krakow on Wednesday, I wasn’t in the best shape. However after arriving at the venue, being greeted with breakfast and refreshments I looked at the rest of the day with real hope.
Since the schedule was tight – three parallel tracks of lecture, I had to choose, so bare in mind, that is my account of what I’ve seen and heard. Others may, of course, differ.
1. Danny Coward “Java SE: The Road Ahead”
Danny, being on Oracle (considering being also former Sun’s employee a plus) payroll, gave an insightful talk on new things to came in Java 7. He drew rather serious plans for Java 8. According to Danny, the main trends in today’s Java ecosystem are:
- parallel programming
- language dynamics
and he probably is right :) The great things to come with new versions of Java are:
- closures in Java (finally!)
- extending interfaces
- map, filter – functions for collections
- lambda expressions – thou in Java 8
The talk itself was a nice keynote, but I doubt the road map for Java will be met in its full extent – the goals aren’t that small.
2. Juergen Hoeller “Enterprise Java in 2011”
Spring Source as one of the sponsors sent Juergen to evangelize about the world of enterprise and Java’s place in it :) He emphasized different kinds of deployment: WAR, cloud deployment – and the latter’s rise of importance.
He pointed out how outdated current application servers are – the usually lag ~3 years behind the main trends and developers’ needs – good point! He proposed looking under the hood of now-popular cloud environments: Google App Engine or Amazon Elastic Cloud to look for schemas in them, etc – I intend to listen to his advice.
All in all this guy gave a great talk covering wide spectrum of technologies and not focusing on technical stuff too much.
3. Heinz Kabutz “Reflection madness”
Despite living on a Greek island, this guy showed also how to whack ones mind with Java Reflection API. Pure magic! Some highlights of his talk were:
- how to get 42 + 1 = 44
- get the size of an object
- get method caller’s id
- add enum values dynamically
With all this examples he pointed that using SecurityManager will prevent such nasty coding practices.
Since he is an editor of Javaspecialists.eu newsletter, all the answers to problems presented in his talk (and many many more) can be found there.
Well done, not to useful for me, nevertheless – interesting.
4. Michael Figuiere, Cyrille Le Clere “NoSQL & Datagrid from developer perspective”
I don’t know what to think of this talk. It consisted an introduction to NoSQL databases but also a bit of problem’s description that can be encountered when dealing with them. Notable thoughts were on:
- creating a sharding ready data structure
- denormalization as a useful process for NoSQL DBs
- NoSQL usually means no transactions
5. Hamlet D’Arcy “New Ideas for old code”
Since a lot of developers (all?) have to deal with legacy code – one way or another, this talk was a must!
. The speaker shared some ideas on how to work with such code and remain sane. The talk was vivid, interesting and entertaining, well, and the notable thought? Here they are:
- 51% rule – if you’re not committing 51% of your time/your tasks into fixing your situation than the whole battle is already lost,
- read some good stuff!:
- Martin Fowler’s “Refactoring”
- George C. Martin “Clean Code”
- Chad Fowler “Big Rewrites” – and why they failed, what’s wrong with them
- use static analysis – Find Bugz, pmc
- query-command – a method should be a query or a command:
- query – returns sth
- command – change the state of an object
- he also proposed scratch refactoring
- set a timer
- tag your code
- refactor without tests
- step back and analyze
- is it better? if not, revert
This was nice! – it assumed arriving at a project with no ( or little) tests.
6. Aslan Knutsen “Arquillian”
The last talk of that day was about some new library from JBoss that would allow to test your components with unit tests – test them in a destination container. The whole point of this library is to run the specific fragment of code as if it was build and deployed to some application server (let’s say JBoss AS ;-) ). To be honest, I can’t find much application for that – thou I’m not doing any serious work in JEE world.
Party
And the day ended. But there was sth else to do after the official part – party time! It took place at Klub Pauza on Floriańska street. It was a rather nice social event.
… to be continued – stay tuned for part 2