<<

The Script Bowl Featuring Groovy, JRuby, and Scala

Raghavan “Rags” N. Srinivas CTO, Technology Evangelism The Script Bowl: Groovy Style

Guillaume Laforge VP Technology at G2One, Inc. Groovy Project Manager http://www.g2one.com Guillaume Laforge

Groovy Project Manager • Co-author of the Groovy in Action best-seller Manning

• JSR-241 Spec Lead, • VP Technology at G2One, Inc. standardizing the Groovy • Professional services around dynamic language in the JCP Groovy and • http://www.g2one.com • Initiator of the Grails web application framework

2008 JavaOneSM Conference | .sun.com/javaone | 3 Groovy is… An Open Source dynamic language for the Virtual Machine for the Java™ platform ( or JVM™ machine) No impedence mismatch with Java™ programming environment • Groovy uses a syntax much like Java programming language • Shares the same object / threading / security model as Java programming language • Uses the same APIs (regex, collections, strings…) • Compiles down to normal Java programming language bytecode Provides native syntax constructs • Lists, maps, regex, ranges Supports closures • Simpler than any proposals for Java programming language! Groovy simplifies the use of many Java programming language APIs • XML, , JDBC™ API, unit testing & mocking, templating …

2008 JavaOneSM Conference | java.sun.com/javaone | 4 The Script Bowl: JRuby

Charles Nutter Technical Lead, JRuby JRuby Co-Lead Charles Oliver Nutter Longtime developer of Java application environment (11+ yrs ) Engineer at for 1.5 yrs Full-time JRuby developer Also working on JVM implementation dynlang support Wide range of past experience > , C++, C#, Python, Delphi, Lisp, Scheme > Java Platform, Enterprise Edition (Java EE platform) and Java Platform, Micro Edition (Java ME platform), Jini™ network technology, WS

6 JRuby Implementation of Ruby language in Java environment > Pure OO, -like, /Python/Lisp-inspired > JRuby is “just Ruby!” Started in 2002, open source, many contributors > Tom Enebo, Ola Bini, Marcin Mielzinsky, Nick Sieger, Bill Dortch, Vladimir Sizikov, MenTaLguY Aiming for compatibility with current Ruby version > Ruby 1.8.6 patchlevel 111 (114 was just released) Improvements on Ruby > Native threading, better performance, many libraries 7 JRuby 1.1 Major Features Full compiler for Ruby code to JVM interface bytecode Performance is many times better than C version New Regexp impl with encoding-agnostic features New rewritten IO subsystem to match Ruby/libc Reduced memory footprint Best compatibility level ever Ready for production use (and already being used)

8 The Script Bowl: Jython

Frank Wierzbicki Technical Lead, Jython Jython

Jython brings the Python language to the JVM. Python is a very mature language which was designed to be easy to pick up but powerful to use. Jython has full and nearly seamless integration into any Java and code. Jython can access many of the libraries and frameworks written in Python. Frank Wierzbicki has been a user of Jython since 1999, a committer since 2004, and the lead of Jython since 2006. He now works on Jython full time for Sun Microsystems.

2008 JavaOneSM Conference | java.sun.com/javaone | 10 The Script Bowl: Scala

Jorge Ortiz Community Member, Scala Scala … should not really be here  It’s not a “scripting language’’ in the usual sense. It’s a full blown programming language, which is • statically typed • functional and object-oriented • It also interoperates seamlessly with Java programming environment and has similar performance characteristics. • Scala means scalable language • Easy to build component abstractions • Easy to embed domain-specific languages It looks a bit like a scripting language, because of • type inference • flexible syntax • modern control abstractions

2008 JavaOneSM Conference | java.sun.com/javaone | 12 Why Scala? Modern, advanced , closures and pattern matching, traits and mixin composition • Native XML support • Abstractions for concurrency (actors, etc.) • lift • Comparable LoC to app • About half the LoC for testing • -style web apps with actors LAMP group at EPFL, Switzerland, led by Martin Odersky • Current javac, Java environment generics, ACM Fellow • Jorge Ortiz is a lift committer, blogs about Scala, and teaches “Cross-paradigm programming with Scala” at Stanford • Scala lift off – Saturday, May 10 (http://scalaliftoff.com)

2008 JavaOneSM Conference | java.sun.com/javaone | 13 The Script Bowl: Judges

Roberto Chinnici, Scriptologist Carol McDonald Ola Bini The Script Bowl: Rounds

Round 1: Text file processing Round 2: HTML Processing OR Text Generation OR JVM Machine Integration OR Web Framework Round 3: Open (free format round)