Monday, November 12, 2012

Devoxx 2012 - University Day One - review


It's been a long day and here I am after a  long walk to the Antwerp docks, back to my hotel room blogging about my first conference date, for the 'university' phase of Devoxx 2012.

Registration... the RFID/NFC era.

Early start in the morning, since I wanted to be on time for pre-registration and welcome package handling. Eventually all went very smooth and fast, no waiting at all, evidence of the maturity and experience of many years from the devoxx team and organizers.

In the entrance the  Registration team, after scanning your e-ticket, strapped to your hand the special RFID/NFC bracelet and you are done!


A few meters away your Devoxx backpack, which is smaller but more handy this year, with the usual T-shirt and notebook, was waiting for you. A special card printing machine was installed in the reception, you swiped your bracelet and a nice plastic card - was printed within seconds - that was cool!


There are also auto voting machines, in every talk room that mimic the Facebook Like page sign. I was actually focusing in the arrows on the sides - so watch out guys / girls take a step back and if you like the talk swipe on the Like (right side) or don't like on the left side. Just like Facebook : ). They are built based on Arduino, our beloved RaspberryPi boards and NodeJS backends! Extra coolness points :D!!

Talks 

1. Intro to iOS6 for Java Developers by Michael Seghers (twitter)

It's been over 2 years that I am trying to allocate some time and 'will' and deep dive into the development world of my beloved iPhone and ObjectiveC. I have bought books, watched some tutorials but at the end of the day I still can not find enough time or focus  between my Enterprise Java developer life and do something interesting. I thought that despite the fact that I am attending a heavy Java related conference I could spice up a bit my agenda and try to push this diversification of programming skills that I dream of.

Michael Seghers is a great presenter and I was quite satisfied about the overall performance, content and outcome from his presentation. He had a difficult task, do an hour crash course test addressing mostly hardcore Java developers on ObjectiveC (a weird looking language IMHO) and then deep dive into the specifics of iOS mobile kit development - producing a worth talking example/use case.

Despite the fact that my ObjecticeC skills are still in the newbie level - I managed to take some extra notes and actually make some a-haaaa! At the same time when it comes to the  iOS MVC programming model and the specifics I was actually feeling more confident, we, the Java developers, are used on that kind of Event / Delegate driven methodology for many years through many frameworks, the iOS way is not way different. But there is a but...

This is where my ObjectiveC rant begins. I still believe that the language is requiring lots of wiring code for object creation/allocation and handling. Despite the fact that Java is actually getting very old, it really had, productivity wise, enhancements years ago that I am still very reluctant to forget or pretend to forget that they don't exist and go back to more primitive language. Wait a minute, did I mention primitive? OK, maybe I am over-reacting a bit, ObjectiveC is powerful language and has many advanced features but still IMHO like the introduction of ARC (which is actually quite new) can improve on it's syntax. As a hard core Java developer, I still don't understand why in 2012 I have to do wiring on the constructors, write on separate files or use pointers (the way ObjectiveC wants).

Again, IMHO I still don't find ObjectiveC syntax appealing and productive enough to make me ...forget my old Java heritage and move on. On the contrary the iOS core libs and the way the framework is wired and guides you through the development steps - is very mature, powerful and easy to grasp. I would love to see the iOS mobile framework - to be available in the Android world (copy all the ideas) for example. Ideally, I would love to code Java on the iPhone or a language like Java...e.g C#. Again..maybe I am getting old, maybe I am writing to much Java code, but I think Apple can do better on updating the ObjectiveC spec.I am not intending to start a flame war.

*cool hint from the presentation  the Doom game,  Level editor was written in ObjectiveC.

2. From Runnable and synchronized() to parallel() and atomically() by José Paumard (twitter)

This was the best talk of the day, what a blast really!! Too much interesting and hard to grasp information presented in a such simple and direct way! I must have made several pages of notes. Jose Paumard is the type of 'active' academic, teaching and coding, he is a professor  and an open source developer and that mix actually was reflected 100% to his presentation.

The talk did a journey back in time regarding CPU memory models, threading and memory allocation. He then continued giving excellent examples of the Merrory Barier problem and the False Sharing effect for caches in the recent multi-core CPU's. Simple examples aligned with code for everyone to understand and follow. I made a note from a specific slide indicating that currently there are 2 potential tools suggested,  that we have as Java developers on the False Sharing problem, that is the ideas and implementation on the LMAX Disruptor framework and the tool set provided in the related new packages of JDK 7.



