Thursday, April 24, 2008

JRuby at JavaOne "Script Bowl" Session

At JavaOne this year, there will be a session entitled "The Script Bowl", in which JRuby, Groovy, and Scala will face off on a series of challenges. I suggested that the list of challenges include a range of things each of our language communities could try to implement, and this is the list they came up with. I'm looking for help on these three, so I can show off JRuby's potential and give whoever implements the best example a nice plug and a t-shirt.

So let me repeat that as a call to action: Help implement these and the ones chosen for the session will earn a t-shirt and a plug on stage by me. Fair enough?

Here's the list:
#1 - Client Application

Write a simple, read-only Twitter client as a desktop app.
The Twitter API is documented at http://groups.google.com/group/twitter-development-talk/web/api-documentation.
User provides twitter email address and password , then browses friends and their statuses.
User can also filter content based on plain text or a regexp. (Our users are geeks.)
Your choice whether to use the JSON or XML output from Twitter.

#2 - Web Application

As a database, we'll use the "world" sample database from MySQL (http://dev.mysql.com/doc/world-setup/en/world-setup.html).
The Web Application lets a user browse countries, sorting them using different criteria (e.g. population or GNP), and select cities and display them on a map using one of the many map widgets around, e.g. Google (http://code.google.com/apis/maps/).
For geocoding you could use e.g. http://worldkit.org/geocoder/rest/.

#3 - Free round

Up to you. Show us something your language can do better than any other! But again, be concise.

So obviously #1 would be a GUI thing, probably using one of the frameworks available for JRuby. And #2 is going to be a Rails app. At the moment, I think any of Jeremy Ashkenas's ruby-processing demos would be an easy add for the script-bowl, but if anyone wants to try to top them go for it. I'd especially like to see something JavaFX-like, with nice vector-drawn graphics and maybe a physics model. Make it pretty. Sound is good :)

Feel free to email me directly, but the JRuby user mailing list would probably be a better place to do it so we can all see it and discuss the entries that represent the best of JRuby.

5 comments:

  1. It's a shame that neither Fortress nor Jython will get a shot. Not that Fortress has GUI support, but #2 and #3 might be possible.

    ReplyDelete
  2. Daniel: Yeah, not my talk...but it's hard to say that these three aren't the "most talked about" language implementations right now, and it's only an hour after all. Plus Jython has a ways to go before it would be an easy contender in this kind of bowl.

    ReplyDelete
  3. There should be a performance round--let's face it, this is one place where Scala is likely to excel, and that shouldn't be hidden. (For the record, I use both Scala and JRuby.)

    Ken

    ReplyDelete
  4. Scala is not a scripting language.. well, at least it's not just that. It's typing system is more powerful than Java, where that isn't try with the other. Not sure if that's really an issue in this context.

    ReplyDelete
  5. Given that Python and Ruby are are extremely close in terms of functionality:

    Why are the Ruby implementations having trouble getting up to the speed of Python ? Is it simply a problem of maturity ?

    ReplyDelete