The Artima Developer Community
Sponsored Link

Java Community News
Dynamic Languages on the JVM and the DLR

1 reply on 1 page. Most recent reply: Feb 5, 2008 9:33 AM by Jesse Kuhnert

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Frank Sommers

Posts: 2642
Nickname: fsommers
Registered: Jan, 2002

Dynamic Languages on the JVM and the DLR Posted: Feb 4, 2008 3:20 PM
Reply to this message Reply
John Rose, a key designer behind Sun's new Da Vinci Machine Project initiative, contrasts dynamic language support and optimization on the JVM and Microsoft's Dynamic Language Runtime.

Sun announced today the Da Vinci Machine Project, an effort aimed at creating JVM extensions to support dynamic languages as first-class JVM citizens. Writing about the growing interest in new programming languages on the two main runtimes—the JVM and Microsoft's CLR—Sun's John Rose remarks in Bravo for the Dynamic Runtime, that:

The DLR (with IronPython and IronRuby) is another evidence that we are in some sort of renaissance or resurgence of programming language design. For some reason, people are inventing programming languages again in a big way, expecting to get audiences, and sometimes getting them. I think the “some reason” is a combination of better tools and higher-level runtimes and cheaper CPU cycles and the open source movement.

Rose points out that many ideas currently being implemented on top of the DLR and the JVM have been around for decades, but that new circumstances favor a fresh look at old programming language notions:

These new conditions are combining in a deep and exciting way with some very old ideas. (I mean “very old” in the field of computing, dating back no more than fifty years.)...

Somehow the basic ideas were sketched early. I am thinking of distinctions of syntax (concrete, abstract, and “sugar”), data structures (including procedural, object-oriented, functional, symbolic, and relational), the idea of exploratory programming, full inter-conversion between program, data, and text, declarative versus imperative notations, lexical versus dynamic versus message-based scoping, maximal versus minimal versus extensible languages, closures, continuations, reflection, garbage collection, caching, lazy evaluation, and more.

In the rest of his blog post, Rose discusses the similarities and differences between dynamic language support on the JVM and the DLR:

[There is ] a striking case of parallel evolution between the DLR over the CLR on one hand and the Da Vinci Machine over the JVM on the other side... In my work on JVM dynamic invocation, I knew I was applying tried and true ideas from Smalltalk, Self, and CLOS, but I was encouraged to find that a colleague (and competitor) had been busy proving the practicality of those ideas.

I realized (as I said above) that systems built on Hotspot and other JVMs are sitting on a gold-mine of performance. While IronPython on the DLR has to do hard, brilliant work to “iron” out the wrinkles in the CLR JIT’s weak performance profile, the “irony” is that Hotspot has already been optimizing highly dynamic programs for almost a decade. JRuby is already tapping our gold mine of JIT optimizations, and showing benchmark performances even greater than the original C-coded version of Ruby. It can only get better from here.

What do you think of Sun's Da Vinci initiative?

Jesse Kuhnert

Posts: 24
Nickname: jkuhnert
Registered: Aug, 2006

Re: Dynamic Languages on the JVM and the DLR Posted: Feb 5, 2008 9:33 AM
Reply to this message Reply
Sounds awesome. It's really nice to see Sun throwing some support towards this area.

Flat View: This topic has 1 reply on 1 page
Topic: How Will You Use XML in Years To Come? Previous Topic   Next Topic Topic: Traits in Scala

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use