Wow it keeps on coming (and ironically I am adding to it). This last slew of postings on Rails vs. Java came after Patrick Peak Rails: Where are the Implications for “No Deploying”?.
As soon as that came out we saw:
- Dave Thomas: Rails and FUD
- DHH: Letting cooler minds prevail
- Jamis Buck: Application Deployment with Rails
- James Duncan Davidson: Rails: Sandbox, Develop, and Deploy
- Patrick Lightbody: It’s the tools, stupid!
- Java Dion: I wish we had the Ruby language on the JVM.
- Ruby Dion: I wish Ruby had a nice VM to run on (the JVM would be really nice).
The funny thing is that it is hard to know what we are really arguing about :)
Can Rails scale? Sure. As Brian McCallister just said, scalability isn’t about a particular language.
Do the different languages/platforms give you different implementation choices for scaling? Sure. Scaling with FCGI clusters is different to using Tangosol Coherence in a J2EE cluster.
In some ways it is much simpler to scale a web app with shared nothing. However, on really huge enterprise systems (not web apps), tools *like* Coherence really help you out. It is nice to have the many levels and buttons available in your architecture.
Again, Slashdot? Scales like a champ with Perl. There are a lot of huge enterprise Java systems that take in billions of transactions.
So, conclusion? You can make both scale. You can make both run like a dog :)
Patrick has some good points in his post. I am not sure if he has checked out Textmate for doing Ruby development. It is quite nice indeed, although I do miss IDEA for some things (can’t beat its refactoring etc).
With Ruby you really don’t need as MUCH tooling though. It is a nice concise language which doesn’t need as much scaffolding in the tools area. You can be very productive with Ruby – IDEA.
However, IDEA really does do a good job of getting you closer to the productivity. I notice this a lot in Groovy world, and I am excited about GroovyJ.
Tool support is only one leg on the chair though. There are many other components that matter as much, more-so, and maybe not as much.
Tools can help get around the dev cycle that we have in Java, but we aren’t there yet. Patrick is correct in spotting the potential with dynamic languages on the JVM, where we could get the best of both. But we aren’t quite there yet.
It is painful to jump to the Java world once you are used to hitting SAVE and refresh for every type of change (we can get far w/ JSP, etc etc).
Both are beautiful, both can be ugly
I love both platforms in many ways. I don’t like both platforms in others.