Rather than trolling through google searches, mailing list archives and Amazon book searches, I'd like to try something new. For those projects represented in my Comparing Java Web Frameworks talks (MyFaces, Spring MVC, Stripes, Struts 2, Tapestry and Wicket), would you be interested in helping me gather statistics? I think by allowing projects to gather their own statistics, we'll get a more accurate number of their statistics. Here's the questions I need you to answer:
- How many tools (i.e. IDE plugins) are available for your web framework?
- How many jobs are available for your framework on Dice.com? What about Indeed.com?
- How many messages where posted to your user mailing list (or forum) in March 2007?
- How many books are available for your framework?
Of course, if you don't have time, I'll be more than happy to gather these statistics myself. However, those that do answer might get some extra marketing love during my talk. Answering in a comment or sending me an e-mail are the best ways to provide your findings. Thanks!
Update: Alastair asks for further clarification. Here goes:
> If you have lots of IDE tooling available, it probably means the configuration for the framework is overly complex and unmanageable without tooling.
While this may be true, if your framework is hot or uber productive, people want tools. Especially new developers. Remember there's a plethora of new Java developers every year and a lot of them prefer tool-based solutions. Good or bad, IDEs are nice and people like to use them. I've had many clients dismiss frameworks simply because no tools were available.
> The framework with the largest number of jobs available is probably Struts 1. Enough said.
Yes, you're definitely right. However, Struts 1 is not in this comparison - I dropped it because I don't want to recommend it to anyone.
> People only post to user lists when they are stuck. If the framework is hard to use, there will be lots of e-mails. If it has a steep learning curve, and/or the documentation is poor, this will be particularly so. On the other hand, an active list might point to a large active user base. Who knows which is which from a raw figure?
What about community? Mailing lists and their activity is a sign of an active community. Even though SiteMesh is a mature and good solution, its community sucks. There's little support, no new features, no bug fixes. An open source project w/o a community is tough for a company to adopt. Also, the best communities do a lot more than answer questions on mailing lists. They develop their applications, get advice, offer advice and sometimes even hang out. The Struts list used to have threads 30-50 messages long about development philosophies. When you joined the mailing list, you felt like you were a part of something, not just a user of a product.
> If your framework is fairly stable, and someone has written a fabulous tome on it that is universally acknowledged as "the bible", few people would bother writing another book for it.
I don't agree - this just means there's no market for other books because not that many people are using it. Look at Grails, Groovy, GWT and Rails - there's been quite a few books on each and no slowdown in sight. Then again, there weren't many Ant books and that was/is hugely popular. I'm willing to change this question to "How many good does your framework have?", but that's up to everyone's own interpretation. Again, lots of books means there's an active community outside the immediate mailing list - it's a sign the general "market" is interested and the framework fills a need.
Of course, I am interested in asking the questions that developers want to see answered. Do you have suggestions for replacement (or new) questions? Remember, people like hard facts, not wishy washy statements about how productive and OO your framework is. Every framework can be uber productive if you have the right developer(s) and they're genuinely interested in getting stuff done.
AppFuse Light 1.8 Beta adds CSS Framework integration, as well as support
for Stripes (1.4.2) and Wicket (1.2.6). This is a beta release so we can work out some kinks before the final release.
AppFuse Light now offers 60 possible combinations for
- Web Frameworks: JSF (MyFaces), Spring MVC (with
Ajax, Acegi Security, JSP, FreeMarker or Velocity), Stripes, Struts
1.x, Struts 2.x, Tapestry, WebWork, Wicket
- Persistence Frameworks: Hibernate, iBATIS, JDO (JPOX), OJB, Spring JDBC
If you have any questions about this release, please subscribe to the AppFuse user mailing list by sending a blank e-mail to
firstname.lastname@example.org. You can also post questions in a forum-like fashion using Nabble: http://appfuse.org/forums.
If you're a developer of one of the frameworks that AppFuse Light uses - I'd love a code review to make sure I'm "up to snuff" on how to use your framework. I'm also more than willing to give commit rights if you'd like to improve the implementation of your framework.
Live demos are available at:
Update: Based on Martin's blog post, I've added the version numbers for Stripes and Wicket (1.4.2 and 1.2.6, respectively). While the Wicket guys recommended I use Wicket 1.3.0, I was already knee deep in 1.2.6 when I read their recommendation. If 1.3.0 really is that much better than 1.2.6, it should be a pleasure to upgrade (and a good learning experience too boot!).