We released The Curious Coders’ Java Web Frameworks Comparison report over a month ago and there were some great comments discussing and debating points made in the report. Although we plan to release a second part of this report series, we felt that some of these comments deserved a response sooner.
A lot of very vocal people joined the debate–which was awesome! The most extensive review was provided by Henk53, a self-described “crazy old farmer who’s deeply involved in IT”: You can read his novella here ;-) http://disq.us/8eygjm
Here are some others points brought up for discussion in the comments, in addition to “Why isn’t my favorite framework included?! I want a refund!” Just joking.
RebelLabs: We made some decisions on which frameworks to cover based on a few criteria.
One item was usage, we see value in the smaller less used frameworks, diversity is great and developers can pick what they need. However the major frameworks with the most users are the ones that require disambiguation and provide the data to help with that task.
The last criteria was space and we had to cut the number of frameworks to be covered in the report to fit the proper format. We did not set out to create the reference tome for all Java frameworks, our goal was to give developers a handy report to break down some key concepts and scores for various competing frameworks that ranked highest in usage according to our own primary research.
cblin: “I miss some ‘real world’ metric : maintainability, going mobile, going services oriented (i.e lots of small apps working together), testability.”
RebelLabs: That’s a pretty good segue into Part 2 of our Java Web Frameworks report series, which is due to be out in late October 2013. This first part of the report was a summary of each framework and scoring based on our past experiences and community research. The next part, without giving too much away, is more a survey of different types of applications and which frameworks’ features shine in different use cases.
UmeshAwasthi: “Struts is legacy!? HERESY!…[the] Author is talking Struts as legacy framework while there is already a new version of Struts derived from WW named as Struts2 while struts has already been declared close for development.”
RebelLabs: Umesh, we definitely can understand your umbrage taken with us calling Struts and Struts2 legacy. We do have good reason, I promise! When compared to modern frameworks like Grails, Play, and Vaadin, Struts is a little dusty. We’re not saying there isn’t good code there, nor are we detracting from a solid, stable base for an MVC framework, however the feature list and paradigms used and imposed by Struts and Struts2 are a little dated. It’s hard to say: would you advocating picking Struts or Struts2 for a new green field project?
AlfredoZuloaga: “Excellent article, but I’m not too convinced that Play was best on Throughput/Scalability because others frames can deploy on very strong Java EE Containers like GlassFish, JBoss,WebLogic, WebSphere, etc. that are proven excellent on Throughput/Scalability.”
RebelLabs: Alfredo, those are great points. We do mention that clustering and scalability of Java EE containers add to the throughput and scalability of JSF and other frameworks that don’t use their own servers, however it does not seem fair to us to compare the application servers in a frameworks report. In the report we are trying to focus on the features of the frameworks themselves that provide for higher throughput and scalability while trying to minimize the impact of the rest of the tooling or environment.
J: “This is the most useless Java web framework comparison I have ever read. Too generic, too subjective and biased. Nothing was said, document is full of generic boilerplate parts crowned by dusty score valuation.”
RebelLabs: Well, J, we’re sorry you feel that way. This report was carefully crafted and the scoring was debated intensely amongst the authors. The scoring and remarks regarding the frameworks leveraged our combined decades of software development experience and, to us at least, does not seem arbitrary at all. We do acknowledge that this report is more of a survey than a reference manual, once again we are trying to provide as much information on as many frameworks as we can in a reasonably-sized report. We want this report to help steer developers towards frameworks that we believe would work better given certain types of applications and based on the scored characteristics.
Christian: “To master Play’s Scala based template engine is not a harder than learning every other template engine. Actually you don’t have to know Scala at all. You’ve counted Scala as a disadvantage several times in your comparison, but I think it is a really powerful and clean language, once you’ve mastered it. You can do so much more with so much less code compared to Java. Scala is not a disadvantage, Scala is a big win.”
RebelLabs: Christian, we actually really like Scala and use it in our products, however requiring knowledge of a different language to use a Java framework is a negative mark. Scala and Java may be a little different than say requiring Ruby in a C++ framework, but the idea is analogous. We absolutely understand how Scala can be a benefit to your application, as we leverage Play internally and do see how Scala can help accomplish tasks that are more challenging in plain Java.
All of these quotes were taken from the comments section of the The Curious Coders Java Web Frameworks Comparison, some of them were modified for spelling, format, and whimsy. The entire RebelLabs team hope that you have enjoyed this post and we are looking forward to sharing more content with you in the future. Be sure to keep your eyes out for part two of the report!