From: Ken Bloom Date: 2006-09-11T13:15:29+09:00 Subject: Re: Sun hires JRuby developers. On Mon, 11 Sep 2006 12:52:28 +0900, James Moore wrote: >> -----Original Message----- >> Of course I'm the wide-eyed innocent new employee, but there really >> seems to be a lot of excitement about the JRuby move and about dynamic >> languages in general at Sun. > > So I have to ask - is JRuby a good thing for the Ruby community, as opposed > to the Java community? To me - admittedly, someone without a huge depth of > Ruby experience - it's not an obvious good idea. > > The JVM is great for running client apps. On the server side it's less than > useful; it's just another layer on top of the operating system. Servers > have a well-understood interface, and putting something like .Net or the JVM > on them just gets in the way. Sure, it may be handy for some very strange > edge cases, but Ruby runs on all the environments that the mainstream cares > about - Unix variants. (OK, and you can run Ruby on Windows, but almost no > one will for production servers.) > > I'm guessing that for embedded devices Ruby isn't going to be a player, but > maybe I'm wrong and JRuby on something like a phone would be a huge plus. > > Adding a JVM layer means you can interface to Java libraries, sure, but how > important is that? Most of the time things provide interfaces in C, and > Ruby will accumulate ways of using those. Seems like a time-limited problem > here that would lock Ruby into a Java-centric world. > > Running on the JVM will mean that anything coded in C won't run, no? > Libraries that need screaming performance for particular carefully chosen > optimized bits aren't going to work with the JVM, and it strikes me as > bizarre to code in Java for performance. These are old issues about Java performance. The Java VM has driven a lot of research into faster VM's, and modern VM's use JIT compilation, which frankly does a better job of ammortizing the cost of compilation over time on a server (where the same VM runs the same code for a long time) than on a client. Besides, even if this comparison is true, that's only when comparing it to C or C++. When comparing to Ruby, you have to realize that Ruby is interpreted, and isn't even compiled to byte code (the interpreter lugs the program's parse tree around) so Ruby can get a big speedup if it's compiled into Java bytecode. I hope this is what they're doing, but maybe if they're not there yet, then Sun's support can help them get there faster. --Ken Bloom -- Ken Bloom. PhD candidate. Linguistic Cognition Laboratory. Department of Computer Science. Illinois Institute of Technology. http://www.iit.edu/~kbloom1/