Charles Nutter responded to the responses in my last blog entry. Looks like he has answered my primary concern - that he’s being hired into the NetBeans team to work on NetBeans at the expense of JRuby, the first section, clears that up 100%:
CHARLES:Looks like I’m coming into this one a little late…but I’ll bite.
1. JRuby is secondary to NetBeans
Totally false. The principals at Sun…ALL the principals…have made it clear that our full-time responsibility is a solid JRuby 1.0 that can run the big popular Ruby apps (i.e. Rails, which necessitates Rake, IRB, RubyGems, Mongrel, and others). I’ve even gone as far as to say “I’d love to also help out language X” or “I’d also like to devote some cycles to working on C Ruby” and been told that JRuby should be my top priority. Time and time again, Sun folks are telling us and the general public that we’re being hired to work on JRuby first. Trust me, if it weren’t so, I’d tell you. I didn’t leave one fulltime job that took away from JRuby to join another.
more response below the fold…
The next section weighs in on a secondary conversation which can be summarized as people taking offense at my opinion that Groovy has some serious limitations after someone says that there is little reason for JRuby when we have Groovy. Anyway, that’s what triggers the first pragraph, but in the next few paragraphs he offers a good reasoning behing why the Java platform really needs a dynlang solution.
CHARLES: 2. JRuby vs Groovy, Rails vs Grails
You guys can be pretty single-minded sometimes.
Groovy is Groovy. Ruby is Ruby. I like Ruby. Some of you like Groovy. The same can be said for Rails. I can’t say (and certainly wouldn’t presume to say) Groovy is a failure or the wrong language any more than you can say Ruby is the wrong language. It’s about choice.
Think about it this way: In the UNIX world, there are two types of languages. C and everything else. The heavy lifting is done by C code…the kernel, the drivers, the libraries. In some cases, applications are also written in C…particularly where requirements demand a staticly-typed bare-metal language. In the other cases, folks use the other languages. Perl. Python. Tcl. Ruby. sh variants. Scads more. It’s not unreasonable to say that UNIX variants simply would not function without those “other languages” tying it all together.
Now look at Java. The Java platform provides a kernel, drivers, and libraries, all written in Java (or in some combination of Java and C/C++). For years, everyone (including Sun) has pushed that everything should be written in Java, and that only Java deserved to be supported on the JVM. So the story ended there, and for millions of Java developers, dynlangs remained interesting toys not to be used for real work.
I dare you to tell any UNIX admin or developer they can only ever use C for anything from now on. You better be wearing body armour.
When you look at the facts, the emphasis on Java alone has raised a half-generation of developers trying to build UNIX systems with only C…trying to build a house with a hammer. The very notion is absurd. It’s just as absurd to say there should be one true dynlang on the JVM, be it Groovy or Ruby or Python or anything else. We are craftsmen, if not artists, and no craftsman will claim that a single tool can do everything.
So I ask you these few questions:
1. Should there not be a Ruby implementation for Java?
2. Should we not try to make Rails run and integrate with as many Java frameworks as possible? (We already have extremely compelling tie-ins with JDBC and JMX…and the possibilities are endless)
3. After fighting for alternative languages to curry favor with the development community, does it make sense to claim our language is the one true choice? And the same question with alternative web frameworks?
Come now, friends. We’re smarter than that.
My Note: I have opinions, I’m not going to censor them because people don’t like them, and I welcome the fight. I use Groovy, but I don’t like it, and I don’t recommend it very highly. The project lead of Grails thinks it’s unfair, I’m not suprised. To you, the read, Apologies if that’s not an opinion you agree with. I’m not touting ruby as “the one true choice”, but I am definitely saying that Groovy has some limitations and I’d prefer my scripting language to be something like Ruby or Python, not a hybrid approach. If you disagree, then join the discussion.