Just wondering if there are any reasons why a Java developer should learn Ruby on Rails knowing that there are technologies such as Grails or (especially) Spring Roo that can be more familiar?
|
migrated from stackoverflow.com Jan 10 '11 at 1:43
|
Here's a couple of tips:
Rails for Zombies |
|||||||||||||||
|
|
I myself, being a heavy Java believer previously, switched to RoR 2 years ago ... I have to say it was painful (much more painful than I expected and I even had some Ruby basics and was familiar with Groovy at the time), but I think I just brought too much Java "baggage" with me ... maybe after half year actively using Rails everyday I started getting really familiar and comfortable with the Rails way of doing things (at this time I've dealt with every layer of the framework including a lot of Rails plugins and Ruby gems). Ruby and especially the "accent" used in Rails is beautiful, here are some of my reason I thing a Java developer should go with Rails (instead of Grails/ROO) :
Now I do not think RoR is perfect, I even do find some features from Java libraries missing or better, but overall the advantages are really worth it ... esp for a Java programmer. Imagine how easy it was for me, with a previous Java background, to deploy a Rails application to Tomcat or to integrate with existing Java APIs using JRuby - thus doubling my Java power :) ! I really think Ruby has made me a better programmer and I often regret Java programmers stuck to the JVM. Ruby will make You happy (after the initial struggle) and You'll discover a whole new world of programming beauty ... I promise :-) ! |
|||
|
|
|
Learning RoR will make you a better programmer. This is not because it's a better framework but because it is outside of your comfort zone. Learning grails is very close to using hibernate & spring in java, so while you maybe more productive quicker (being a java guy) you won't learn as much as if you really have to start from scratch learning Ruby and rails. As for not learning RoR: if you are learning this new skill or commercial/professional reasons then I would recommend learning grails over RoR, again not because it is better but because you are much more likely to get a gig as an experienced java and grails guy than a java and RoR guy. If you do learn spring roo please come back and let me know what it's useful for. |
|||||
|
|
I am a Java developer and I am pretty efficient in it. I have started Rails recently. I did not find a compelling reason for Rails but I guess there were two psychological reasons behind doing so:
So, I started Rails for one of my personal projects. I found out:
Overall, to me, I do not see much benefit in Rails. Java is not painful for me -- except it is verbose. The frameworks like Roo and Wicket make life much simpler. I do not see any compelling reason to switch to Rails. But YMMV. :) |
|||
|
|
Learning other languages will help you understand concepts better in your main language. Many times I've learned something new about how to do something better in Java just by playing around with PHP, C#, JavaScript, Python, or some other languages. I would recommend you play around with Ruby if you have time, but the specific language itself probably won't be useful to you if you're using Java at work. |
|||||
|
|
I would invest my time to study patterns, improve code design, learn architectural issues, which are probably most of times generic for all languages. It makes you better and better at development. Sometimes you need to dive deeper into your main language (e.g. I spent time investigating how JVM behaves, it helps me understand java better), it helps you also learn other languages and their ideology faster (just comparing them to your already well known language). If from this POV studying RoR can help you "notice" what you could not notice before, then this investment is valuable (e.g. you see new approach, which you can use developing with Java; you can find new directions to grow). |
|||
|
|