I was looking around to see if there is an equivalent to django/RoR in java.
I found:
Does anyone have ever tried those frameworks, or do you know any other? Are they faster than django/RoR?
I was looking around to see if there is an equivalent to django/RoR in java.
I found:
Does anyone have ever tried those frameworks, or do you know any other? Are they faster than django/RoR?
Hi,
I don't know about the Play Framework, but to answer the second question,
we are doing some projects with Google's Webtoolkit.
Could be worth checking out.
Good luck!
I don't know about Play Framework, but Spring MVC or Struts together will Hibernate will offer similar functionality.
There are many other options available. Basically you need an MVC framework (Spring MVC, Struts, Wicket) and an ORM tool (Hibernate, iBatis). Of course you would need to integrate the needed components yourself, but this has been done already many times and you will be able to find plenty of information.
I'm not sure if Spring MVC and Hibernate provides the same ease of use that Ruby on Rails provides (actually, I'm sure it is much more complicated...). Play Framework is much more like Ruby on Rails I think, however I didn't us it myself and only watched the screencast and read some documentation on it, so if you want to have a similar experience to developing using RoR, I think you can better try something like Play instead of Spring MVC with Hibernate. The advantage of the latter is that it is very powerful and is able to adapt to an existing datamodel for example (from what I know on RoR, that is not very trivial in RoR). Another framework you could consider is Groovy on Grails. While it doesn't use Java (it uses Groovy), it is very RoR-like. It uses Spring and Hibernate under the hood (if I'm correct) and the advantage of Groovy is that you don't have the strict static typing of Java. Ruby on Rails and Django benefit heavily from the dynamic nature of the language in which it is implemented, a feature Java misses because of its static typing.
Edit: ah, you mentioned Grails already in your question...
Stripes seems to be quite lightweight and embraces Convention over Configuration.
Having used struts, wicket, rails & Tapestry, I recommend you look into Tapestry 5.
It supports
the only downside is the documentation, which, is good, but a little terse, although the user groups/mailing lists are very active and most questions are answered well & eagerly.
(Also, be sure to only look at T5 - and not T4,3,2,1..... as these are very different to the current version)
More on why here.
I discovered Grails about a year ago, and haven't looked back. It takes a lot of ideas from Ruby on Rails (original it was named Groovy on Rails), and has a rich ecosystems of plugins / extensions. Grails, and underlying Grails language (superset of Java) make it a joy to program - you can really focus on the essentials. Its GORM functionality (a layer on top of hibernate) is also very powerful, and in addition to the plugin system, is one of two huge reasons to check it out (you can use it in your java apps as well).
With version 1.2 about to come out, I feel it's feature-rich and mature enough to be something that any developer should have in their toolbelt.
As far as performance, it's definitely less than that of pure Java, but you have everything from spring / hibernate / J2EE available to you to optimize, and you can always drop into pure java for some critical pieces of code. There have been some recent experiments with allowing to run part of the Groovy code using static method resolution, which, coupled with invokedynamic support, should provide huge performance boosts.
Other ones to check out in Java are Spring Roo, and AribaWeb.
Update Based on Additional Qualifications
Scalability, Productivity, Documentation, and decent Resources consumption
AribaWeb also supports Groovy. Check out our other features at http://aribaweb.org/ and find out our approach to making web development productive.
Anytime you are contemplating an application stack (language, framework, etc...) you also need to consider what are you trying to solve for and what kind of programming skills do you have at your disposal. I've found that more experienced Java programmers have been very productive with the Groovy and Grails stack when compared to more junior programmers.
You mention the following as areas of concern:
Hope this helps.
We use Stripes framework extensively and it works really great. It's really lightweight and it directs you towards a clean design of your applications. It basically just hides the boring parts of development from you, so you can focus on the fun stuff (One such example are the indexed properties).