Sun Hires JRuby Developers: How Much To Read Into This?

Sun has hired Charles Oliver Nutter and Thomas Enebo, the two core JRuby developers with the charge of bringing JRuby to fruition.

I’ve held for a while now that the crucial step for Ruby to cross the chasm and become an “early majority” language was hosting / 100% transparent interop with one or both of the CLR and the JVM.

A word of caution: Jim Hugunin was hired by Microsoft two years ago and only now is IronPython a 1.0 release. Probably Nutter and Enebo will face some of the same issues within Sun that Hugunin has faced within Microsoft: in addition to working on the parser and code generation and so forth, there’ll be (undoubtedly engrossing) involvement at the platform level, interaction with the tool team(s), etc. My guess is that the tool-support complexities will be a little less complex (Visual Studio being so central to any Microsoft development system) and the platform complexities a little harder (evolving the Java platform being more democratic / bureaucratic).

A second word of caution: the single-core era stopped short of eliminating the problems with “everything is an object.” Today, we know about how fast a single processor will run. There will be incremental improvements, but the speed of a single thread of processing in 2016 is probably not going to be even twice as fast as a single thread of processing today. And this topping out of the Moore’s Law “free lunch” conflicts with the premise that all types should be abstracted into objects. The million-fold penalty of accessing main memory versus accessing a register or an in-cache value is enough to introduce human-noticeable lag when applied to arrays of just several thousand values. Of course that does not disqualify languages with heap-based numerical values from the large majority of programming tasks. But neither is it true that we can simply put aside the question because calculations are “fast enough.”

There’s still definitely a performance question relating to not just the performance of numerical values but the implementation of some advanced operations (continuations) within the managed platform’s virtual machines. Meanwhile, of course, the physical machines are moving towards the multicore and manycore eras, which will rewrite all the rules on performance.

Oh! Oh! And Ruby still needs the freaking Smalltalk browser and persistent workspace!