From: Charles Oliver Nutter Date: 2012-05-19T21:44:56+09:00 Subject: Re: break down of differences between interpreters? On Sun, May 6, 2012 at 11:20 AM, Chad Perrin wrote: > * Licensing concerns may come into play.  Rubinius, MIR/YARV, and >  (surprisingly) IronRuby are all distributed under more permissive >  licenses than JRuby these days.  This might turn out to be important >  for some deployment scenarios. This is false. JRuby is licensed under three licenses, and you can pick whichever you want to use: GPL, LGPL, and CPL. The CPL is a more permissive license like Apache or BSD. http://www.opensource.org/licenses/cpl1.0 > * The fact the JRE is tied to Oracle now, and Oracle has been going >  around rattling its litigation saber at anyone dealing with alternate >  Java implementations makes a lot of people wary about using the JRE >  where it is not strictly necessary. Oracle is going after *one* alternative Java implementation (Android, which Google tries to sell as not being Java) largely because they (Oracle) failed to successfully come up with a way to recreate mobile Java and want a piece of this pie. It will likely come to almost nothing in the courts. Sun/Oracle has also stated a few times that Android could or could have used OpenJDK, and they encourage forking and experimentation on top of the GPL-based OpenJDK codebase. This isn't a fight about the JRE...it's just politics and greed. > * Rubyists in general tend to target MRI/YARV first and foremost, and >  other implementations are often treated as second-class citizens for >  purposes of compatibility testing.  My impression is that Rubinius will >  have the least problem with this long-term, because it will probably be >  the closest thing to MRI/YARV for purposes of compatibility.  JRuby is >  an apple that falls rather farther from the tree than that. The fact that JRuby falls far from the tree is a good thing. Implementations dependent on C extensions are going to always have that cross to bear, for example, dealing with badly-behaving C code, reduced parallelism, and GC complications. JRuby + JVM language-based extensions have no such limitations. - Charlie