BT

Request: Sun, Drop Support for JRuby

by Craig Wickesser on Jan 16, 2008 |
Since the beginning of programming there have been debates between the validity and usefulness of one language to another.  Developers, managers, bloggers and the like continuously argue back and forth about why one language is better than another.  Back in September of 2006 Sun Microsystems, widely known for creating Java,  made a clear stance that it was going to support JRuby.  The news came as Sun announced they were hiring the two lead developers of the JRuby project, Charles Nutter and Thoams Enebo, to work full-time on the JRuby project.  As history has shown this proved to spark new debates about Sun's decision to back the project.

Recently, Rick Hightower posted his feelings about Sun's support of JRuby and requested,

Sun please drop JRuby support. It is a waste of time. Take that money and spend it on Groovy which has a compatible syntax to Java. Do the language evolution there and quit abusing Java syntax. Give us some decent Groovy IDE tools. Quit messing with Java so frequently.

Rick provides several reasons for his request to Sun, including that syntax matters,

Sun invests in Ruby via JRuby. DOH! Groovy looks a lot like Java. It is much easier to get started with it. The syntax does not make developers want to hurl.

In addition to syntax, Rick suggests that language popularity also be considered and he goes on to display a chart which shows Java being much more popular than Ruby.

Here is another reason not to invest heavily in Ruby. For the color blind: RUBY COMES IN DEAD LAST!

Ruby comes in dead last. If there was going to be a revolution, it would have happened already. Ruby is a little long in the tooth to finish this poorly. Don't you think?

Java is popular because it is like C++ and C. C++ is popular because it is like C. C# is popular because it is like Java. See a pattern. Follow Gosling's lead, and add some decent support for Groovy (code completion, re-factoring, etc.) When/if, the new language feature becomes main stream, then add it to Java (or not if it does not make sense).

With opinions and suggestions like that there has been quite a buzz on Rick's blog.  In fact, there are over 50 comments at the time of this writing.
The majority of the commenter's seem to believe that having a choice in programming languages is a good thing,

I believe that we should have choice, so asking jruby to cease the development for me just not fair. don't get me wrong, I still don't like jruby, and right now I use groovy, but let jruby and scala alive, choice is good.

Another response posted by Michael Galpin sheds light on the other side of the debate.  Specifically, Michael provides one reason why investing in Scala can be worthwhile.


There is great potential in languages with control abstraction. Scala is just such a language. It is possible to implement the actor model, a shared nothing, message based design for parallel computing, in Scala. This is not possible in Java. You can do it in Groovy, sort of, but it can be awkward. The reason for this is simple. If you have a object call method call closure (for example) the closure can return control back to the object in Scala, but only to the method in Groovy. The extra control structure coupling in Groovy makes some aspects of control abstraction awkward at best.

Another blogger, Ola Bini, also disagrees with Rick Hightower, stating

I believe that JRuby is important because it can run in the same environment as Java, but without the problems of Java.

Ola goes on to explain the problems that he believes exist in Java and in turn why JRuby is a better choice.  Additionally, Michael Galpin goes on to explain why Sun is interested in JRuby.

Sun knows what it takes to introduce a new language and platform and make it the de facto standard in the industry. It is very hard and expensive. They have done it once, and it cost them dearly. Java cannot stay at the top forever. They do not want to fight this battle again. However, if they can get the Rails on JRuby scenario described above to exist, then they could "stay on top" without having the fight all of the battles this time. They let the Rails community do it for them.


In addition to Sun standing behind JRuby, there has also been development on the NetBeans IDE to support JRuby.  However, it should be mentioned that there is active NetBeans development to support Groovy and Grails.  In fact, Martin Adamek provided a update to NetBeans support for Groovy and Grails on his blog.

So what are your thoughts, is there room on the JVM for various languages?  Should Sun stand behind Groovy and increase the development and tooling support for it?

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Is Ola's quote correct? by Alex Popescu

I haven't checked the original thread, but Ola's quote seems to quite weird/unclear: Rails on JRuby is a framework and has nothing to do with a discussion about languages. Unless, Ola wants to imply that Ruby syntax will catch up with all Java developers because there is a web framework available. This is IMO a very weak statement, and I'd be using it only if I'd be part of some marketing/sales department. On the other hand Rick's arguments are quite solid on this matter: part of the Java success was its similarity with the languages that were used by the majority of the developers at that moment.

