【51CTO独家特稿】近日,TIOBE发布了2010年10月的编程语言排行榜,距离宣布“年度编程语言”(在一年内上升率最快的语言)还剩3个月了。目前Objective - C遥遥领先,上升率为2.54%;其次是Python的0.96%,以及C#的0.55%。从榜单上看,本期编程榜没有发生太大的变化,和51CTO最近做了一次网上调查一样,Java依旧是广大开发者的首选语言!
51CTO移动开发者网上调查截图
编程语言排行榜前20名榜单
最初,Java作为一个实验室项目,因为投标美国数字电视项目失败几乎被打入冷宫,但是因互联网的兴起而复活。十几年来,Java一直是被使用最多的语言,在10月编程语言排行榜上,Java也占据着王者的位置。但是Java风光的背后却充满了混乱的喧嚣!很多人认为这是Oracle收购Sun之后的阵痛,但是在很多年以前就有一篇介绍Java混乱的文章:Sun和BEA一直在博弈是否合作推出SOA框架(虽然Sun和BEA最终合作了,但是这两个倒霉蛋都在自己logo上面加上“Oracle”的字样);社区在为EJB与非EJB吵吵嚷嚷;纷乱的框架让开发者烟花缭乱,而这些框架又在诋毁对手……弹指一挥间6-7年过去了,眼前Java的混乱却一直都没有停止过,Java世界里面到底发生了什么?
潘多拉的盒子——失控的源代码
开放源码的精神在于使用者可以使用、复制、散布、研究、改进软件。开源世界里最重要的一项技术便是我们熟知Java技术。Java技术在一开始就定位在“跨平台、动态的Web、Internet计算”这个位置上。为能使Java比晚自己六年出现的.Net更具活力,前Sun公司在2006年11月正式宣布开放Java的源代码。Sun可能没有想到,从这一刻起,Java的混乱局面像开启的潘多拉盒子不可收拾。IBM在第一时间就表示了自己的反对,IBM“建议”Java的开源应该走Apache的道路。为什么会这样呢?在开源世界里谁贡献更多的源代码,谁就拥有了这项技术话语权。前Sun公司对Java开源循序的是GPL是开放源代码的方法,即Sun把Java贡献给JCP和开源社区,开源社区的开发者可以贡献自己的源代码,而使用Java开发产品的厂商在产品面世时也要公开自己的源代码。这种错综复杂的关系让开源社区、各个厂商、Sun以及后来收购Sun的Oracle在Java的世界里争得面红耳赤,像Oracle与Google之间的版权纠纷其根源也是源于此。
“开源”开启的潘多拉魔盒给Java带来的是灾难还是希望?
无作为的JCP
Java项目还要发展。在Oracle收购Sun之后,与Sun行事完全不同的Oracle对待Java的呢?在51CTO独家报道《Oracle比Sun更聪明?细看JCP及Java的未来之路》中我们看到:在Java发展上越来越重要的JCP效率越来越受到诟病,有许多的技术都是在JCP过程外产生,后来才被集成到Java平台中的,而JCP内部很少培育出像样的技术。但是Oracle即不愿放手Java授权JCP,也不敢解散JCP,由自己全权掌控Java。放手Java是不可能,但是Oracle过度地控制,必然会对Java平台产生负面影响,用户的抱怨声也会再起。由众多开发者和厂商授权者组成的JCP本来可以主导Java的发展,但是JCP内部官僚主义盛行,行动缓慢,致使JCP一次次错过重整Java的机会!
跳票王JDK 7重整河山
JDK 7,第一个真正开源的JDK版本,也是要为Java带来变革性的一个版本依然处于默默的研发当中。JDK 7将让Java经历“重整河山”过程。按照Java的计划,要对Java进行大幅度的瘦身,提升执行效率,改变语法结果,支持脚本语言。这个改变也同样是和艰巨的。但是改变之后就是新生,就会让Java重新获得年轻的声明,这将使Java改变目前混乱的局面。Java研发团队从来都没有停止他们的工作,一直在推动的项目前进;众多Java开发者都在关注者JDK 7的发布,但是一次次延期已经使JDK 7成为跳票王。很多Java的爱好者都期待着JDK 7改变Java目前混乱的局面,但是JDK 7从2009年年中发布早期预览版到预计2010年6月发布正式版,再到Java研发团队提出A、B两大个计划,JDK 7一度传言最迟将在2012年发布!Java的希望啊!让开发者如此的焦躁,留给开发者的只是期望和等待!
至于JDK 7是否是Java现今混乱之治的机会呢?让我们继续等待Oracle的B计划在2011年向开发者呈现的那一刻吧!
以乱治乱 不死Java在移动开发领域大展身手
很多人都说Java已死,Java创始人James Gosling却在博客撰文Java离死远着呢!何故?虽然Java给人的感觉越来越笨重,但是移动应用的世界Java牢牢的占据了统治地位。
近年来,移动终端的内涵开始变得越来越宽泛,各类终端的定义边界开始越来越模糊化。“融合”的趋势明显:手机在融合了MP3或者MP4等的多媒体功能之后,又开始融合GPS功能;MP3、MP4也没闲着,iTouch融合了通话功能之后,摇身变成了iPhone,不小心创造了2008年IT通信领域的一大奇迹。由此可见未来移动终端设备的发展必将带动移动应用程序的发展。
目前移动开发的平台非常多,苹果的iPhone OS、Google的Android、微软的Windows Phone、RIM的BlackBerry、老牌手机霸主诺基亚的Symbian以及诺基亚和英特尔合力打造的MeeGo等等,而移动终端设备所使用的移动程序大多只能各自的平台下运行:Android程序不能在Symbian平台上运行,iPhone无法使用的Windows Phone 7的程序。在混乱的移动开发平台中还没有一个能在短时间内击垮所有的对手,但是除了封闭的iPhone使用Objective-C编写程序,其他平台几乎都使用Java。在这片混乱的移动开发平台中,Java已经大展身手许久。Google的Android已经在短短的两三年内成为移动开发领域最不可忽视的力量。Oracle同样也看到这点,先是利用版权问题刁难Google,在近期又推出Java ME最新的路线图。未来移动开发的走势,就关系到Java在移动领域的里发展,尽管Java依旧风光,但是透过这一片混乱的烟雾我们依旧看不清Java的方向。
结束语
开源、中立和客观与商业利益是对立的,但是有时有不得不依赖商业。在Java的混乱世界里,我们不断苛求着Java,用理想主义去看待Java,还是默默的支持Java,是每一个Java程序员的选择。希望Java不畏混乱,一路走下去!
#p#
前10名编程语言趋势走向
其他语言及排名
下面是第50到100的编程语言排名
(Visual) FoxPro, ABC, Algol, Awk, Bash, bc, BCPL, Beta, C++/CLI, Caml, CFML, cg, Clean, Clipper, Cobra, Curl, DCL, Dylan, Eiffel, Erlang, F#, Factor, Groovy, Icon, J, LabVIEW, LabWindows/CVI, Limbo, MAD, MAX/MSP, Modula-2, Modula-3, MUMPS, Oberon, Objective Caml, Occam, Oz, PL/I, Postscript, Q, S, SIGNAL, SPSS, Squirrel, Standard ML, VHDL, X10, XBase, XSLT, Z shell
历届榜单年度最佳语言
编程语言类别
静态类型和动态类型的语言走势
【历期榜单回顾】