不安分的2004与震荡的2005——2004中国程序员大调查

转载 2005年04月24日 16:52:00
不安分的2004与震荡的2005——2004中国程序员大调查
(2005.01.04)   来自:《程序员》杂志   韩磊
 

      “这是最好的时代,这是最坏的时代;这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是希望之春,这是失望之冬;人们面前有着各样事物,人们面前一无所有;人们正在直登天堂,人们正在直下地狱。”
                                                                                                    ——狄更斯《双城记》

       在审视屏幕上的数据图表时,大文豪狄更斯的断言不断在脑际萦绕。面前这份Excel文件,包含了20,000多名中国程序员对近70个问题做出的回答。这些问题涉及软件开发工作的各个方面,来自今年早些时候本刊联合CSDN网站和各种IT机构所做的大型网络调查。面对全国60万开发人员(其中30万为职业开发人员),结合其他的一些调查和报告,本文试图说明中国开发者工作状况,并在某种程度上对今年的发展趋势做出预测。

他们是谁?在做什么? 

       有位朋友在一篇为中国软件技术叫屈的文章中说,他当年曾经“用6502写过软卷轴”。相信现在大多数中国程序员都看不懂这句话——实在太过时了。现在是年轻人的天下,20—30岁程序员占总人数的80%以上,而其中26岁以下的又占一大半。乳臭未干但朝气蓬勃,这是最恰如其分的评价。
       这有理由让人担心中国程序员年轻化带来的问题。从人员结构来看,程序员、高级程序员、项目经理、架构师的比例分别是35.44%、19.74%、10.24%和2.42%,27岁以上30岁以下的人员,具备相当实战经验,人数虽少,但却是项目的中坚力量。大量缺乏经验的年轻开发者,仍在“从奴隶到将军”的漫漫长路上摸爬滚打。他们的成长,同时也代表着中国软件技术和业界的逐渐成熟。
       这支年轻的队伍是新生产力的代言人,他们是否得到了应有的回报呢?52.86%的受访者月收入在1000-3000元之间,基本上是入行两年内的正常收入水平。月收入3001-5000元的占25.49%,属于项目中的主力程序员级别。12.42%的受访者月收入达到5000-10000元人民币,恰好与前文提及的项目经理和架构师比例之和大致相当。国家统计局2004年3季度的统计结果显示,城镇人员月平均收入约2900元;软件从业人员的收入在社会上处于中等偏上位置。另一项关于薪资的调查显示,开发技能和经验是影响程序员收入的重要因素。
       影响薪资的因素还包括工作地点。北京、上海、深圳、广州是IT企业集中的城市,这些城市的软件开发人员收入水平大致相当,但各地有各地的特点:广州中低收入者比例比其他城市高,北京中偏高收入者居多,上海和北京类似甚至更为明显,深圳月收入5000-10000元的程序员在四个城市中是比例最高的。
       93.75%的受访者在项目中用到数据库技术,行业项目开发和应用软件开发势均力敌。特别值得注意的是教育(5.85%)和制造业(10.82%)的行业应用。国家在远程教育方面的政策性投入显然推动了教育行业软件的发展;在10.82%的数字背后,是制造业信息化需求高涨的呼声。教育软件和远程教育系统仍将呈增长态势;而计算机相关制造业方面,由于PC市场的整合,有太多未知因素会影响其发展。

我Java,我开源

       中国开发者普遍接受J2SE 1.4平台,作为推出已经两年的成熟Java2平台,J2SE 1.4完全有理由享有这样的明星待遇。开发工具方面,JBuilder继续称霸,但开源的Eclipse已经抢到18.94%的占有率,且呈增长态势。在8月份的一次线下活动上,Borland(中国)高级工程师左轻侯先生表示,Eclipse和JBuilder不是一个级别的东西,前者是IDE,而后者涵盖了软件开发生命周期的各过程,是成熟的企业级开发平台。随着Eclipse的成熟,更多特性被加入进来,很难说它未来会发展到什么程度。IBM对开源社区的捐助,显然有其深意。


       无论如何,开源软件为Java拥有成熟企业级架构做出了极大的贡献,同时自己也赢得了市场的认可。JBoss试图通过销售服务挣钱,如果它真的成功,开源软件对抗商业软件也有了经济意义上的说服力。没有人会只想要一张吱嘎作响的床,开源与商业的根本分歧在于,到底什么才能成为商品。今年开源社区官司不断,其中甚至有开源组织之间互相攻击的例子(Apache与JBoss互称对方侵权),让不了解开源的人顿生“相煎何太急”之感。别忘了,开源协议的复杂度,并不比微软那纸“最终用户协议”来得轻巧。号称“自有知识产权的Linux操作系统”的,可以休矣,踏踏实实学JBoss才是有出息的做法。
       调查显示,开源软件的首选平台是Linux。商业(ERP、CRM)和Web应用是开源软件的两大应用方向。在被问及“使用何种开源协议”时,近一半用户选择了GPL,相信这与开发者对各种协议的熟悉程度有关(或者说,与受访者经常使用的开源软件所采用的协议有关)。