./alex
--
.w( the_mindstorm )p.

PS: Please note that my comment may be considered biased :).

Agreed. by Thom Nichols

I always thought Groovy was a more logical choice, both due to syntax and compatibility. But Sun needs to sell it too, and Ruby is a lot easier to sell these days.

JRuby has the upper hand in performance vs. Groovy ATM, but that is the primary focus in Groovy development now. So I suspect both languages will be about equal soon enough. Charles Nutter has been very helpful working w/ the Groovy devs as well.

But really, it doesn't take formal endorsement from Sun to become popular.

Cough*Spring*Cough*Hibernate*Cough*chough

Re: Is Ola's quote correct? by Werner Schuster

@Alex:
I believe this touches on the old problem of research: do you only do product research or do you want to stray into area of basic research.

How has basic research helped Sun? Let's see: In the late 80's, early 90's their research labs developed Self, a prototype-based OOP language. While Self ain't used by anyone today, the VM technology that was developed for it (by Hoelzle, Unger and friends) was used in Strongtalk Smalltalk, which now powers Hotspot.

Also... Sun has a long history in other languages, as far as I remember them trying to push Tcl (or at least the Java version Jacl).

And when it comes to the market: forget those few similarities in syntax... it's about jumping on the right bandwagon at the right time - after all: we wouldn't be talking about Java now if the Web and ThinClient and Applet hype hadn't helped Java survive the 90's, when it was largely useless and slow. Ruby, right now, has the same kind of momentum behind it, so trying to jump on that is quite logical. (Not to mention that - from a practical point of view - Ruby's not tied to the JVM platform, which makes it palatable to everyone).

Now... if there's a language to support for the JVM, it's Scala, which adds another edge and isn't in the same league as Ruby and Groovy (which are both, theoretically, at a similar level of basic concepts).

And frankly... if you follow the JRuby team, they are very active in helping other JVM languages along as well (something that can't really be said of Groovy's team, which mostly seems interested in getting prissy at people who dare question anything Groovy-related).

Re: Is Ola's quote correct? by Werner Schuster

Er... @Alex: can't remember if you're involved with Groovy as well, but that last paragraph wasn't aimed in your direction;

BTW: where's the love for Beanshell by Werner Schuster

Just in case my previous comment sounded like I was defending Sun... why in the world was Javascript (Rhino) added as sample scripting language to Java 6?
Beanshell has been around nearly as long as Java, has REPL, looks _exactly_ like Java but still has some dynamic tricks up it's sleeve. By the same logic that Java developers can only handle languages that look like Java, shouldn't Beanshell have been the first language to be shipped with Java6?

garbage by Mark Carey

This stuff is annoying. It's like a bunch of children saying "My dad is better than your dad" "Oh ya well my dad has a bazooka and will blow up your dad." "Oh ya..."

Ruby, Jruby, Groovy, C#, Python, Perl, [insert language you find helpful here] they all have their place. What ever happened to "Right Tool For the Job"?

The total lack of professionalism in the blogosphere on these types of issues is frustrating and distracts from those of use who enjoy using it as a learning tool.

Re: garbage by Graeme Rocher

@Mark

To be fair the original article did not originate from someone in either the Groovy or JRuby communities so its hardly "My dad is better...". It is someone expressing an opinion on a blog.

@Werner

Yes Alex is involved with Groovy and your comments were probably more targeted at someone like me. Groovy has had quite a roller coaster ride of criticism and hype, you either love it or hate it. Fortunately more and more people or enjoying it.

Those who hate Groovy sometimes express that on blogs and can spread FUD about the language which we try and correct. If we were part of the Ruby community we would be applauded as doing it in the name of "opinionated software" and all that jazz, but because we're not we're getting "prissy at people". Go figure?

Sun's priorities by Zeev B

I'm also confused by Sun's priorities. Why did Sun push Ruby/JRuby instead of Groovy which is more Java-like in syntax and even has a JSR in place? or why not showing more support to Jython which was one of the first popular dynamic language implementations on the JVM? Python and Java also share the same principals of explicit code and community process. Python is also used in Sun itself, but still there is no proper support for it in the new Netbeans platform.

It seems to me that Sun was driven by the hype generated around RoR by some tech world celebrities. It's ironic that with all this hype around Ruby and RoR - in 2007 there was a drop in the popularity of Ruby and a rise in the popularity of Python.

No that should not by Michael Neale

And a stupid headline. Thanks for turning InfoQ into TSSv2.

Rails and Ruby by Rick Hightower

Although not taken out of context, the quotes don't best represent the purpose and intent of my blog post.

The purpose of the blog entry was to vent at the constant pronouncements by the "Ruby Rulez, Java sucks!" crowd, and the Java is dead crowd. It was more of a long rant than a detailed language comparison.

Like many developers, I believe in programming language choice and such. In fact in 1998, I wrote a series on programming languages that ran in the JVM for the JDJ (being an early adopter of Jython, I wrote a book on Jython as well). I am all about choice and learning new languages to broaden your skill set. I have been paid to program in C, C++, Java, Python, Perl, Delphi, etc.

In the enterprise language space, Ruby comes dead last. In the LAMP world, Ruby comes dead last. Yet there was the constant Ruby cheer leading squad on Jroller which is what the post was really about.

According the Tiobe report, Python was the fastest growing programming language last year. Python is the most used alternative programming language used in the JVM. Yet Sun supports JRuby not Groovy or Jython (which more people use). Why? (JRuby comes behind Groovy and Jython)

The Groovy support in most IDEs (except for apparently IDEA) is not so great. Why not invest in the syntax that people use? (Groovy being more similar to Java.) Groovy seems like more of a sure bet than JRuby does.

I can't say I will never program in JRuby or Ruby just that they are not high on my priority list.

Re: garbage by Rick Hightower

This stuff is annoying. It's like a bunch of children saying "My dad is better than your dad" "Oh ya well my dad has a bazooka and will blow up your dad." "Oh ya..."

Ruby, Jruby, Groovy, C#, Python, Perl, [insert language you find helpful here] they all have their place. What ever happened to "Right Tool For the Job"?

The total lack of professionalism in the blogosphere on these types of issues is frustrating and distracts from those of use who enjoy using it as a learning tool.


It sure is annoying. Yet jroller was getting bombarded with it daily.

I use and enjoy Java every day. I am just a little sick of the "Ruby Won, Java sucks!" crowd, and the constant reports of Java's death. I could never see where Ruby fit (some folks do). Python was older and more mature so if you were going to swing the dynamic language way... well why not Python? Java fit the enterprise application space quite well. Apparently based on indeed and tiobe, a lot of folks agreed with me.

Yet day after day on Jroller, there was the constant beat of Ruby pimple pimpers (Ruby rulez; Java sucks). It is not about being closed minded about only using Java. It is really about setting the record straight about Ruby and its relative importance in the grand scheme of things despite the hype. I have nothing against Ruby per se--I just prefer Java, Groovy and Python. Ruby usage is down not up despite the constant hype.

If you read my post, you will see that I am very interesting in learning new tools and languages just not a big fan of RoR and even less so of the RoR pimple pimpers on jroller.

For the record... my dad does not own a bazooka.

Re: Is Ola's quote correct? by Alex Popescu


And when it comes to the market: forget those few similarities in syntax... it's about jumping on the right bandwagon at the right time - after all: we wouldn't be talking about Java now if the Web and ThinClient and Applet hype hadn't helped Java survive the 90's, when it was largely useless and slow. Ruby, right now, has the same kind of momentum behind it, so trying to jump on that is quite logical. (Not to mention that - from a practical point of view - Ruby's not tied to the JVM platform, which makes it palatable to everyone).


Well, my impression is that Ruby is not the only one in this category. And if Sun wants to get involved with other languages I think they are missing quite a few. Just look at what Microsoft is doing in this direction: they are adding support for a whole range of different languages on top of their DLR. I do think that that is the right approach.


Now... if there's a language to support for the JVM, it's Scala, which adds another edge and isn't in the same league as Ruby and Groovy (which are both, theoretically, at a similar level of basic concepts).


I do think this is your opinion and I respect it. However, I don't have to agree with it :-).

./alex
--
.w( the_mindstorm )p.

The majority of the commenter's seem to believe that having a choice... by Rick Hightower

RE: The majority of the commenter's seem to believe that having a choice in programming languages is a good thing

As do I. As do we all.

It seems majority of the commenters were from the Haskell, JRuby and Scala mailing list so not sure if they are good representitives of the whole Java community.

BTW I believe in choice just not hype. I will likely look into Scala further at some point.

Good idea... by Tugdual Grall

+1 with Rick....

First of all, I do love RubyOnRails framework a lot. But I have to say that as a JavaEE developer I have been very surprised by Sun support of JRuby, especially with the nice work that is done with Groovy and Grails.

Hoping that people that thinks that JRuby is not a good thing happening to Java & JavaEE will comment and alert Sun about our point of view.. After all we are daily user of Java and probably the best advocates of it.

Re: Is Ola's quote correct? by Ola Bini

Uhm. As far as I can see, the only quote from me in the article (and also the only one attributed to me) is this:
"I believe that JRuby is important because it can run in the same environment as Java, but without the problems of Java."
The next quote is from Michael Galpin.

Re: Is Ola's quote correct? by Alex Popescu

That's it. I was quite sure it wasn't you :).

./alex
--
.w( the_mindstorm )p.
Alexandru Popescu
Senior Software Eng.
InfoQ Techlead/Co-founder

New year and still same old debates... by Sebastien Auvray

That's so boring to read every year same blog posts over and over from grails/groovy guys crying that Sun didn't choose them...

Re: New year and still same old debates... by Guillaume Laforge

That's so boring to read every year same blog posts over and over from grails/groovy guys crying that Sun didn't choose them...


Come one, Sébastien, nobody of the Groovy or Grails team said anything like that at all! AFAIK, Rick Hightower isn't part of the Groovy and Grails teams. And none of the comments I've seen so far from either of these teams have said anything like that at all.

Sébastien, you're spreading FUD!

Re: New year and still same old debates... by Rick Hightower

Sebastian,

I am not part of the Groovy and Grails team. I've decided recently to start using Groovy on a side project. I am a "rank and file" Java developer. I work with JPA, Java, JSF, Spring and Spring MVC.

I was waiting on two things from Groovy: decent IDE support, and support for Java 5 features. Groovy has excellent IDE support from IDEA and Java enums etc were added in Groovy 1.5. Nothing stops me from using Groovy.

I am learning Groovy. I am not an expert or much of an advocate. It will be six months to a year before I know if it is something I will use on a daily basis.

--Rick Hightower

Re: New year and still same old debates... by Rick Hightower

Let me be clear. I have a special place in my heart for Ruby brought on by scores of Ruby teleevagelists on Jroller.

If I had to choose, I would go for better Java integration and tool support for Groovy rather than focusing on JRuby. Groovy has all of the features of Ruby but in a more Java friendly syntax. Groovy is a JSR.

Then I would pick Python via Jython since is it a) more popular b) more mature c) has all the features of JRuby d) already most popular alternative language on the JVM besides Java (has been most popular alternative language for 10 years!)

