The JVM is part of a world wide conversation

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at:

I was asking myself, why am I moving away from Ruby and PHP? Why am I drawn to the world of the JVM? I realize I agree with Zed Shaw: Rails is a ghetto. PHP too. These communities look inward. In 2012, the JVM is an important part of a worldwide conversation. The Rails community made some contributions to that conversation back in 2004-2007. Bruce Eckel did a good job of summarizing what Rails offered: simplicity. The rest of the world took note. And at least one classic of computer science was written using only Ruby for its examples. But since then the Ruby community has been contributing less. The average quality of a Rails programmer is approaching that of a PHP programmer. I look around the world and ask “Who is driving the conversation right now?” Many language designers are absorbing new ideas from Scala and Clojure, both of which are on the JVM. The most interesting new languages are functional, and they are studying what’s happening now in the JVM eco-system. I find that when I pick up the PickAxe book, I feel like I’m reading about the personal preferences of Matz, whereas when I pick up a Clojure book, I am not reading about Rich Hickey’s preferences, so much as I am reading a contribution to a wider conversation about functional programming and the future of computers. And right now, that wider conversation is important to me.

(Update: Joshua Go, on, reminds me of JRuby. I think JRuby advances, rather than contradicts, the point I am making. Nowadays, even the cutting edge of Ruby is happening on the JVM. And Tony Arcieri makes it sound like many Ruby programmers are ignorant of the problems now facing Ruby:

Dr. Nic had a fairly simple message: when performance matters, build multithreaded programs on JRuby (also: stop using EventMachine). Now granted he was working the company that was subsidizing JRuby development at the time, but I didn’t, and I for one strongly agreed with him. Not many other people in the room did. The talk seemed to be met with a lot of incredulity.

“I thought this was going to be a talk on EventMachine!” said That Guy. Perhaps what That Guy missed was that Dr. Nic had hosted EventMachineConf as a subconference of RailsConf a few months before. And now Dr. Nic was saying don’t use EventMachine, use threads. And Dr. Nic is certainly not the only one who has come to this conclusion.

The cycle has come full circle now. The above quotes reminds me of what Bruce Eckel wrote in 2005:

The Java hyper-enthusiasts have left the building, leaving a significant contingent of Java programmers behind, blinking in the bright lights without the constant drumbeat of boosterism. But the majority of programmers, who have been relatively quiet all this time, always knew that Java is a combination of strengths and weaknesses. These folks are not left with any feelings of surprise, but instead they welcome the silence, because it’s easier to think and work. Where did the hyper-enthusiasts go? To Ruby, apparently. This is chronicled in Bruce Tate’s book “Beyond Java,” which should probably be titled “Why Ruby is Better than Java.”

But now Ruby has hit the limits of what can be done assuming one CPU, so it needs concurrency, so the conversation moves back to the JVM. And I suspect this will be true for the next few years: when programmers become frustrated with the limits of Ruby, the community will answer: it is time to move to JRuby. The JVM is the future of Ruby, for the foreseeable future.)