编辑空间

走近软件人 接近理想

用户操作
[即时聊天] [发私信] [加为好友]
泰稳ID:futurelight
514497次访问,排名86好友4人,关注者69
做高质量的技术内容,为中国技术社区尽一分力量。
futurelight的文章
原创 214 篇
翻译 9 篇
转载 11 篇
评论 861 篇
泰稳的公告
InfoQ中文站
关注企业软件开发领域的变化和创新
最近评论
lilyliu_2008:hao!
sophiazhou:感悟很不错!看了别人的东西,能自己去写心得,不错!然后有所得
dengke19870616:
chenjun8707:确实很不错
fadeway:谢谢分享
文章分类
收藏
    相册
    相册库
    夜探新浪
    推荐社区
    《程序员》杂志官方博客
    InfoQ中文站—企业级技术社区
    ZDNet China软件技术专区
    博文视点官方博客
    友人博客
    《程序员》孟大师
    CSDN测试圈 聚天下高手
    David turing
    DBAnotes
    EricLee
    jay CTO,Dreams.
    Sean.Pu的Platform
    何为超媒体?阿魔为你解说
    别人称他为表哥
    博文周老师
    博文彭俊
    图灵刘江(RSS)
    小熊
    朋友的爱比网
    桂枝香在故国晚秋(RSS)
    梁宁
    讲武堂-Jiangtao
    赫拉迪克宝盒
    辛佳雨(RSS)
    邢波涛
    闫辉
    陈绍英的测试专区
    韩磊@CSDN
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 回顾动态语言的2007——乱花渐欲迷人眼收藏

    新一篇: 微软发布SQL Server 2008和Visual Studio 2008开发平台 | 旧一篇: 中国技术社区活动日历表发布啦

    在去年这个时候,《程序员》&CSDN的总编孟岩在展望2007年的动态语言发展时,发出感叹“未来属于动态语言”。未来这个词汇包含着无限的含义,2007年属于“未来”,5年后的2012年也属于“未来”,究竟动态语言什么时候能够占据统治地位,目前来看还是个未知数,但同时我们可以感知的是:在动态语言领域,现在的形势是——乱花渐欲迷人眼。

    如果说我们回望不久的以前,比如5年前,我想很多人会大发感慨,那是一个多么简单和纯洁的静态语言年代啊,要么站立在Java平台上独孤求败,要么奔赴.NET战场挑选一下微软提供的C#、VB等兵器,“非此即彼”。可是现在,时代变了,语言多了,诱惑多了,眼睛也花了。如果说按照对动态语言的一个不完整定义,“所谓‘动态语言’,也叫脚本语言,就是说一种在执行期间才去发现数据类型的程序设计语言,主要创建一些需要经常更新的动态系统。”,我们可以列举出的动态语言如ActionScript、Erlang、Groovy、JavaScript、Lua、Perl、PHP、Python、Ruby、Scala等,这还不包括运行于Java和.NET平台上这些语言的变种。

    在短短的一篇文章中,我们很难将每一个语言都介绍清楚,这也不是我们的目的。本文主要是选择几个重点的语言,从社区、厂商和工具等方面的支持方面回顾一下在过去的一段时间,这些语言的发展和变化,并最后做一简单展望。

    Python:2007年度程序语言

    一直关注语言流行度变化的网站TIOBE宣布将Python列为2007年度程序语言,入选理由为:在过去的一年里,Python的占有率上升了2.04%,在2007年12月份更是历史性地首次超过Perl,位列最受欢迎的程序语言第6位。虽然任何数据都不是那么准确,但是多少可以看出,Python正在赢得越来越多开发人员的喜爱,尤其是系统管理员和项目构建工程师等。有理由推断在2008年Python 3000发布后,Python的受欢迎程度会继续升温。“背靠大树好乘凉”,窃以为可以用这句话来形容Python的发展。Python的创始人兼主力开发人员Guido在2005年进入了Google公司,而Google给他的任务也非常简单,就是用Python语言开发一些为Google程序员所使用的工具,以提高他们的工作效率。更有意思的是,Google还说,Guido只需要用一半的时间来做这件事就可以了,另一半时间可以专心开发他的Python语言。虽然我们不能武断推测,衣食无忧后的Guido让Python有了更大的发展,但TIOBE的数据显示字2005年,Python语言的被采用率持续上升。不过美中不足的是社区在工具方面对Python的支持,也许是Python过于灵活或者简单,只有少数高人才能掌握,所以高人们也多用最初级的文本来编写Python代码,目前IDE方面除了Eclipse上的PyDev,少见其他主流IDE对Python的支持。

    Ruby:宝石继续发光

    因为Rails,Ruby声名鹊起,但事实证明,Ruby没有辜负Rails的介绍。有消息称现在硅谷有近80%的项目是基于Ruby语言的,而国内的一些新兴网站比如圈内网、技能云,包括技术社区JavaEye等也都采用了Ruby on Rails技术。在社区支持方面,这两年关于Ruby的讨论从来就没有消停过,比如Oreily、InfoQ、IBM developerWorks等知名技术媒体专门开设了Ruby专区,而Rubyforge上也多有新的项目发布。Sun公司自从和JRuby团队结缘以来,持续加大投入,在2007年5月份推出了JRuby 1.0,微软在MIX 07大会上也宣布了在.NET CLR之上的Ruby实现——IronRuby。在开发工具方面,Ruby领域也有了很大的进步,在第18届Jolt生产力大奖的Web开发工具提名方面,和Ruby相关的就有三个入选,如3rdRail、IntelliJ IDEA和NetBeans等,尤其是NetBeans在2007年12月份发布了6.0版本,提供了对Ruby和ActiveRecord代码自动完成等功能。另外由ThoughtWorks开发的方便部署的工具RubyWorks也吸引了社区的关注,被称为“最接近一步到位的Rails生产环境部署”。

    PHP:宝刀未老

    PHP现在绝对是一个香饽饽,那些曾经以为使用PHP很不上档次的人现在可以昂首挺胸大步前进了。抛开成熟的社区支持不说,单是在厂商的支持上,2007年的PHP就很值得大书一笔。在2007年的LinuxWorld大会上,PHP背后的Zend公司和IBM宣布为IBM定制的Zend Core和DB2将建立更深入的合作,让企业可以跨各种硬件和操作系统来部署PHP和DB2,并活动来自这两家公司的专业支持。而从前一直视PHP为竞争对手的微软,现在也“降低身段”开始接纳PHP了,在2007年11月份微软表示将加强在IIS 7版本中对PHP的支持,并发布了专为PHP准备的SQL Server数据库驱动程序。在工具支持上PHP方面的一个亮点是CodeGear公司发布的Delphi for PHP,相信会吸引那些习惯于Delphi平台却又需要开发Web应用的人群。

    Groovy:据说是和Java最像的语言

    那些坚信Groovy是目前为止最有发展潜力的动态语言的人们,常会提到Groovy的两点优势:一是Groovy正在标准化,二是Groovy和Java语法完全兼容。也许正是这两点保证了Groovy的稳步发展,当然我们还可以列出其他Groovy的种种优点。对Groovy本身而言,2007年9月份1.5版本的发布算是一个大事情,不仅增强了对Java 5特征的支持,在动态特性上也有了革新的进步。在2007年德国最重要的Java会议JAX上,Groovy赢得当年最具创造性的项目大奖,从前Spring框架也曾获得过这个奖项。在开发工具方面,除了Eclipse对Groovy的支持外,2007年7月份NetBeans启动对Groovy的支持,而12月份发布的IntelliJ IDEA 7中也宣称对Groovy和Grails(基于Groovy的一个Web框架)提供支持。但是Martin Fowler在他最近发布的一篇文章中对Groovy的未来发展有所担忧,原因是Groovy的社区支持还不够成熟。

    JavaScript:借风而起

    具体的历史不需要考证,在很多软件开发人员的印象中,使用JavaScript的是不能进入“一等公民”之列的。其原因就在于这一语言入门门槛实在太低,连没有正式学过几天编程的人都能够稍加培训就能用其开发网站,这让那些使用“高级语言”工作的人颇为不屑。可是撞大运也好,咸鱼大翻身也好,Ajax的出现让JavaScript从“寻常百姓家”堂而皇之地飞入“贵族”之地。更有Ajax方面的专家Stuart Halloway表示说“到2011年,JavaScript将被公认为是一种拥有开发现代应用程序所需的一整套新特性语言,而且JavaScript程序要比类似的Java程序紧密十倍。”JavaScript目前在TIOBE的最流行语言中排名第十,如果将Ajax的出现带给JavaScript的突变忽略的话,JavaScript这几年的发展倒也是波澜不惊。但是2007年围绕JavaScript的升级引起了不同阵营之间的激烈讨论,是不是要升级,升级到什么程度,这是一个问题。随着IE浏览器和Firefox浏览器在市场份额上占有率差距逐渐缩小,相信关于JavaScript标准最新版本ECMAScript 4的争论还将继续持续下去。最后值得一提的是作为JavaScript的变种,ActionScript在Adobe的推动下越来越得到技术开发社区的认可。

    其他语言

    对于脱离不开JVM而又想避免Java复杂的语句的开发人员而言,Scala和Groovy的差别并不大,而且Scala可能较Groovy还更胜一筹,据测试Scala的性能要远高于Groovy。但学术思想浓厚的Scala要想击败能和Java无缝衔接的Groovy,显然还有待时日。与很多动态语言一样,Erlang同样也属于“厚积薄发”型,其鼻祖Prolog在20年前就为人所用,现在已经成为开发并发系统的首选语言且为像ThoughtWorks等软件公司的青睐,但是市面上关于Erlang的书籍和教材还较少,这也是限制其发展的一个因素。

    如果没有记错的话,Perl团队在2000年就宣布开始了Perl 6的开发工作,时至今日已是7年有余,虽然并不是说一定要有一个6.0版本,而是说更新一个版本需要如此长的时间,不知道什么样的铁杆Fans才有如此耐心?如前文所述,本文所没有提到的动态语言还有很多,这儿不再一一列举,感兴趣的读者可以通过这些语言的官方网站了解详情。

    总结和展望

    开发社区从来不缺少创意,这也是语言世界不断繁荣的原因之一,每个语言都有自己的独特之处,但真要形成气候,绝不是一人之力就能够完成的事情,如Ruby,其实从它的诞生到如今的人气飙升,它并没有改变什么,如果不是Rails框架的出现,我想现在Ruby如其他众多昙花一现的动态语言一样,少人问津。以上我们所提到的语言,并不是说它们一定要比其他语言强悍多少,而是因为它们幸运地获得了社区和厂商的支持。

    不管怎样,动态语言正在被更多的人所接受和使用,在CSDN所做的2007年读者大调查中,动态语言在开发人群中的受关注程度竟然达到12%。而在TIOBE的排名中,如果加上越来越动态的Java和c#,动态语言竟然占有了前十名中的六个席位(包括PHP、Python、Perl和JavaScript等)。虽然有那么一点选项稍多的忧虑,虽然有那么一点乱花渐迷眼的趋势,但再次借用去年孟岩先生对动态语言发展的预测,我们认为“未来属于动态语言”是有根据的!

    原文发表于《程序员》杂志2008年第2期

    发表于 @ 2008年03月07日 14:13:00|评论(loading...)|编辑

    新一篇: 微软发布SQL Server 2008和Visual Studio 2008开发平台 | 旧一篇: 中国技术社区活动日历表发布啦

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 泰稳