Then I would pick Scala since it provides great langague feature that are not found anywhere else and it augments what Java bring to the table.

Then I would pick Ecmacscript 4 via the next Rhino since it is a) more popular b) people actually use it c) it has great langague features in a very commonly used syntax d) looks a lot closer to Java than traditional JavaScript did e) looks a lot like ActionScript/Flex. I've heard EcmaScript 4 has all of the features of Ruby but in a more Java friendly syntax.

Then I would pick PHP since it is a) more popular b) people actually use it.

Then if I still had some money, I would donate it charity and leave Ruby out in the cold like the match stick girl.

Re: New year and still same old debates... by John Shea

Perhaps Sun chose to support JRuby precisely because it IS different, and because Ruby comes from a very different community.

Practically every company in history has lost to an initially smaller competitor because they:
1. refused to admit that the competitor is worth considering as a competitor
2. they see the potential market as too small
3. the culture of the organisation did not allow different cultures/tech to grow and prosper within the organisation.
(see works by Clayton Christensen)

Its hard to envisage a discrete competitor in this context, but if there is a move away from Java (and Java like tech on the JVM), and Sun makes no effort to change or adapt, then they lose all the same.
I can imagine the employees in this (nebulous) small (non) competitor saying "Go Rick, go!".

None the less Rick's concerns are valid in terms of what he considers his tribe and a threat to his tribe (Java developers).
I think Ola (and others) has a point re the reduction of the significance of big languages, and in general i think its a good thing - more variety more competition, more innovation, but it sure brings tribalism to the fore (eg over zealous Ruby evangelists, and equally zealous defenders of the one true faith(s)).

