Firefox and Moonlight (Mono) "Free Software" Status?

Richard W.M. Jones rjones at redhat.com
Sat Jun 7 10:43:53 UTC 2008


On Fri, Jun 06, 2008 at 11:34:04AM -0400, Colin Walters wrote:
> On Fri, Jun 6, 2008 at 4:11 AM, Richard W.M. Jones <rjones at redhat.com>
> wrote:
> > One major reason is that it allows languages to be mixed and to call
> > easily from one language to another.  Free software dropped the ball
> > on this (Parrot), and Mono/.Net is the only widely available
> > implementation of this idea.
> 
> It was *marketed* as such, but in fact many different languages have run on
> the JVM for a long time:
> http://www.robert-tolksdorf.de/vmlanguages.html
> Some of them date to 1996.

This is getting pretty tedious.  In brief, the JVM has design issues
that make implementing non-Java-like languages hard and/or slow.  The
particular issues are: lack of good support for closures, lack of
polymorphic types (affects dynamically typed languages in particular,
but also functional languages), maximum method size, inability to
handle tail call optimization in mutually recursive functions (a
serious concern in functional languages), large overhead per object
and lack of unboxing, hideous native code interface, lack of dynamic
method invocation, lack of eval, lack of efficient tuples, lack of
continuations (eg for Scheme).  Some of these are fixed in JSRs, but
the process is incredibly slow and I'm not aware of any fixes that
actually ship in a JVM.

Of course the JVM is Turing complete, so it is possible to implement
any programming language on the JVM, but that doesn't necessarily mean
it's going to be fast or good or allow you to practically call from
any language to any language.

> Practically speaking there are many modern languages available such as
> Objective Caml: http://ocamljava.x9c.fr/

... if you give up all the native OCaml libraries, duck typing,
multiple inheritence, 64 bit ints, immediate objects, and a bunch of
other stuff.

> Ruby: http://jruby.codehaus.org/
> Python: http://jython.org/Project/

Described here as "a slower slightly more out of date version of
Python, with fewer libraries" / "At this moment, writing libraries in
Jython that would be in an attempt to make them usable to Jruby and
Groovy folks seems like a fools errand."
http://compoundthinking.com/blog/index.php/2008/02/27/jvm-as-platform-for-dynamic-languages/

> Scala: http://www.scala-lang.org/

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top




More information about the fedora-devel-list mailing list