Tuesday, April 08, 2008

JAX India 2008- Day 1

starting today and for the next four days i'm attending jax india 2008 thanks to my employer.

the conference is happening at the jn tata audi@iisc which is like 20 km from my house, so i had to leave real early at around 8 am (my mantra being to wake up post meridian if one can get away with it) in order to reach there in time.

which, thanks to bangalore traffic, i didn't of course- missing most of the introductory session. so from what i gathered in the last 5 minutes of that was that the conference is

  • a series of such events 'round the globe

  • has been around for a few years now and

  • is a mash-up of 3 conferences in 1- eclipse, java-stuff and enterprise stuff (formally enterprise architecture).

that said, we dived into the first session which was scripting support on the java platform by Chuk- a session introducing scripting basics and JSR-223 and . though the session was delivered by the exuberance of an evangelist, somehow the fact that the examples were in javascript (which has always given me the heebie jeebies), which is the default bundled scripting engine in jdk 6, put me off a little. also the api for calling/running scripts from within java code seemed pretty ugly as seen in the sample below-

ScriptEngineManager seManager = new ScriptEngineManager();
ScriptEngine engine = seManager.getEngineByName("js");
try {
engine.eval("println('hello there');");
} catch (ScriptException e) {

more info on this topic at scripting.dev.sun.net

the one tidbit i paid notice to was that java 7 might change the way the software is downloaded/available to decouple the vm and the 'java' part of it and allow need based download...

next up was the session by Guillaume on groovy which is a new gen scripting language that runs on the java vm.

initial snippets he showed us gave me the impression that this is heavily 'inspired' from ruby, though i was amazed at the flexibility of the language when Guillaume walked through a demo where he took a slightly complicated HelloWorld program using a JavaBean, ran it on groovy, and hacked it line by line into a 'groovier' form while demoing the syntax sugar. All i can think is that the grammar must be a bitch!

2 more cool things-

import groovy.swing.SwingBuilder
import java.awt.BorderLayout
def swing = new SwingBuilder()
count = 0
def textlabel
def frame =
swing.frame(title:'Frame', size:[300,300]) {
textlabel = label(text:"Clicked ${count} time(s).",
constraints: BorderLayout.NORTH)
button(text:'Click Me',
actionPerformed: {count++; textlabel.text = "Clicked ${count} time(s)."; println "clicked"},

after that started a keynote session delivered by roy singham of thoughtworks titled 'shift happens' which was centered around some predictions of whats going to change (mainly die out) over the next few years in i.t., but morphed into a passionate speech ranging on topics from customer-confidence to soa to ecology to lean-manufacturing to project-management-pitfalls to Ola-Bini... inspiring/thought-provoking and definitely challenging one's ego.

after a pretty good lunch, i got back to a session on tips'n'tricks on eclipse plug-in development by Chris. was pretty fast as most people in the session were like me, nubies to plugin dev, so chris had to go through an extra (backup) slide deck on eclipse pde 101 to get up up to speed.

lecture notes-

  • read-up on OSGi (planning to start here)

  • the Plugin Spy tool available in 3.4+?

  • tptp for profiling (why is my ide pregnant?)

looking forward to the hands-on session with him this friday.

the final session of the day was on soa challenges by Ken which was a humorous and interesting session on the various problems faced in soa adoption/implementation on the business, political, strategic and (least) technology fronts.

ps- all information about the speakers and sessions is from my weak memory+googling.. so any inaccuracies are totally my fault.