Re: New year and still same old debates... by Rick Hightower

Actually John, I thought about this same thing. I assume Sun is supporting Ruby as a reaction to Ruby/Rails percieved popularity and hype. Although, I believe Ruby and Rails has had an impact on Java development and SW development in general. However, the hype machine behind Ruby/Rails is mostly hot air.

There is no move away from Java. And if there is, it is not because of the Ruby camp. The Ruby/Rails revolution is mostly in the minds of Ruby/Rails community who continue to ignore any study that shows Ruby/Rails is not a new revolution.

Ruby/Rails is last in the LAMP world and does not even make a dent in the enterprise space.

Groovy and Jython seem like much better choices to invest in for dynamic languages in the JVM.

Ruby/Rails has put more focus on dynamic languages and the big winner has been Python and Groovy. Yet all of them combined are dust on the scale when compared to C# and Java.

One wonders what Clayton Christensen says about chasing percieved threats that never materialize and the waste of resources. Besides wouldn't coming up with an better alternative to Ruby/Rails that fits the Java community better be a more apropos choice than kowtowing to the Ruby community and its cadre of evagelists.

I am no defender of the true developer faith. I am not zealous about Java. I do like it.

Re: Agreed. by Mihai Campean

Yes, I also agree that Groovy is a more logical choice and I would like to see more support for it coming from the big players in the industry, but I also believe that having choices is good so I do not blame Sun for investing in JRuby, but I would like to see them put at least the same effort to elevate Groovy for the simple reason that it is more related to Java than Ruby is. The Java platform is very powerful and I believe that having more choices for various languages that work on it will make it even more powerful in the future.
Having more choices means that one can use whatever suits them best for the task at hand and all would integrate nicely on the same platform, and I think that is real power.

