下图是来自于Raible在5月22日的Blog "
Java Jobs: broken down by web framework",该图是Raible分别于去年10月15日和今年5月22日在
dice.com网站上对各种Java Web Framework的需求进行查询所得。从两个时间的查询结果可以看到:
1、Struts远远领先于其他的框架,并且其需求仍在增长中;
2、Spring Framework、JSF 有一定的增长;
3、WebWork、Tapestry变化不大
老实说Struts的比率如此之高是有点出乎我的意料之外的。过去一段时间从各个论坛、网站发布的信息可以知道各种新的Web Framework不断涌现,还常常把Struts当作靶子打击一下,似乎Struts已经成为一种落后的技术,就要被淘汰了。
显然Struts作为第一个打响名声的Java Web Framewrok,成功地获得众人的关注,从文档、书籍、实际应用特别是商业公司的支持来看,都是其他架构无法相提并论的。尽管其他架构各有其技术上的优势,但仍无法撼动Struts作为“事实标准”的地位。
对于技术人员个人来说,学习“最普遍”的框架是很有必要的,这样才能掌握相关领域的基本知识,同时也有资本去面对就业市场。但是如果你只懂得“最普遍”的框架,估计也只能拿“最普遍”的薪水,所以再学习其他的框架是更加有必要的 :D。在Java Web Framework上,基本上其他的架构都会与struts进行比较,所以掌握struts会帮助你更好地掌握其他架构。
对于项目组来说应该如何选择呢,我认为如果项目时间足够的话(?!),大可把每种看的上眼的架构都研究一下,选出最贴切的;否则就应该选择项目组最有把握的架构;如果项目组成员本身对Web Framework都不熟悉,那就选择struts吧,毕竟这是目前最容易找到资源的架构。
不过正如Raible所说,招聘一个开发人员重要的不是看他会多少架构,而是看他有多聪明。因为“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.”