Is it worth changing from java/spring/hibernate to rails for a program that is undergoing massive changes? Is it worth changing from java/spring/hibernate to rails for a program that is undergoing massive changes? spring spring

Is it worth changing from java/spring/hibernate to rails for a program that is undergoing massive changes?


It takes more time to get good at Ruby, and Rails. I worked as an independent contractor as Spring and Hibernate expert myself, but I felt strangled by java and it's web frameworks so I decided to learn Ruby on Rails.

I would advice you to learn Ruby, from what I read you would probably master it, although get pretty frustrated with the very different way the use the ORM. I had issues with it, used to working on aggregate roots in Hibernate to the ActiveRecord one class one table kind of pattern. But hey, you could easily try out MongoDB to have some real fun.

Ruby is

  • less code
  • it's fast and scalable (slower than java on the specific tasks, but you get rid of stacks of layers.)
  • the problems are more often; which gem should I use. Luxorious!
  • a unique, big, sharing and caring open source community
  • nice frameworks, as Rails and Sinatra
  • powerful.
  • fun!

Would I advice you to do the project you describe in Ruby.

NO.

Not if speed of development matters. You will be slower, trust me. There's a lot to learn, it's conventions are not familiar to a java programmer and when you get stuck, lots of hours fly by.

The best option would be to hire a senior ruby developer to pair up with you and teach you. Be a good apprentice and you'll learn fast. Faster than me, I had to learn most by myself, which is really inefficient.

Good luck!


Check out Playframework. Its fun to develop, and you can use your Java experience to develop features way quicker (given than you have 2 weeks) than any other Java-based frameworks out there.

You do not have to start/stop a server. You fix the code in Eclipse and hit refresh on the browser. No dealing with WAR files till you have to actually deploy in production. Do everything from within Eclipse. Easily perform TDD process if thats what you want as you develop code. From an architecture standpoint, it is a fully stateless, RESTful framework from the get-go. Fully JPA compliant (even for NoSQL like Mongo), so you will not have to write complex JDBC code. On the front-end, it has a full featured templating engine, using Groovy as a templating language.

I can go on and on, but I'd recommend going through the site and take a look.


You should take a look at Grails.

You can continue to leverage a lot of your Java code but use a scripting language (Groovy) and many of the paradigms of Rails. E.g. lots of time saved by using convention rather than configuration.

Grails is used by some pretty big web sites E.g. BSkyB the UK satellite broadcaster.

It doesn't really help with some of the startup speed aspects. If you really prize development speed that much - get a faster machine or buy an SSD and fit in your machine. If you work for a big company - sell it to your manager as the cheaper option (E.g. buy a $2000 machine rather than spend 3 weeks rewriting something to save 10 minutes a day).

Java will scale better in the long run than Rails. The Hotspot technology in the JVM is one of the wonders of modern technology.