Re: Dis Agreed. by Shahzad Ismail

You all miss the point!

Groovy and Jython were already very advanced/mature in their development when SUN supported JRuby.
Groovy was nearing 1.0 release but the community still needed to use it to judge its popularity.
Django was very early in its development and again its adoption needed to be looked at. Besides Jython still doesn't work with Django.

On the other hand, even considering the ever-increasing popularity of RoR, JRuby project was still way too immature to have ever-reached 1.0 release in a year's time w/o SUN support. The move from SUN was really commendable as it has shown its fruits.

Congrats Ola, Charles and Thomas.

RoR popularity decreasing by Shahzad Ismail

I'm sure the industry veterans have judged this correctly.

I have just experimented with RoR a couple of times and I liked it.
However, IMO Ruby is missing some key aspects to be a successor of Java like,
language constructs for multi-threading as found in Erlang
and
Improved Exception handling mechanism.

I've followed the progress of Ruby as a platform for the last 3 years. I must say that 2007 was year in which the most work on Ruby as a platform was done; rubinius, mongrel, RSpec, XRuby, JRuby, IronRuby, etc matured.

Again, I would argue that despite all the open-sourcers heartily support for Ruby, it is still an orphan when it comes to corporate support.
By orphan I mean an orphan badder than Python(Google) and PHP(IBM).

I don't know if Scala is the ans but I'm sure interested in looking at it.

Re: RoR popularity decreasing by Sergio Oliveira

RoR and Ruby hype are fading away as you pointed out. Ruby is cool. Ruby on Rails is the way to go, but Java is better. Why?

Because you have Scala (forget Groovy!) and because you have Mentawai.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

26 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT