连续三年,《程序员》杂志和CSDN.NET网站,共同举办面向中国程序员的大型调查。连续三年,每到这个时候,我都要为杂志写一篇关于调查结果的稿子。无窗的办公室外,严寒刺骨,而办公室里却是闷热难当。我抹去额头的汗水,一边想,中国有多少程序员,此时此刻,也在挥汗如雨?在过去这一年,他们为之努力的中国软件业,发生了怎样的变化呢?如果读者朋友和我有一样的疑问,那么,我眼前这份调查数据,可以解答我们共同的问题。
越鸟栖不定——生存状态篇
本次调查显示,中国软件开发人员中,21至30岁的,比例将近90%,其中男性比例超过90%。软件从业人员流动性较强,他们是年轻的后生,是闯荡IT江湖的好汉。曹邺诗中写到的“越鸟栖不定”,正是他们的写照。对于这些栖息不定的鸟儿,北京、上海和广东是可以暂时立足的枝头——相比其他地区,三地工资较高一些。北京和上海地区,3000-5000人民币元/月这个收入水准的程序员比例较大,而广东地区有逾43%的程序员仅有1000-3000人民币元/月的收入。5000元月薪以上收入者,在所有地区,都不是大众人群。

和去年情况差不多,大量程序员仍然在为1-50人规模的小型民营公司工作。独立软件开发和系统集成,是这些公司的主营业务。一些公司尚处于初创阶段,管理制度、福利制度等都不完善,甚至还有少数公司不能保证员工基本工作待遇,这样,导致劳资纠纷就不足为奇了。但愿在2007年,企业主们能依据《劳动法》和其他法律、法规,为员工创造良好工作环境,从而换得双赢局面。程序员也要懂得以法律为武器,捍卫自己的权利。

操作系统篇
在Windows平台上,Windows 2003如微软所愿,逐渐取代Windows 2000在服务器端部署的地位。部署在Windows 2003上的应用,有42%迁移自Windows 2000。不仅如此,大量的Java应用也部署在Windows系统上(包括服务器端和桌面端)。在Linux领域,最受欢迎的部署平台是RedHat Fedora发行版,国产Linux发行版仅占区区5%。

国产“银河麒麟”操作系统,2006年引发了一场影响深远的争论。CSDN网友dancefire,在Blog上发表质疑麒麟“自主创新”的文章,指出麒麟实际上是源自FreeBSD系统。其他国产Linux发行版厂商,在这场论战中选择了沉默,因为,很遗憾,他们的操作系统,同样源自Unix/Linux的某个开放源代码版本。希望2007年各个国产操作系统厂商,不再拉大旗做虎皮,脚踏实地,做出像样的产品来。
2007年,Linux挺进桌面市场的胜算不会太大,在服务器端也有可能受到Solaris的阻击。Java和Solaris开源后,Sun的策略是打造“Solaris+Java黄金平台”概念,但对大量运行LAMP的公众站点,该策略未必有效,倒是在企业信息系统中,至少或能守成。
.NET的2.0时代
和2005年相比,C#在.NET开发市场的占有率上升了10个百分点,可怜的Delphi.NET跌到3%不到,而VB.NET则波澜不惊,我自行我路。相较于2005年, .NET Framework 1.1的应用比例大幅度下降,而2.0应用比例却扶摇直上 ;目前,两者的应用比例,已经基本持平。应该说,集成在Windows 2003的IIS6,和开发工具VS.NET 2005,是促进.NET Framework 2.0得以广泛采用的有利因素,但VS.NET 2003目前仍占有.NET开发工具市场的大部分份额。预计2007年.NET Framework 2.0会全面取代1.1版本,不过3.0版本成为主流还得假以时日。
值得注意的是,用户对.NET平台的安全性,普遍持有不完全信赖的态度,仅17%的用户认为,.NET非常可靠。我认为,对.NET安全的信心不足,很大程度上,是源自于对Windows安全性的信心不足,这也是微软平台一向为人诟病的地方(见表5)。
缺乏操作系统级的支持,使得.NET Framework暂时只能征战于Web开发领域,缺乏在Windows系统上“本土作战”的粮草支持。WPF(Windows Presentation Foundation)虽然可以脱离Vista、在其他Windows操作系统上运行,但仍然会遇到同样的问题。.NET Framework打入桌面,还得靠Vista。在微软的战略中,ASP .NET AJAX应该是一种过渡技术。基于WPF和WPF/E的RIA,才是真正意图所在。
廉颇尚能饭:Java篇
Java发展十余年后,由强健而渐有臃肿之态。2006年让Java遭受当头一击的,莫过于以RoR为代表的动态语言Web开发框架了。尽管RoR尚未得到广泛采用,但它足以让整个Java社群陷入反思。尽管包括James Gosling在内的Java大牛们都坚持说Java可以做比Web开发更多的事情,但我们必须看到,Web应用占到Java应用总数的50%以上,而这个领域却正在受到威胁。好在传统大型企业应用,应该会在相当一段时间内,保持目前Java为王的状态。
JSP/Structs/Hibernate/Spring是最受欢迎的四个Java开发框架。JSF仅在区区7%的项目中得到采用,这个数字短期内不会有太大增长。用户通常通过JDBC和Hibernate访问数据库,目前采用前者的,多于采用后者的。
Java开源应该说是2006年Java领域最大的事件。但我要说,和当年的Windows源码泄露一样,我不认为这事儿对中国程序员有多大意义。JSF、Java语言动态化等话题,也许更值得留意和关注。
开发工具及软件生命周期
在去年初的杂志文章中,我预测,JBuilder会持续走下坡路,而Eclipse则会走高。今年的调查数据,不幸证实了这个预测。相比去年,Eclipse的采用率上升了十多个百分点,JBuilder却一路降到17%的占有率。
在.NET开发领域,Delphi.NET也无所作为。纯粹的开发工具商业市场,在逐渐消逝,所以Borland才会决定将IDE部门分拆为一家新公司,母公司主攻软件生命周期管理。应该说,这是一着险棋,但却不能不为。实际上,今年Borland的ALM产品,在需求管理和变更、缺陷管理领域,都有不俗成绩。
VS.NET 2003仍然是.NET开发领域的王者,但2005版本的采用率上升迅速。随着.NET Framework 2.0的进一步普及,相信VS.NET 2005会取代2003版本的地位。除了VS.NET开发工具系列,微软在软件生命周期领域也有所斩获,特别是Project之于项目管理、Visio之于建模、VSS之于源代码管理,都是软件开发项目的首选。
从整个软件生命周期管理市场来看,IBM Rational在多个子领域胜出,且在其他子领域也通常能名列前茅,综合得分最高。2007年,TFS(Microsoft Team Foundation System)将会在基于Windows平台的开发项目管理