【IT168 业界新闻】
Steven Haines平时经常撰写关于Java新技术的文章在开发员工作中提供帮助,然而这个星期,他把注意力转到了帮助你找到下一份工作的技术上来。
尽管美国可能并不处于技术方面的萧条,但至少处在股市大跌的阶段。股市从2008年年初就开始一直在下滑,公司收购率正不断得上升。今年,Oracle已经收购了BEA,Sun收购了MySQL,在我写这份报告的时候,微软正试图收购雅虎。很多人在这些收购中存活下来,但必然有一 部分人没有顺利渡过难关。无论你所工作的是什么企业,也无论你的职务是多么得保险,关注目前企业招聘关注的技术仍然很有必要,或许有一天你不得不需要重新 寻找一份新工作。
另外也要指出的是,这里提供的信息并不完全。Steven说:
在开始前,我首先申明:我所作的研究不是科学研究,没有对所有的工作职务做调查,也没有通过联系招聘员来了解究竟什么是最稀缺的技术。我所做的,只是通过 Dice和Monster统计一些关键字和这些关键字被点击得次数。大部分结构来源于Dice,因为在Monster上,我没能找到Dice那样清楚地搜索接口(Dice很不错的一点是它拥有一个“技术”参数,这对最后结果的归类很有帮助)。在Dice上搜索到超过8000个Java职位得结果,足以反映当前的Java市场。并且,根据你所居住的地理位置,得到的结果可能会有所不同。
另外,本章并不是对未来趋势的报道,而是对目前职业所需技能的一个掠影。
我们将要呈现的结果主要是这几个方面:核心技术、应用服务器、Web框架和持久化技术。除此以外,原文中还列出了其他一些更细更专的类别。
表格一:核心技术
| 关键字/技术 | 点击数 |
| J2EE | 7520 |
| Java | 6389 |
| JSP | 2228 |
| Java/J2EE | 1733 |
| EJB | 1271 |
| JDBC | 1079 |
| JMS | 926 |
| Servlet | 409 |
| J2ME | 146 |
第一类别-核心技术的统计表,只是给大家展现一下当前的主要形势。极大的可能是很多关键字/技术(尤其是Java/J2EE)出现很多职位的技术要求中。作者肯定了这个事实,同时指出:
如果仔细查看Java编程的相关范畴的话,你会发现Java企业应用和Web技术占据了大部分职位。10-15%的职位描述中提到了JMS,而仅仅2%左右的职位提到了J2ME。
表格二:应用服务器
| 关键字/技术 | 点击数 |
| WebSphere | 2155 |
| WebLogic | 1561 + 624 (BEA) |
| Tomcat | 1587 |
| JBoss | 882 |
| Jetty | 22 |
| Glassfish | 17 |
考虑到市场份额的下降,应用服务器方向的现状相应就不会太令人惊讶。WebSphere以超过25%的表现占据首位,紧接其后的是WebLogic,略微不到25%(包括在使用搜索关键字“WebLogic”和“BEA”是的重复职位),然后是分别占20%的Tomcat和占11%的JBoss。
在过去的几年中,由于Spring逐渐变得热门,结果有点让我吃惊。为了能够对未来趋势作出更好的分析,于是我寻求了http://www.indeed.com的帮助,得到这鳌居首位的四个应用服务器的发展趋向图表。这让我得出这样的结论:尽管WebSphere和WebLogic目前还占据领先位置,但是他们的受欢迎程度在不停的下降。同时,Tomcat和JBoss的普及率在逐渐上升,因此,学习这几个应用服务器技术在将来可能会给你带来更多的机会。

作者也注意到了Tomcat占有率的上升,他提到:
对我来说,最有趣的可能是,在Dice上发布的Java职位中,几乎有20%同时在它们的职位描述中提到了Tomcat。这正说明很多公司正在尽量躲避Java EE栈,而选择标准Web技术(Servlets/JSP/JSF)或者其他可选的类似于Spring那样的框架。
为了肯定他的观察结果以及EJB应用服务器与servlet容器的趋势的比较结果,我将EJB和Spring发展趋势的比较也用图表来表示。正如大部分开发者可能期望的那样,Spring的使用率一直在上升。

表格三:Web框架
| 关键字/技术 | 点击数 |
| Struts | 1745 |
| Spring MVC | 290 |
| Velocity (and Java) | 133 |
| Tapestry | 85 |
| WebWork | 31 |
| Grails (Groovy) | 18 |
| Wicket | 14 |
| Stripes (+ J2EE) | 8 |
| Cocoon | 3 |
| Turbine (and Java) | 0 |
| RIFE | 0 |
关于什么是最好的Web框架这个问题可能是Java社区最沉重最受争议的话题:就像讨论政治或宗教问题那样。但是数据是不会说谎的:很多人都说Struts已是一摊死灰,事实却不是这样的。Dice上所有关于Java的工作中,几乎有22%的工作在它们的职位描述中列出了 Struts,这几乎是其最有力的竞争者的六倍。如果你是做Java Web开发的话,如果你想要得到最高的市场适应力能分的话,那么你最好还是了解一下Struts,尽管可能其它技术本身要来的更优秀或能够更好地解决你的问题。
作者提出的论点是有道理的,但是,随着Struts2的发布,问题还在于公司是否会决定升级他们的Struts到2.0版本,或者说他们也可能会因此决定这是他们转移到另外的Java Web框架或彻底替换使用另一个Web框架的时机。当然,由于无数的应用程序早已采用该框架完成代码编写,因为市场对Struts开发人员的需求不会立即下降。
从Indeed再次审视发展趋势(不包括Struts),从Indeed得到的结果和作者的表格似乎有一些微小的出入。各种框架的使用都呈上升趋势,Spring MVC显示了其重要的平滑上升的状态。

表格四:持久化技术
| 关键字/技术 | 点击数 |
| Hibernate | 1750 |
| iBatis | 99 |
| Toplink | 80 |
| EJB3 | 37 |
这儿,Hibernate毫无意外地在持久化技术领域占强大的领先地位。图表显示的趋势(除了Hibernate以外的所有持久化技术,以及采用JPA代替EJB3)却让我们看到一些令人惊讶的结果。JPA不仅开始有能力和Hibernate一较高下(尽管Hibernate确实实现了JPA规格,因而造成两者有所重复),而且它在iBatis的使用中也呈稳定增长趋势。

结论
总之,作者提出了几个非常好的观点:
在你开发你的企业应用时,你应该熟悉怎样在WebSphere、WebLogic、JBoss和Tomcat中部署和管理它们。 你可以不花费一分钱下载所有这些应用服务器(商业版本拥有开发许可,可以利用它们帮助你学习)。不要因为你知道怎样编写企业应用就以为所有的应用服务器都一样。你也不想声称熟悉一样其实并不熟悉的应用服务器,然后在工作中痛苦地挣扎摸索其如何工作。那么,还是现在花一点时间先把它学会吧。
他也提到说:
对于技术,你的时间最好花在Struts、Spring、Hibernate、AJAX框架和JavaServer Faces的学习上。学习这些技术不是什么小事情,而需要做好合理的学习计划,挑选基本好书,然后使用每一项技术编写一个范例。简单来说,如果你可以把这些技术添加到你的简历上,那么你找工作的时候应该不会有什么问题了。