.NET异军突起

       当Anders Hejlsberg选择离开Borland时,整个Delphi开发者社群都在叹息。在 .NET Framework上Hejlsberg找到了更能实现自己想法的空间。如同整个.NET平台,C#语言如今已经是计算世界中不容忽视的初生牛犊。
       .NET是继Java之后最重要的平台级开发框架。尽管在我们的调查中仅有一半的受访者已经开始在.NET Framework上进行应用开发,但在回答“明年打算学习什么语言”时,选择C#的多达36.21%。这说明基于.NET Framework的应用开发还有很大空间。



       仓促推出的Delphi 8 for .NET并没有让Borland追上微软的脚步。该产品被普遍认为是让人失望的“半完成版”,许多Delphi开发者转向VS.NET。VS.NET几乎是唯一可选的成熟.NET开发工具,在Delphi 2005真正赢得市场(机会微乎其微)之前,目前83.82%的占有率不大可能降下来。作为Delphi的老用户,我期望Delphi 2005能收拾Delphi 8 for .NET的烂摊子,在.NET Framework开发工具战场打下自己的一块地盘——这个任务有些艰巨,因为有82%的受访者表示,短期内不会考虑更换开发工具。


       借.NET Framework高歌猛进之机,微软对VB动了一次大手术。VB.NET是真正面向对象的语言,撇除某些历史遗留问题,对.NET Framework的支持已经足可称完整,而且也获得了仅次于C#的用户追捧度。Visual C++.NET可谓是夹缝中生存,面临不高不低的尴尬局面。对于C++程序员来说,现在马上决定转向    .NET平台尚为时过早。除了Delphi,另外一些编程语言/应用平台也在向.NET靠拢,特别是一些动态语言。

       绝大多数程序员是从其他平台或编程语言转向.NET Framework应用开发。其中,来自C/C++的人数最多,达27.29%(我猜他们不会太happy);来自VB的占22.49%(上帝保佑吃饱了饭的VB程序员);来自Java的占16.42(Bye, McNealey);来自Delphi的占15.99%(跟着Anders没错)。不能忽略从ASP等脚本语言转向ASP.NET的程序员们,他们占总人数的13.18%。是的,他们还不是多数,不过请注意,.NET Framework似乎对每个领域的开发者都具有吸引力,这的确是它可怕的地方。

       有趣的是,58.34%的受访者表示,他们的.NET应用需要移植到其它操作系统平台。开发者的胃口似乎永远填不饱,怎么能责怪他们——谁敢说结合Java跨平台和.NET语言无关的想法是错误的呢?然而理想终归是理想,微软将把     .NET Framework和Windows操作系统融为一体,它可不希望别的操作系统借助.NET而崛起。

Web Service:爱你没商量

       在不间断的争论之后,XML/Web Service终于渐入佳境。目前在开发中使用XML的人数占总人数的59.54%;对于Web Service,这个数字仅是49.51%。调查中显示的增长趋势令人震惊:计划使用XML的人数占总人数的89.44%,计划使用Web Service的人数占总人数的84.74%。很明显,XML/Web Service已经或即将成为未来应用中数据交换、表达的杀手级标准。由于大量应用会是跨地域的网络应用,所以,Web Service的安全性和效率,是受到普遍关注和担忧的问题。


       令人忧虑的是,有约15%的用户在选择使用XML时,是出于“遵循业界标准”的考虑。把“业界标准”当作唯一的影响因素,极有可能忽略项目本身架构的合理需要,使数据表达和数据交换成为项目的薄弱环节,甚至是鸡肋。

