Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Making the move to Java Spring from Rails

After building 5 Rails websites and having to Deal with Rails 2.3, 3.0 and 3.1 version differences, installation hassles and unexpected memory spikes with Ruby and other gotchas, I've decided to make the move to Java Backend Web Development using Spring. I'm aware that there is a world of difference between the two and JSP development isn't a next step after Rails development, but my major points are that:

a) Java is a much more mature, faster and efficient programming language compared to Ruby. b) Java (Spring) offers a variety of libraries, tools and plugins that can be selected and configured to custom tailor a web application. c) Java itself offers a richer programming language experience compared to Ruby.

My logic here may be vague, however, I'm more fed up with Rails development than anything at the moment.

My question (finally) is that is this a logical move todo? Is Java development really something that's a better choice for backend development?

like image 983
matsko Avatar asked Jan 18 '23 21:01

matsko


2 Answers

Having dealt with both Ruby on Rails and Java I would say there are scenarios when Java is more suited and there are scenarios where Ruby on Rails is a better choice. Indeed, there are frustrated things with RoR, but rest assured there you will also encounter different frustrations in Java world. As in Java you will have to use different frameworks and libraries (just Spring wouldn't probably be enough) you will have to integrated them together. You will probably use Maven (lot more pain then Bundler), some collection of testing libraries (again, here Ruby on Rails is a clear winner). You will have to write lots of boilerplate code in your Java application, making the development slower.

The general guideline for me to use Java if: I have very rich domain model. Then you can leverage Java's coding to interface and generic types which makes you come up with better design for your domain model.

Use Ruby on Rails if: Your application is CRUD with domain not that large.

P.S. I wouldn't say that Java is a richer language. Many things in Java stink in order to maintain backwards compatibility. And dynamic nature of Ruby allows you to do lots of cool things that you can't do in Java.

like image 95
alexs333 Avatar answered Jan 29 '23 11:01

alexs333


I'd try Grails. It's Java, Groovy, Spring, and Hibernate combined using convention over coding that you're used to with Rails. It might be a good intermediate step.

like image 34
duffymo Avatar answered Jan 29 '23 11:01

duffymo