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@xxxxxxxxxx> > 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 -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list