JavaOne

EnfranchisedMind's Adventures at JavaOne 

Feel of Scala 1

Scala's intention is to get rid of the accidental complexity that is inherent in Java. Scala both adds to and *subtracts from* Java, and results in binary compatibility. "If Project Coin is adding a few new features, Scala is the $100 bill project." Before deciding on Scala, he considered JRuby, Jython, and Groovy, but he was reluctant to give up static typing. He appreciated open classes, a lack of type annotations, and the ability to share objects without a common supertype.

Loading mentions Retweet

Comments [0]

RESULTS

Came down to Scala vs. Groovy, and Groovy won the totally arbitrary and unscientific shouting match!

Loading mentions Retweet

Comments [0]

JRuby Community Features

Asserts that JRuby is a fully involved part of the Ruby community. Showed the number of Ruby conferences kicking around, along with the books and alternative Ruby implementations. Pointed to IDE support as a key argument, and noted over 5k gems involved and how easy it is to use gems. Also pushed Swing and SWT support. Hit on Ruby on Rails (including Engine Yard's new support) and Chronic natural language processing.

Loading mentions Retweet

Comments [0]

Scala Community Feature

"I see it as a great enterprise language." Argues that there's a bigger gap between FP and
RDBMS than OO and RDBMS. Goes into CouchDB (which certainly is a lot closer to the functional way of doing things --ed). Defined a method inline (one method created/scoped inside another). Showed that Scala can be used to write queries for CouchDB (instead of CouchDB's default JavaScript requirement).

Loading mentions Retweet

Comments [0]

Clojure Community Feature

"People look at Clojure and lisp and say, 'Why does it have to be that way'?" [...] "All of the code is data, and things take and return data." Showing functional templating, which can take and transform functions itself. Showed that code could go in and out of maps very quickly. "No classes, no DOMs, no guck!" Showed how database-backed web app can be done on a screen. "If you want learn to program differently -- if you want to learn something DIFFERENT -- try Clojure."

Loading mentions Retweet

Comments [0]

Groovy Community Features

Guilliaume started in Grails as proof Groovy is an ecosystem, and then hit up Griffon and Gradle. For the demo, he showed Griffon's SwingPad IDE. Then used Griffon to script OpenGL and do a Twitter globe for #JavaOne.

Loading mentions Retweet

Comments [0]

Jython Community Feature Round

Jython is part of the greater Python community, and is fully accepted as a member, including Jython committers being Python committers. Showed a Jython IDE for artists -- these artists (out of MIT) render interactive computer videos. http://www.openendedgroup.com/index.php/artworks/a-to-b/

Loading mentions Retweet

Comments [0]

Language Feature Judge Comments

Two competitions: alternatives to Java (JRuby/Jython) vs. successor to Java (Scala/Groovy). And then there's Clojure.

Loading mentions Retweet

Comments [0]

JRuby Language Features at Scripting Bowl

Thomas Enebo is representing JRuby. He went into a physics engine in JRuby and demoed a little video game. He went straight into DSL land to represent the character in the games. And then he compared that to Java code accomplishing the same thing (suffice to say, it's short). Also demonstrated adding units onto the Numeric class by opening it, iterating over some labels, and programmaticaly define everything, which does look awfully pretty.

Loading mentions Retweet

Comments [0]

Scala in Scripting Bowl

Dick Wall (of JavaPosse) is representing Scala. His sale pitch is that Scala is what Java is trying to evolve into (via Java7/Coin). Went into pattern matching right away, starting with a switch/case like usage, and then moved over into exception handling:
try { ... } catch {
  case e:SQLException =>
  case e:MalformedUrlException =>
}
 
Then went into type inference. Interestingly, he showed that 3 and 4.0 type inference becomes AnyVal, not a type error. ARM block (IDisposable in C#) was also pushed.

Loading mentions Retweet

Comments [0]