From: Charles Oliver Nutter Date: 2012-05-19T22:00:03+09:00 Subject: Re: break down of differences between interpreters? On Sun, May 6, 2012 at 6:13 AM, ruby gem wrote: > All I can ever find is performance comparisons, but it must be more than > just this or else why wouldn't everyone use Jruby? Would someone who > knows layout the differences between the major interpreters? Why > shouldn't I always use Jruby considering it has so much better > performance? What are the advantages and disadvantages of each > interpreter? I'll give you the reasons people tell us they choose (and do not choose) JRuby. Pro: * JVM features ** Solid parallelism and concurrency libraries that have been tested for many years ** Excellent performance through JIT and the new invokedynamic features ** The best GCs in the world ** Wide selection of libraries that are also 100% managed, and don't impose restrictions like C extensions do ** Portability - JRuby works on any platform where the JVM is available * Existing JVM infrastructure * Android applications * Large datasets (JVM handles much better than e.g. MRI) * Straight-line performance (JRuby should generally be the fastest when running on JRuby 1.7 + Java 7 JVM) Con: * Slow startup (partially JVM's fault and partially our fault...we continuously improve here). * C extension support (we have partial support, but it's not being maintained). * Process size (we are larger, but you can often do more than MRI without needing multiple processes). * Many POSIX features from Ruby aren't or can't be implemented (fork, low-level sockets, process control). * Some people just hate Java or the JVM and anything associated with them. We've never had anyone say they're not using JRuby because our licenses. - Charlie