Recently by Bryan Weber
By far the most entertaining and most thought provoking presentation of the JVM language summit was given by Erik Meijer (and by a large margin). Unfortunately, it was not recorded and will not be on InfoQ like many of the other presentations as far as I know. His talk was called Fundamentalist Functional Programming which is basically his way of advocating pure functional languages (read: Haskell although he did mention Clean as well). He argued that any impure functional language is NOT a functional language. Either you are pure or you happen to have some features of functional programming languages. And he did this in a wildly entertaining manner. I've personally been looking at Haskell recently so this talk was very timely and informative. How often do you see a presentation where someone suggests that Computer Science has gone in completely the wrong direction the past 50 years and needs to get back on track and has some ammo to back it up? I think many people in the audience found it entertaining, but not really practical. To that I would ask, why not? How many times a day do you say to yourself "there must be a better way?" Maybe this would be a quantum leap? I'm still exploring Haskell and I think that it might not be the solution, but it might inspire a better way. I've found many people on the Haskell IRC channel (which is extremely active) to be very helpful, but the documentation about Haskell will scare away most programmers. The concepts aren't hard, but if you read the wikibook you will likely come away with the impression that only PhDs in Mathematics can learn Haskell. Real World Hasekll seems better, but still lacks that killer intro that will grab the attention of the masses (and maybe they don't want the masses...). Erik's presentation was passionate and you could tell that he really believes that pure functional programming is the future.
Cliff Click's demo of Azul Systems tool was very, very impressive (and only about a dozen people saw it). His presentation was also good. This type of low level HotSpot support is necessary for language designers who are serious about performance and $40k seemed reasonable for a machine if you get Cliff's expertise along with it!
In addition to some C# by Mads, Allison Randal spoke about the Parrot VM. I was happy to see that Sun had the openness to invite Microsoft and Parrot to take part. I think that it really added to the quality of the summit. Google had some folks present, but didn't really talk about how they use the JVM. Next year, I would love to see some more activity from Google.
Parrot is a register based VM which makes some things (ie continuations) easier to implement, but I think that it might be quite some time before the performance can match the HotSpot JVM for most things. Parrot has been around for 7 years so they just have not had as much time (and money?) to devote to making it as mature as the JVM.
Thinking about going to the JVM language summit next year? I highly recommend the event, but it is a small group of highly experienced language designers. So the following words should not scare you: invariant, covariance, type erasure, continuations, tail call optimization, etc. You probably also should have some experience implementing your own language and/or working extensively at the byte code level. It will also help to be familiar with the symbols used to describe type systems. I don't mean to scare anyone away, but I recommend that you make an honest assessment if the event is right for you. Otherwise you might have a good time but not be able to take part in the conversations. If this is your thing, Microsoft also has a Lang.NET conference you might want to check out.
My only suggestion to Sun: use a room with a screen that is elevated a little more so the entire room can see the full screen.
Summary
- LINQ - Functional programming features in C#.
- Kawa - Scheme without full continuations.
- Fundamentalist Functional Programming - Turn your world upside down presentation. Described in detail above.
- NetRexx - An old IBM scripting language that has been open sourced.
- Scalify - Library to take Java code as input and produce Scala as output. Looking for others to join to add Java -> "other JVM language" implementations as well.
- Closures and the JVM - Mostly discussed language interoperability on the JVM and the problems languages face when trying to use libraries written in other languages (with Java being somewhat of an exception). If you haven't heard by now, Neal is also working for Microsoft.
- Bytecodes for fast JVMs - Showed low level metrics for Clojure, JRuby and Jython. Cliff was able to identify areas where teams thought that something was being inlined, but in fact was not.
- Jatha Common Lisp - What Ola Bini worked on before JRuby.
- Parrot VM - Register based VM.
Many thanks to Sun for hosting a spectacular event. In particular, thank you John Rose for taking the time on several occasions to chat. I know you were very busy.
Well, how often do you get to speak to an employee of Sun, Google and Microsoft in the same day? And not just any employee, but some of their best and brightest? Needless to say, day 2 was loads of fun. And I got to ask Erik Meijer exactly how many tie-dye shirts does he own... I've always wondered that.
Overall impressions: many people here are "into" functional programming languages. Concurrency is another big topic. This conference has just the right blend of academia and "real world" for me. It is very technical, but not so full of Greek letters that your head hurts.
- Gosling keynote - History of Java.
- JavaFX - How they use javac to compile JavaFX.
- JRuby - How they have blazed the trail for dynamic languages on the JVM.
- ASM - The library for byte code manipulation.
- PHP - Not totally sure why, but they are working on it. Overall, I think its good to have as many mainstream languages on the JVM as possible.
- MOP - Metaobject protocol for passing objects between dynamic languages on the JVM. Like the idea, not sure sure about the implementation.
- invokedynamic backport - I can't get enough details about invokedynamic.
- Clojure - Functional language on the JVM. The highlight of the day for me. It's not 100% what I would like to see, but it is the closest yet.
- Python gradual typing - Typing notation makes your head spin, but a very good talk.
- Jython - Sort of opposite situation from the CLR/DLR. On the DLR IronPython came before IronRuby and Ruby.NET and really blazed the trail. On the JVM Jython has been around, but they seem to be in a complete re-write and are really leveraging a lot from JRuby (and that is very, very good).
Final observation: I'm very impressed with how approachable the 80 or so odd people here are, especially the Sun employees. Granted they are the hosts, but they have really taken their time to interact with the participants (as they should because I really don't think that they would want to alienate this crowd in particular!).

