I updated my Web Framework Comparison presentation today. Rather than updating the graph that shows today's job availability, I did one that compares today to 6 months ago. Struts is still the clear winner (and growing). Spring is definitely growing. Tapestry has about the same amount of jobs (9 vs. 8). WebWork lost 10 opening (down to 4) and the demand for JSF skills has grown as well.
Is WebWork a dying framework? I've heard folks complain about its small community, and there still aren't any books is only one book about it. Is that a jab at Patrick, Jason and Kris - or a jab at Manning? I'm not sure. The good news is WebWork in Action and WebWork Live should both be out this summer.
My search criteria for all of these was "framework and java" from the front page on dice.com. I did filter a bunch out for WebWork b/c there's some product called "WebWorks" that folks want to hire for.
In my own experience, these numbers are not as accurate as you might think. Since I gave my original presentation, I've been contacted a number of times to work on projects. It's about even between Struts, Spring MVC, WebWork and JSF. I haven't had a single inquiry to do Tapestry development. The bad part about Struts jobs is there's so many of them, that rates are likely pretty low (i.e. 35-45/hour), whereas the others can get you upwards of 80-90/hour.
依我个人的经验，这些数字不一定就很准确。 自从我发表第一篇介绍以来，我已经在项目中使用了好多次，包括Struts, Spring MVC， WebWorks 和JSF， 我还没有做Tapestry开发。 Struts不好的方面就是太多了，其工资可能稍微低一点（35/45/hour) ,而用其他框架能使你提高到80-90/hour。
So what do these numbers mean? Do they mean you should tailor your learnings and skills to the most popular frameworks? In a sense, it's important to do so. If nothing else, Struts skills are import so you can migrate all the Struts applications to your favorite framework. However, I don't think these numbers are that important when choosing a framework to start your project with. I think the most important thing in choosing a framework is passion. Which one do you want to work with the most? It's likely that your productivity will be higher if you're enthusiastic about the framework, rather than bored with all the skills you've accumulated using it. Then again, if you're motivated by productivity more than enthusiasm - using your skills to crank out applications quickly is probably a good idea.
那么这些数字意味着我们应该做什么呢？是不是意味着应该学习那些最流行的框架？乍眼看来，这样做是很重要的。 如果没有别的，Struts是很重要的，并且你可以将你所有的Struts应用迁移到你钟爱的框架中。不过，我认为这些数字对你选择一种框架开始你的项目来说不是重要的。我想在选择一种框架时最重要的是passion（激情）。你最想使用哪一个框架工作呢？或许如果你对一个框架很热情，你的生产力将获得极大的提高，而不是乏味的使用已经积累的技术。 另外，如果你由于生产力推动而不是激情，那么运用你已积累的技术去完成项目可能是一个好主意。
You might think that the number of skilled developers for framework X is important too. I don't think it is. I think the most important thing is to hire smart developers. A good developer can come up to speed on any framework in 2 weeks and be highly productive in 4 weeks. If not, the developer isn't that smart or the framework isn't that good.
你可能认为某个框架有经验的开发者的数量也很重要，我不这么认为，我认为最重要的事情是雇用精明的开发者。一个好的开发人员能在两周时间内使用任何框架，并且在四周时间内能熟练运用。 如果不是这样的话， 这个开发人员就不是精明的开发者， 或者这个框架不是优秀的。
Just for kicks, I did some searching for other web frameworks as well:
- Rife: 0
- Wicket: 0
- Echo: 3
- Ruby on Rails: 1
- ASP .NET: 2876
Now the question is - what kind of rates are these skills getting? I'd like to know what the average Rails and ASP .NET developers make. In Denver, Java developers seem to make between 65-85/hour when they're experienced contractors