James Williams
LinkedInMastodonGithub

JavaOne Script Bowl

The Script Bowl was a smackdown between the next generation JVM languages Groovy, JRuby, Jython, and Scala. Voting was conducted American Idol style via SMS to a special number.

Round One – Twitter client

@glaforge demoed Greet, a Groovy Twitter client made by @shemnon. Unfortunately it didn't appear exactly as it does on Windows and Linux. Nimbus doesn't exist on the Mac but it still looked good. I would show a screenshot but many improvements have been made between the time of the Script Bowl and now. I'll leave that to @shemnon to announce it formally and give it its proper due.

JRuby's(Charlie Nutter) entry highlighted the Matisse integration of JRuby. IMHO, the design wasn't as good as the Groovy entry but I conced that I'm not exactly unbiased. The Jython entry(Frank Wierzbicki) was the weakest of the round as it was evident that Swing development wasn't his forte. Also, Jython doesn't have any DSL goodness like Groovy. After login, the application brought up a bunch of buttons, each of which represented a friend. Clicking a button output that users tweets to the console. He also included a regex parser to search tweets. The Scala entry(Jorge Ortiz) was terse yet polished. The overall user interface had an vi/emacs aesthetic to it with the images imposed on a black background with green text. Groovy and JRuby were the high scorers of this round.

Round Two – Web application using Google Maps and several domain classes

Groovy, JRuby, and Jython competed well in this round. Each capitlized on the strengths of its prevelant framework. Scala, on the other hand, didn't have a formal entry. The interesting thing to note is that the Jorge Ortiz is a committer on the Scala Lift web framework. Instead he demoed Scala's continuation support in a chat client. Buoyed by the judge's praise of encapsulation of the Google Maps API in a taglib, Groovy finished within 0.3 points of Jruby.

Round Three – Open round

Just before the round started, there was a single vote of Groovy 5(highest score) and all others as 1. I admit to being that vote. @glaforge talked about Groovy's very tight integration with Java and its respective web frameworks and how it is the only other JVM language that can define AND consume annotations. Charlie demoed totally impractical eye candy. Yes it was the open round so he was free to do so but still. After advising that he had approached the community for entries, he demoed a second Twitter client that was submitted. Scrolling Twitter bubbles in outer space. The second demo was an application built on Processing that responded to sound and pitch. I don't remember the Jython or Scala entries in the last round but they had no chance at winning since the end of the second round.

There was only two weeks' notice for the rounds so the only thing we can prepare in advance is the stuff for the open round. Let's take the prize next year.