Ask HN: Should I learn and use ROR or stick with what I'm comfortable with?

8 points by th3byrdm4n ↗ HN
I've been working for a software company that uses Java Struts for building web applications and I've become very, very good at it. It's boring, verbose but the runtime is efficient and I can crank it out. I started looking at ROR tutorials, but have been a little bit turned off by the hand-waving of scaffolding and usage of GEMs (granted, I bailed mid-way through even the first tutorial).

What are your thoughts on building a Java Web Application (using Struts, likely - other suggestions welcomed), versus building a Ruby on Rails (etc.)

9 comments

[ 3.3 ms ] story [ 34.1 ms ] thread
What is your goal?
Nobody really uses the scaffolding generation stuff after they get through with the tutorials and Gems are actually a very nice package system and ruby is a whole heck of a lot more fun to write than Java. Your mileage may vary. I prefer compiling my code onto, small, overpriced, hand-held computers these days :)
If you want to migrate more slowly you might consider getting into Groovy. It's very very Ruby like, but maintains compatibility with most Java syntax. You can start by learning Groovy and applying it in the Struts world that you know and love. Then you can try out Grails and get a feel for a Rails-like framework. Then you if you like it you can jump over to Rails and you'll find a lot of what you learned from Groovy / Grails is very conceptually similar. By doing it this way you can widen your knowledge without ever having to make the big jump that can be so disorienting, and all of the above technologies are worthy of learning in their own right.
> all of the above technologies are worthy of learning in their own right

Making the big jump to Rails is the best way - plenty of people do it. There's no point learning Grails programming if youre not going to stick with it.

Stick with the JVM. Look at Play! or something lightweight like Spray or Scalatra.
Is it the rails framework that interests you, or Ruby's syntax?

If it's the former I'd check out other Rails-like frameworks for Java. If it's the latter, then make the change to RoR.

I'm also very comfortable using struts (1,2) and spring, have been using it for a very long time.

I think you should learn RoR (or Django) and then decide for yourself. Keep in mind that we are in the middle of another 'change' in web development which lead us to two aspects:

1) Traditional web development: If you are building experiments or software that can change quickly due to some sort of pivoting, you should avoid Java at all costs. It takes way too much time to test/change things using Struts (even 2) or spring.

2) Using AngularJs, Ember et al: Java does great, just use Jersey and you will be fine. But, why not use Go? It is faster than using netty, it is something new (we all like shiny things).

That's my two cents, have a great day!!!

Learning new things is always positive! Learn as much as you can, for fun, for knowledge and to just in case. You never know.