Monday, September 30, 2013

JavaOne 2013 is over, But have I learnt from it?

On a sunny day, JavaOne took place downtown San Francisco. JavaOne is already over, let me share with you my experience. My personal interests being on mobile technologies and polyglot languages, this was the guiding theme of the sessions I attended.


I started on Monday as early as 8:30 and already with a cornelian dilemma: which session to choose: the one with my team mates “Notify Your Mobile Clients by Integrating Push Networks and Java EE 7” or the one with my soulmate (and dear husband) “Polyglot Alchemy: JSR223 in action” ? I won't tell which one I attended :)

My next session was with Hans Dockter presenting “Gradle and the New Android Build System”. Starting with a scary image of feet corpse, to make you measure how important is an efficient fully automated build system. Why did Google choose Gradle for their build system? Even a simple android project is more complex that a plain java project. Live cycle phases are more complex and can me declined in different flavors. The key success of Gradle build is about mixing declarative build system with flexible and rich object model. I was even surprised to learn Gradleware is also working on C++ build system.

I also did a couple of Nashorn sessions. "Nashorn: JavaScript on the JVM" with Jim Laskey. With JavaScript on the JVM, programming is fun again ;) Full of concrete examples on how to use JavaScript for scripting, how to mix JavaScript and Java with binding. The one that hurts a bit the eyes (personal feeling here) is nashorn + JavaFX. Interesting debugging IDE askari POC but to be honest, what we really wish for is to have IntelliJ/Eclipse support.

It was time to give my 2 hours tutorial session on "Embedded DSL: Groovy and Scala Fair Duel" with my co-speaker Pascal Cohen. Our presentation was full of code samples assuming knowledge in both Groovy and Scala syntax. If you want to try them by yourself, here is the link of the presentation. Eventually, you can also play the game. That was great fun!


"Developing with Java on iOS and Android: Introduction to Oracle ADF Mobile" with Shay Shmeltzer. Oracle ADF mobile is for Java developers that don't want to see their skills become obsolete. Don't need to learn HTML5/JavaScript. Quoting Shay: "JavaScript is meant to do DOM manipulation but for serious logic, JS is slowing you down", ADF mobile allows you to write all your code in Java and under the hood HTML5 is used. You can write your own ADF module in XML.
Break. Too much for me. JS is a poor language, XML is a great tool for developer. Isn't it late by a few years?

Let's have a session on JavaScript, how funny to see JS used server side too. To do serious logic. "Server side JS on the JVM with Nashorn and avatar.js" by Akhil Arora. Avatar is an implementation of nodejs for the JVM, it was open sourced last Sunday on Some of the features:
  • support multiple event loops: one single event loop in node js.
  • multiple java threads support
  • compatible with node v0.10.18, of 584 node unit tests 470 passed without patches (80%)
Avatar implementation is based on libuv (cross platform asyn io lib), node’s http-parser(synchronous http parser very fast) and _wrap module.

"RIA Technologies and Frameworks Panel" featuring Stephen Chin, Max Katz, Sven Reimers, Andres Almiray, Gerrit Grunwald and Kevin Nilson was an interesting and informal session with a good focus on mobile technologies. Attendees ask questions to the panel.

"Play vs Grails smackdown" with James Ward and Matt Raible, very entertaining session where Play (Scala web framework) get compared with Grails (Groovy web framework). Fair battle too :)

"Embedding JVM Scripting Languages" of Anton Arhipov. Everything you need to know on JSR223.

"Teaching Java with Minecraft, Greenfoot, and Scratch" by Arun Gupta (proud dad of Aditya who did the Community keynotes on Thursday) and Daniel Green, gives you a good overview of the different software to use. From Scratch to Minecraft. Targeting your audience is key.

"Experimenting with the Boundaries of Static Typing" with Paul King. With code samples, you can compare full blown static type code vs. dynamic code.


"Testing the Enterprise Layers: The ABCs of Integration Testing" with Andrew Rubinger and Aslak Kntusen Welcome earthlings! said alien Arquillian. The session gives a good overview of different test phases and if you need more in-depth you could read the purely open source book.

"Functional Groovy" - Paul King. Always a pleasure to attend Paul's presentation. The good thing is you can review slides and code back home, the content is rich.

"Polyglot JVM: Who, Why, When, and How" starring Ixchel Ruiz and Andres Almiray

"NoSQL Overview" with Tobias Lindaaker. As the title says it all, you get out of the session with a good overview. Categorisation borrowed from excellent book from Martin Fowler.

"Android and iOS Development with Java EE 7" Have you heard of AeroGear? This was the introduction session to get a broad knowledge of how jBoss tools plays nicely with AG and where they fit in the JavaEE landscape.


I am not a big fan of keynotes, but unlike Larry I haven't skip that one. If there is only one thing I should recall from that keynote, it is Aditya Gupta opening Eclipse and explaining the audience: this is Eclipse...
So much like my son.
I did a couple of sessions to finish:

"Groovy and Concurrency with GPars" with Paul King

"Polyglot Enterprise Development on the JVM" with Thomas Enebo

"Truly Native Java Apps on iOS with RoboVM" with Niklas Therning. Interesting subject: How to bring Java and other JVM languages to iOS devices. Funny enough to see code in Java implementing CocoaTouch. The project does not generate Objective-C code but rather compiles bytecode into machine code. However you still need all Xcode installed and you need to run on a mac.

This is the end

Sessions all finished. I had a great time at JavaOne. Nice to meet you guys :)

Friday, September 20, 2013

Going to JavaOne? Join us for a tutorial session on DSL

Next Monday at JavaOne, I will be giving a tutorial session "Embedded DSL: Groovy and Scala Fair Duel" with my co-speaker Pascal Cohen.

I invite you to join us and here is a couple of reasons why (in a very objective view of course):

  • You want to learn more on Domain Specific Languages. 
  • You've heard so much about polyglotism: here a session where you've got a chance to see in action 2 very popular languages on the JVM in the same session! Scala and Groovy are seen theoretically strongly opposed but we will show you how, using different techniques, we achieve the same DSL.
  • You want to see code and really learn something concrete. We'll show you step by step how to build KissingTurtles language. If you bring along your computer you can even do it yourself.
  • You're not into Groovy or Scala. Fancy a tour in Scala and Groovy land? Even code your first script. 
  • You're interested by XaaS buzz words. What are the challenges of platform as a service. Running client code (not to mention when client is 6 years old) can be risky and tricky. 
  • You have kids too. You want to see what is KissingTurtles. 
  • You love french accent. Two Frenchies on stage with a pure lovely accent. 
  • You want to have fun.

But I've already said too much. I love chatting, but this is supposed to be a teasing...

See you Monday at 4:30pm Hilton - continental Ballroom 1/2/3. I'll be there. Will you?