移动设备应用开发:这块奶酪能动吗?

       有24.34%的受访者涉足嵌入式/移动设备应用开发,这个数字可能略高于实际的比例,但也足可说明嵌入式/移动设备应用开发是一块诱人的新鲜奶酪。J2ME是嵌入式/移动应用平台的王者,Linux和WinCE分列二、三位。Nokia等厂商力推的Symbian平台目前开发者占有率尚未达到满意水平,考虑到调查项合并了嵌入式设备(例如PDA)和移动设备(例如智能手机),Symbian、WinCE系列在移动平台上会是竞争的主要两方。如果厂商能在标准实现上做得更加规范,则J2ME的跨平台特性会发挥得更加淋漓尽致,继续保有王者地位。



       从编程语言的角度来看,C/C++、Java、C#是嵌入式/移动设备应用的主要开发语言。这也恰好可以解释为什么许多程序员选择C/C++、Java和C#作为他们下一个要学习的语言。


       我在今年初的文章中曾断言,未来的应用会是跨设备、跨媒体的。无论是“PDA+手机”还是“手机+PDA”,最终个人移动终端会是我们不可缺少的随身工具。越贴近移动终端特性的应用,需求也越大。通讯、日程管理、商务,是移动设备应用的三大主题。

       这块奶酪到底能不能动?个人移动终端软件应用会是极其庞大的市场,不过最好厂商之间的隔离、操作系统之间的隔离考虑在内,甚至同一厂商和操作系统,你也有可能需要为每个机型做一个单独的版本。“一次编写,到处运行”在移动终端上现在还行不通,哪怕是J2ME也不能完全做到。所以,你针对的用户,将会是整块奶酪上面的一小粒。为了获得另外一小粒,要付出的力量可不小。与硬件紧密相关的特点,使得移动终端开发具有相当陡峭的学习曲线(仅就各主要手机型号的native的代码而言,不包括Java,也不包括WinCE)。选择移动终端应用开发,或许得抱着不成功则成仁的决心。

精致化遭遇软件作坊

       李维先生在《Borland传奇》一书中写道:“精致化的程序开发能力、面向对象和Modeling技术的平民化,则是属于比较贴近开发人员的发展,也是开发人员能够掌握和进一步控制的因素,是软件人员必须了解未来继续从事软件开发工作时必须克服和掌控的技术趋势。”各个开发工具厂商都在推自己的“精致化”方案,例如Borland的ALM/SDO,IBM Rational的六种开发角色。事实上这些方案都是关注开发过程本身,力图使其中各种参与角色和环节达到最优化的配置与协同。
       这些概念在多数中国软件公司中遭遇了困境。
       我们不得不承认,许多软件公司的开发过程仍然停留在作坊时代,甚至连最基本的配置管理都没有做到。在工作中没有使用任何源代码版本管理工具的竟然占总数的34.1%,因此带来的混乱和损失之巨大几乎无法估量。在开发工作的尾声,没有使用任何自动化测试工具的占到总数的60.24%,这样做出来的产品谁用谁倒霉。




       有69.21%的受访者表示其服务的组织使用各种建模工具。具有讽刺意味的是,我不止一次听到过所谓“先编码,后建模”的说法。建模成为糊弄客户的手段,或是纯属为了达到CMM标准要求做的表面功夫。难以想象没有源代码管理和自动化测试的软件企业,能很好地利用建模和其他方法,做出高品质产品。

       TDD/Agile/XP/RUP/MDA,这些软件开发方法和思想不见得会在短时间内对中国软件开发技术产生很大影响。许多中国软件企业需要补基本功这一课,再来谈“银弹”。对于开发者也是如此,与其问“你XP了吗”,不如问“谁吃了我的代码”来得实在和有意义。

专业水平:修行靠个人?

       多数软件企业没有对程序员开发水平的提高给予足够重视,也未配备相关资源。没有为开发人员技术培训拨出专项费用的企业占77.64%。
       由于各种原因,程序员经常参加各类技术讲座的比例不超过22%,有30.58%的受访者不参加任何由厂商主办的开发者技术大会。开发人员了解技术信息的渠道,集中在厂商技术支持站点和第三方技术信息站点。MSDN中文站、IBM DeveloperWorks中国网站和Sun技术社区,是中国开发人员最常访问的厂商技术支持网站。BEA dev2dev和Sybase Developer Network是相关领域技术人员的首选信息来源站点。大多数开发者倾向于获取本地化内容,而非阅读英文内容。


       受访者普遍认同各类厂商认证考试,持有厂商认证证书的受访者占总数的34.8%,而有77.74%的受访者表示打算参加这些认证考试,
       培训是受访者认为重要的学习渠道之一。“希望通过培训学习实际技能”和“希望通过培训学习更多理论知识”的人数大致相当。费用和时间是阻碍开发者参加培训的两大障碍,后者与所在企业相关规定有关。所以,选择“晚班或双休日班”培训的人数占总人数的76.8%,也就不足为奇了。在选择培训机构时,师资力量是最重要的衡量因素。知名的资深人士、专业培训讲师、专家学者,是受训者最愿意接受的讲师。只有4.32%的受访者愿意选择大学教师作为讲师,这从一个侧面反映了我国大学计算机专业教育躲进小楼自成一统的自闭格局。

