7

I've been running some experiments with my own with Spring Roo and it seems to be pretty cool, but i heard that JHipster is better. What's different between Spring Roo and JHipster?

Don Wito
  • 71
  • 1
  • 3

2 Answers2

9

I recommend you analize the requirements of your project and choose the right tool.

  • JHipster is a good devel tool to create Spring Boot projects of AngularJS single-page web applications.
  • Spring Roo 2 is a good devel tool to create, maintain and evolve Spring Boot projects of SpringMVC-Thymeleaf multi-page web applications. Take a look to the application architecture created by Roo 2.

You choose which is the right pattern for your project: single-page vs multi-page.

Note that by evolve a project I meant the tool can update the generated code without loosing your changes. Nowadays, JHipster cannot update the generated code without loosing your changes as said in its documentation (https://jhipster.github.io/creating-an-entity/#updating-an-existing-entity):

When you run the entity sub-generator for an existing entity, you will be asked a question ‘Do you want to update the entity? This will replace the existing files for this entity, all your custom code will be overwritten’ ...

Spring Roo is able to update and evolve the application code without loosing the developer changes. So, I recommend you review and check the features, patterns and good practices that each tool includes in your application and choose the one you think is better for your project.

eruiz
  • 1,963
  • 1
  • 14
  • 22
4

Roo is excellent on the server side level as it is based on Spring Boot. Its command line is very smart. On the negative side, they introduced a lot of new @ROO annotations, generates a lot of AspectJ files, and the user interface is a classic, old-fashioned HTML where you load a new page almost with each request. For that reason, the user interface is a little bit slow and outdated. In nutshell, the strong point of the tool is on the server side only, IMHO.

JHipster is also using Spring Boot which means it did not lose any edge, but in addition to it, they generate a single page application that is very modern. They depend on nodejs and other client side tools to manage a strong client-side user interface. JHipster also covers a lot more options on the client and server side, for example, NoSQL options.

I moved to JHipster, but can not deny missing Roo clever shell.

Ahmed Hammad
  • 622
  • 8
  • 17
  • 2
    You're a bit wrong, Roo doesn't work at server side. Roo is a development tool that it works only in your development environment. Note the Roo annotations are always source-level retention, you won't find any Roo annotations compiled into your classes. Feel free to read Spring Roo Overview at http://docs.spring.io/spring-roo/docs/2.0.0.RC1/reference/html/#getting-started-overview – eruiz Jul 17 '17 at 10:52
  • I meant that what is running on the server side is ROO generated files. In the same sense, this is exactly what happens in JHipster case. Both are members of code generation toolsets. – Ahmed Hammad Jul 18 '17 at 12:32
  • weird that they not trying to combine seems so obvious – M_F Jul 20 '21 at 17:48