Another large part of the presentation was around the STM (Software Transactional Memory) principles, as a potential way to resolve parallel programming and concurrency problems . It was indicated that a big step forward is going to be made within 2013 with the introduction of the Haswell core from Intel, which will incorporate the logic of STM into the core! The Java specification is expected to follow all the changes on the STM front since the hardware is already moving forward. JEP 155 is already on the run and hopefully in some future revisions of the JDK we are going to have major upgrades on the concurrent utils and packages offered by the language.That is great news, Java is still alive and will be covering such an interesting area.

Some great examples and many slides were focusing on the Akka framework, as a potential way to inject STM principles to current development problems and challenges. I have to be honest Akka is one of the things that I am really eager to test on a real production system, unfortunately up until know that was not the case but I have steadily reading resources around. I was very happy to get another reference and valid points around Akka, from yet another presentation.

I really wish we can host Mr Paumard in any of our Greek JUG (www.jhug.gr) monthly events sometime, I am sure lots of developers will find the content really great, easy to follow and take notes and ideas on implementation problems. Definitely worth seeing presentation, grab it as soon as it becomes available from Parleys.

3. Hacking the Java compiler for fun and profit by Raoul-gabriel Urma

Fun short talk regarding the changes you can apply on the specific parts of the Java Compiler code, by modifying to parse and understand specific syntax idioms (that you may want to add). Of course the overall examples was as the title suggested 'hacking' activities and the presenter made a clear note on this. Changing or altering the functionality of the Java Compiler is a serious task and you need several safeguards and important reasons to do such a thing. The important note out of this presentation is that we are expected more development on the Javac plugin development and more powerful ways - enhancing Javac. 

*note from the presentation - eventually all the optimizations done in our code are not performed by the java compiler but from JIT runtime.

4. Weld-OSGi in action  by Mathieu Ancelin , Matthieu Clochard

Interesting presentation about the mix of OSGI bundles/ runtime and Weld . The presenters demo-ed a simple note-taking application where they have been installing new plugins /services dynamically using OSGi, with no container or configuration restart/change. Valid point noted: OSGi is considered by many of us difficult to master and use but things have changed Weld-OSGi is a good example and a nice start for experiments. I will check it out when I have some free time, definitely worth trying and see if still the arguments for OSGi development apply :).

5. CRaSH an extensible command line for the JVM by Julien Viet , Alain Defrance

That was a very cool one! I have not heard about CRaSH before, but I am definitely going to try it and follow it's updates. Crash is shell for 'communicating' with a running JVM, passing live commands, checking JMV statistics or making modifications. It's open source, it's free and I think that it will earn it's place in the modern Java Devops administrator/developer. Tools like CRaSH can help Java developers do devops or maintenance (or performance tuning) tasks easier and in a more controller way. So, definitely give CRaSH a try...you may find it here! The plugins and integration with tools like Visual VM or the embedded mode used to attach on Java Application Servers is a big bonus! I really liked the overall idea!

So.. 

That is all for today. On the side notes, another year that I am thinking that in conferences like devoxx I should have been using a small 10inch laptop, too much hassle to move around with my 15 inc macbookpro and at the same time, a tablet does not cut it when you want to write notes or some code - while watching . Oh well, we use what we have :D .

Greetings from Antwerp! 

*if you want to follow live Devoxx updates and comments every day - use the #devoxx tag on twitter.

5 comments:

  1. Thanks for this short summary.

    Too bad I couldn't make it to antwerp this year.
    Telling from the picture of your blog post your're staying at the Hotel Scheldezicht? I really love that place and the sign on the photo is taken at the harbor line isn't it.

    I can't subscribe your opinion regarding ObjC, though. The syntax is kinda odd but similar to Smalltalk, but, yes including the infamous C foo, right.
    But the general idea of message passing using those brackets is not too bad.
    And: I am in a similar situation being trapped in this every day JEE cycle which is hard to esacape.

    Cheers and enjoy Devoxx!

    Marcus

    ReplyDelete
  2. You could always try Flex for cross mobile platform development.

    Very nice presentation of the first day. Can't wait to read about the rest!

    Keep it up!!!

    ReplyDelete
  3. @Marcus, I am overeacting a bit true. But still for me this syntax does not cut. I will keep trying though. Yes of course message passing is not evil or bad..it is this weird syntax. :P Thanks for your comment - see you next year

    @Efthymis - from my limited experience these medium hybrird platform solutions produce - something that sort of works but does not fill like the native thing. I was always in favour of native apps in modern mobile platforms

    ReplyDelete
  4. Very informative enhancing my knowledge level a lot....

    ReplyDelete
  5. Simple to the point enhancing my knowledge a lot....

    ReplyDelete