结语

       2004年初,我曾提出几个关键字:移动平台,64位计算,Linux,在线娱乐,Blog。2004,这不安分的年度开始于一个笑话(FM365域名被抢注),结束于另一个笑话(联想收购IBM全球PC业务)。2005可能是震荡的一年,无论是软件还是硬件,抑或是互联网本身,都即将进入新一轮的进化与整合。系好安全带了吗?狠狠地踩下油门吧。

       本次调查是CSDN主办,联合众多技术网站共同进行的调查,用户需要填写几十个专业问题。这是中国软件史上最为详尽和专业的调查,大家的参与热情之高,远远超出我们当初的预料。


本文来自《程序员》杂志(2005年第01期),转载请注明出处。

    
    网友评论
loveme820:  客观点,4年前我对这类报道很感兴趣,2年前觉得客户关心的不是技术,而是产品能带来的好处,现在,觉得要想给客户带来想要的,首先得了解各种技术,才能少走弯路,给自己一个最优的路。c++才是真正的程序员?你试着用C++写个网页登录程序看看。杀鸡就得用杀鸡的刀。 (2005.03.09)
ybfu:  说老实话,2年前我对这种报道非常感兴趣。时至今日,我更关心的是软件产业的发展趋势,市场中,客户对你用哪种技术不关心。他们关注的是ISV做的东东是不是能给他们带来好处!程序员们啊,要想有出头之日,路遥遥其休远兮~~ (2005.03.08)
discory:  c++,只有c++才是真正的程序员 (2005.03.08)
mianbao4068:  java,当然是java! (2005.03.07)
xiaowenand:  up java (2005.03.07)

相关文章推荐

不安分的程序员!阿里90后员工做了个随时FreeStyle的人工智能

顶着鸭舌帽、戴着墨镜,挂着大金链子唱着自己写的rap,这对于从来没有玩过音乐,甚至五音不全的90后程序员芦阳来说,看上去是个非常遥远的梦。 不过最近,他真的在阿里电台和朋友录制了人生第一首rap...

2008中国软件开发者大调查摘要

  • 2009年07月15日 10:58
  • 987KB
  • 下载

2012-2013年(第五届)中国嵌入式开发从业人员大调查正式启动

2012-2013年(第五届)中国嵌入式开发从业人员 大调查   活动背景:在今天所处的大时代背景下,嵌入式、3G、物联网、云计算俨然已成为信息产业的主旋律,不管从政府大力扶持,还是从产业变革来...

2014中国大数据行业大调查:开发者究竟需要什么?

摘要:从11月7日到12月7日,在短短一个月左右的时间,我们得到来自全国各地3326位热心用户的支持,并从中挑选数十位朋友赠予丰厚大奖,下面我们来一起看下本次调查为我们揭示的大数据行业,以及那些获奖的...

2012年软件行业生存大调查:程序员的日子不差

自2012年初,2012年软件行业技术人员薪资大调查,引起了广大开发者们的热烈反响,短短两月时间内,近万名开发者提交了调查数据。尽管这只是中国百万开发者大军的一小部分,但他们所在的行业几乎涵盖了整个中...

Stack Overflow程序员最不喜欢的编程语言大调查:Ruby、Objective-C、PHP中枪

看过许多最受欢迎的编程语言榜单,但你知道开发者最想规避的语言是什么吗?Stack Overflow 近日发布了一些数据,试图找出最不受欢迎的编程语言。 下文数据是由 Stack Overflow...

程序员薪酬大调查:学哪种语言最赚钱?

【IT168 评论】程序员最常用的编程语言:      JavaScript连续五年占据了该调查的榜首,热度有增无减,SQL、Java的排名没有什么大变化,Python和PHP第一次排名如...

2011年软件行业大调查:程序员的日子不算差

自2011年初,2011年软件行业技术人员薪资大调查,引起了广大开发者们的热烈反响,短短两月时间内,近万名开发者提交了调查数据。尽管这只是中国百万开发者大军的一小部分,但他们所在的行业几乎涵盖了整个中...

2017年一线城市程序员工资大调查

今天晚上7点,爬了某招聘网站,获取近一周的程序员工资18275条。其中,有工资的17628条。本文分别统计了工资的分布,工资和学历,地域,工作经验和公司的性质,规模,产业的关系。这里的程序员包括普通程...

本周杭州程序员工资大调查,高于深圳和广州

今天晚上11点,爬了某招聘网站,获取近7日内杭州的程序员工资2344条。其中,有工资的2275条。本文分别统计了工资的分布,工资和学历,工作经验和公司的性质,规模,产业的关系。这里的程序员包括普通程序...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:不安分的2004与震荡的2005——2004中国程序员大调查
举报原因:
原因补充:

(最多只允许输入30个字)