Social Question

Why do Rails developers hate Java so much?

It seems that any time I look at a blog that talks about Rails or Ruby for that matter there is always someone that has to bash Java. I feel that Rubyists and especially Rails developers have horrible attitudes and become purists. This is striking to me especially when I speak to these people and they don’t know basic programming constructs and principles. RoR has definitely lowered the bar for entry into programming, but that’s not necessarily a good thing. I use Java all the time and I think its great! Its fast, clean, and has a ton of documentation out there. It’s good enough for Google, Amazon, and the like—why hate it so much? I mean I like Rails but I hate the community. I just don’t understand the animosity… can anyone explain why Ruby and Rails developers feel they are so far superior?

19 Answers

Hating any tool makes no sense. You can’t hate tools, you can hate users or abusers thereof. But even that is not useful. Every tool has its use, and it may be ‘superior’ for a particular solution than another. That’s all there is.

@phoebusg – I agree with you, it just annoys me that a lot of Rails dudes seem like they think they’re better than everyone else. I was reading a book on Ruby programming and even in the book they bashed Java. Unbelievable. Really turns me off – in fact it drove me right to Django! haha

I don’t deal with Ruby and Rails myself, and I haven’t written Java in a while, but I would say that there is a core of truth in your question in which the words Ruby and Rails could easily be replaced by any technology: “I feel that Rubyists [insert user of any technology] and especially Rails [inset name of technology] developers have horrible attitudes and become purists.”

I’ve seen Java people bash C++ or C# too. I guess people get hooked on something and then think it’s the greatest thing ever and all others are inferior.

@Snarp – I guess you’re right – I guess that’s why the almighty flame wars are ever so prevalent on the web. I might just stop reading programming blogs in general because i get too pissed off about this kind of stuff. I’ve used everything from C, C++, Java, PHP, Python/Django, C# (WPF, ASP.NET, WinForms), you name it—they’re all fine in their own way and they all suck too.

@stevenelliottjr I think everyone is just trying to find something to be the standard, that solves all the problems out there, and when they find something that solves the problems they’re thinking of, they think they’ve got the holy grail. I remember when I started using Java and I though, sheesh, I’ll never got back to C++ again, this is so much better! But of course it’s not always better, it’s all about trade offs.

I’m a professional Ruby developer. I use Rails on a daily basis and have written Java code in the past.

I think the biggest gripe Rails developers have against writing Java apps is that they’re too verbose and require too much configuration. A driving philosophy in Rails is that configuration should be optional. Smart defaults—the thing you want to do most of the time—should come preconfigured—with the ability to override the defaults the rest of the time. This makes it very easy to write a basic Rails app, but may feel a bit scary or mysterious at first to someone who’s accustomed to things only working after they’ve been configured.

Personally, I prefer Ruby’s implementation of the object-oriented paradigm. It seems more consistent and versatile to have a language where everything is an object (except for a handful of keywords). Also, it’s nice not to have to compile programs before I run them. :)

That said, there are many people in the Ruby community who embrace Java, as evidenced by the success of JRuby, arguably the fastest Ruby VM and the only one that currently supports native threads. In fact, there was a sold-out conference dedicated to JRuby on the heels of RubyConf last year. JRuby lets you call Java APIs from within your Ruby program, so it’s a nice on-ramp for people who have previously worked with Java. I’d recommend you give it a look!

@malevolentbutticklish of course, it’s apples and oranges to compare Rails (a framework) to Java (a language). I was making a comparison of Rails to Java frameworks that attempt to tackle a similar problem space (read: Struts).

That said, even a basic Java program requires more boilerplate text than a basic Ruby application (public static void main, etc.).

Thanks to everyone for responding. I doubt I will ever actively seek to learn Ruby or rails because I just don’t care for Ruby syntax very much. But I agree rails is a very fine framework and I wish the best to anyone who uses it. Just stop hating on Java! Though you all have been very fair ;)

Don’t hate the language or framework, hate the legions of mediocre developers who got into it not so much out of interest but out of a flawed perception of it being a favorable school to paycheck ratio (one caveat kids – school never ends if you want to be more than just another resume in a giant pile for your entire career). Hate the awful marketing schemes targeting CTOs rather than developers that add to really stupid cruft-ridden paradigms that you’re going to be forced to get behind because there’s nothing more useful we can do with the Kool Aid drinkers than put them in charge of things. Hate the developers who will voice endless support for their one language/platform of choice but who shut the heck up when asked what they’re comparing it to because they have no basis. But what you should really hate most of all is that you could have just been doing it in Python all these years if you’d tried that first instead.