Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta. developer.okta.com

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Help me help you (market your web framework)

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:

  1. How many tools (i.e. IDE plugins) are available for your web framework?
  2. How many jobs are available for your framework on Dice.com? What about Indeed.com?
  3. How many messages where posted to your user mailing list (or forum) in March 2007?
  4. 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.

Posted in Java at Apr 26 2007, 01:58:30 PM MDT 15 Comments
Comments:

Struts User mailing list had 1,418 posts in March 2007 - although that includes boh Struts 1 and 2, the majority are now Struts 2 related - I would estimate at least 80% but possibly up to 90%.

Posted by Niall on April 26, 2007 at 07:41 PM MDT #

Other Apache projects in March 2007:

Posted by Niall on April 26, 2007 at 07:52 PM MDT #

Jobs
  • Dice (WebWork) - approx. 40 jobs
  • Indeed (WebWork) - approx. 358 jobs
It's not that accurate as most jobs description has lots of web framework mentioned, its really hard to tell from the search which framework they actually used.
Books
  • WebWork in Action
  • WebWork's Wiki (is this considered as a book? :) )
  • Ian's working on a Struts2 book but its not published yet.
IDE & tools
  • EclipseWork (https://eclipsework.dev.java.net/)
  • NbWebWorkSupport (https://nbwebworksupport.dev.java.net/)
  • WebWork distribution comes with Quickstart to help in developement (http://wiki.opensymphony.com/display/WW/QuickStart)
  • AppFuse (as if you don't already know)

Posted by tmjee on April 27, 2007 at 12:03 AM MDT #

In April there are already 1800+ posts in GWT discussion group ( http://groups.google.com/group/Google-Web-Toolkit ).

Posted by Leonid on April 27, 2007 at 12:43 AM MDT #

Wicket
------------------------

Mailing lists:
Pretty active

See http://sourceforge.net/mailarchive/forum.php?forum_name=wicket-user for the user list numbers.
Note that http://www.nabble.com/Web-Development-Framework-f16257.html shows Wicket as the most active of the web frameworks listed, same for the listed Apache Incubator projects at http://www.nabble.com/Apache-Incubator-f355.html and number 4 in this list http://www.nabble.com/Java-Software-f787.html
Also note that I *still* think mailing list activity is not a good indicator for the quality of the framework :)
Books on Wicket:
* Pro Wicket http://www.apress.com/book/bookDisplay.html?bID=10189
* Wicket In action is *still* in the works (I'm writing it, and it's hell). We're about at 4/3.

Plugins:
don't know the locations, but there is an Eclipse plugin (useable and mature) and an IDEA plugin (don't know the state of it) for Wicket, and NetBeans has a couple of wizards and helpers and a set of tutorials integrated.

Jobs:
Probably nothing compared to Struts etc. But on the rise. I'm sure you'll find statistics. Another metric I personally don't find very useful.

Wicket is about to graduate and become a top level Apache project (*knocks on wood*) and we have a couple of interesting references soon. Also, projects like PaxWicket, Eclipse RSP and cooperation with Terracotta are all indicators we're gaining momentum.
Ok, that's enough blah blah for now. :)

Posted by Eelco Hillenius on April 27, 2007 at 01:30 AM MDT #

I'm not convinced these are terribly useful metrics. :-)
I have a point-by-point here: http://herebebeasties.com/2007-04-27/lies-damned-lies-and-statistics.

Posted by Alastair Maw on April 27, 2007 at 02:03 AM MDT #

Gah. Let's try that again with a link that works... :-) herebebeasties.com/2007-04-27/lies-damned-lies-and-statistics

Posted by Alastair Maw on April 27, 2007 at 02:04 AM MDT #

It's good to have you join the conversation Alastair. I've updated this post with some answers to your questions.

Posted by Matt Raible on April 27, 2007 at 02:47 AM MDT #

I think the problem with 'hard facts' lists is that it is nearly impossible to get real useful ones. Take Smalltalk for instance. It's generally seen as a very good development environment, especially by 'the better' (yes, that's subjective) developers. But it would fail in almost every aspect when it comes to hard fact lists.

These lists work fine if you want to measure the relative success of a framework, and they may, just may, be useful for companies that want to persue a risk avoiding strategy when it comes to being able to find new personel quickly etc, but they say little at best about it's technical merits.

Now, what *does* work then? Imho, skip the hard fact lists to start with. Instead, compile a story of what you think are the strong and weak points of a framework and why. You can still mention tool support for instance, but rather than than just stating how many there are for framework X, you can say something about their usefulness, how bad they were needed in the first place, and where the development seems to be heading (IDE plugin projects often strike me being amongst the worst maintained of all open source projects). Also, say something about your experience with starting up with the framework, it's short-term merits (how quick is it to develop something; Rails would do well here), how it scales for development (does it hold when complexity of the project grows and you start adding more developers) and the long-term advantages (does it produce maintainable, optimizable software; Rails would do pretty bad here). Etc, etc. I know it isn't as catchy as short lists, and you have to look at what people want to read, but personally, I rather read through 10 pages of deliberations, than 10 bullet points of statistics.

The web framework comparison where you asked some framework committers for their opinions for instance, that's a pretty valueble document. I have pointed it out many times in the past, and most people came back saying it gave them new insights.

My 2c

Posted by Eelco Hillenius on April 27, 2007 at 03:20 AM MDT #

I think we're on the same page Eelco. If you look at my outline, these questions (and their answers) are only 2-3 minutes of the whole talk. I really just do them because people like pretty graphs. ;-)

More than half the talk is my opinions (from experience), authors opinions (the sweetspots document) and what the audience thinks (participation).

Posted by Matt Raible on April 27, 2007 at 03:29 AM MDT #

While I agree with Eelco's comment in that personally I'd like to read through the sort of doc he describes, I disagree about the value of these metrics. They may be unimportant or inaccurate to us as developers, but to some folks, they matter. My boss, when recently evaluating frameworks, wanted high level facts/metrics. I offered him my opinions, but he still wanted the metrics. These metrics may be inaccurate, but that was really all he had to go on. All we can do is provide comments upon these metrics, such as "Wicket doesn't require much IDE support as the developer is working in pure Java" to assist these folks in their decision making processes.

Posted by Upayavira on April 27, 2007 at 04:16 AM MDT #

I like to think that nowadays people are not swayed that much by graphs and metrics like they used to be - because of things like what Matt is doing. I'm personally trying to encourage a culture of "developer opinions matter" where I work. But agreed, not quite there yet. That said it would be really unfair if metrics on IDE plugin support leads people to believe that one framework is better than the other. FWIW here's a link to code created completely using NetBeans with no extra plugins. http://fisheye3.cenqua.com/browse/j-trac/trunk/jtrac/src/main/java/info/jtrac/wicket How about saying that any IDE that has Java or HTML editing support can be considered having "Wicket support" :P

Posted by Peter Thomas on April 27, 2007 at 04:53 AM MDT #

Thanks for your update Matt. Have you thought that if there are lots of job openings available for struts, that means that there is a shortage of struts developers out there, and that therefore picking that for a new project might be a bad idea, as you won't be able to hire anyone to implement it? :-) See, you can spin these things any way you like. That is my point - it's deeply meaningless, as there are too many negating factors that contribute to your figures to draw any useful conclusions from any of them. Off the top of my head, here are some metrics that I think are less corruptible/meaningless. Some of them would be hard to gather and require some legwork with Perl or similar:
  • Average time between first and last post per thread on a mailing list. (Shows vaguely how quickly issues are resolved for users. You'd need to throw away the outliers, too.)
  • Number of words of documentation on framework wiki/primary documentation site.
  • Code coverage of framework with unit tests as % (for Java, should give a useful metric of how dedicated the developers are to correctness and stability).
  • Code coverage of framework with maintained example code (very hard to measure).
  • Number of active committers (committed more than 50 lines of code in the last three months).
  • Number of active posters resolving questions on mailing list.
  • Average time taken to fix bugs/issues from report to resolution in trunk/HEAD.
  • Average time taken to fix bugs/issues from report to new release.
  • Average time between releases (minor ones).
  • Ratio of comments to lines of code. This is a bit nebulous but nearly always, better commented code is better code. You're therefore less likely to be bitten by bugs in it. Pretty good correlation there, I think.
More qualitative:
  • Does the project have a useful IRC channel for support?
  • Are there best practice documents/examples available and how good are they?
Things that are seriously meaningless, and why:
  • Number of framework downloads (this massively depends on how many minor releases your framework does, and whether your users tend to grab releases from a Maven 2 repository or elsewhere).
  • Number of committers (if 80%of them are inactive...)
  • Most other random numbers you can pluck out of a hat.

Posted by Alastair Maw on April 27, 2007 at 07:31 AM MDT #

Along with the number of jobs on Indeed, you could use our Job Trends tool to monitor the fluctuations in job volume over time by framework.

Here's an example:

http://www.indeed.com/jobtrends?q=%22spring+mvc%22

Jason
www.indeed.com

Posted by Jason Whitman on April 27, 2007 at 07:43 AM MDT #

Alastair - I agree these sounds like useful metrics. I wonder if they're something projects like Open Source Directory and SourceKibitzer could provide? Maybe I should contact them and see if they'd like to "pimp their services" and use their metrics in this talk?

Posted by Matt Raible on April 27, 2007 at 09:21 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed