未来属于动态语言

来源:互联网 发布:切纸机如何编程 编辑:程序博客网 时间:2024/04/29 14:00

未来属于动态语言
2007-03-03 13:33:59    lightning    来源:武汉白云黄鹤  
........................................................................
  在今天这个信息泛滥的时代,身为开发者,眼光比技术更重要。缺乏眼光的人,着眼于小,为细枝末节的所谓“创新”不惜肝脑涂地,赴汤蹈火,而面临真正变革时,或坐井观天,守旧拒新,或畏畏缩缩,裹足不前。具备眼光的人,着眼于大,平时稳扎稳打,不为世间纷扰所扰,一旦时机出现,则能抛却门户之见,枝节之争,以过人气概投身变革,成就自己的事业。这前后两者的差距之大,其实全在于对大趋势的把握上。
                 
  回顾IT技术不长的历史,我们会发现,每当重大变革发生的时候,在技术圈子里总是存在激烈的争论,总有那些着眼于小的人站在细枝末节上对技术变革本身表示质疑甚至否定。
  当关系数据库和SQL语言把数据管理的繁琐工作从开发者和操作者身上解放出来的时候,有人抨击关系数据库性能低下;当微软开始用C语言开发PC应用程序时,汇编语言的拥护者轻蔑的说,只有汇编语言才能发挥PC机的全部能力;当Web进军企业计算时,一大批专家跑出来抨击HTML界面的呆板和HTTP协议的缓慢和幼稚。然而,所有这一切抱怨、质疑和信誓旦旦的否定,都被技术发展的大潮无情的吞噬,消失得无影无踪。原因很简单,所有这些声音,都是着眼于小,着眼于私,一叶障目,而不见IT技术发展的大势。IT技术发展的大趋势永远都是要更快,更简单。
                 
  从这个角度来看待动态语言,结论就异常的情系。在今天这个时代、动态语言代表着更快更简单的技术大趋势,因此它将必然成为未来构建软件和互联网技术的主角。回顾2006年国内外动态语言的发展历程,也恰恰能够印证这一点。
                 
  Ruby:发现宝藏Ruby的意思是“红宝石”,就是那种能发出激光的石头。而Ruby on Rails则是刚从矿里挖出来、还躺在铁轨上的翻斗车里、没来得及运出去的、能发出激光的红石头。要是我站在矿井口,看看阳光下红彤彤的一堆,再看看黑乎乎的洞口,我一定会贪婪地想,好家伙,那洞口里面还有多少这样的宝贝!我不知道David Heinemeier Hansson是不是有意为之,但是他给自己发明的那个轻量级的Web开发框架命名为Ruby on Rails,无论如何带有隐喻的意味。
  如果说2005年人们发现了Rails,那么在2006年,人们通过Rails发现了Ruby宝藏。当Rails刚刚火起来的时候,很多人觉得不过是Rails有个好想法,在其他语言里同样能做到。但是经过一段时间的模仿之后,才发现根本不是这么回事。构造类似Rails那样的框架就算不是不可能,也是非常困难。再看到Rails社群风气云涌,Rails发展一日千里,连竞争的心都没有了。最后人们不得不承认,Rails的威力很大程度上来自Ruby.于是在2006年,我们看到整个Ruby社群开始快速的发展。
                 
  首先是越来越多的旗帜性任务转向Ruby.除了前几年就已经大量使用Ruby的鲍勃大叔Rober t C. Martin,ThoughtWorks以Martin Fowler为首的面向对象大师们今年也开始在公开场合宣传Ruby.《编程珠玑》作者Jon Bentley,Lisp元老Paul Graham、C++网络编程领袖St eve Vinoski等资深专家尝试Ruby以后也赞不绝口。著名的J2EE技术专家Brute Tate更是干脆就直接号召企业转向Ruby.就连一直挺Python反Ruby的Think in系列作者Bruce Eckel也改变态度,开始研究Ruby.老牌的Ruby专家如Dave Thomas、Andy Hunt、Chad Fowler、Ha l Fulton、David Black今年也非常勤奋的工作,在他们的带动下越来越多的高水平程序员转向了Ruby.
                 
  不过在Ruby社群里还是年轻人打天下。David H. Hasson还是地球上最炙手可热的黑客,Ge offrey Grosenbach紧随其后,来自ThoughtWorks的Obie Fernandez正在帮助Addison Wesley主编一套高质量的Ruby图书,而另一个叫做Mauricio Fernandez的家伙在不长的时间里贡献了一大堆让人惊叹的东西,用200多行Ruby代码编写了一个全文搜索引擎,虽然简单,但是跑起来飞快。比DHH还年轻的Ola Bini一加入JRuby开发组就几乎重写了语法分析器。正是这些新生代高手掀起了Ruby的创新大潮,也推动了Ruby的快速发展。截至2006年底,Ruby在TIOBE全球编程语言排行榜上激进9位,位列第11名。
                 
  Ruby的快速发展当然引起了大公司的关注。Sun聘请了JRuby开发团队,Microsoft聘请了Ru byCLR开发者,IBM直接推出整合了Ruby on Rails的DB2 Express-C,种种迹象表明,Ruby即将走向前台。
                 
  然而,Ruby也有脆弱的一面。其解释器实现得相当简陋,“十五年来所有的虚拟机新技术一概没有包括”。同时,其核心代码又过于复杂,很少有人能够参与到Ruby核心的开发之中。其结果是,Ruby几乎是当前流行语言中速度最慢的一种,而且还很难改进。年中围绕J oel Spoky的一篇文章,掀起了对Ruby执行效率的大讨论。其结果是,Ruby社群一方面有力的反击了对Ruby的攻击,另一方面也深刻认识到,语言基础设施是Ruby的软肋。因此,临近年底的时候,Ruby社群掀起了建设Ruby基础设施的讨论。包括YARV和Rubinius的新一代R uby虚拟机都在建设当中,而将Ruby移植到JVM、CLR、Parrot和Strongtalk的努力也已经付诸实施。
                 
  Ruby社群已经比两年前壮大了很多倍,人们完成了大量的工作,但是积蓄的力量更令人期待。我们可以相信,Ruby有一个光明的未来。
                 
  Python & PHP:稳步向前Ruby的高速发展持续了两年,但是至少到现在为止,其真实地位与Python和PHP相比,还相距甚远。事实上,2006年的Python和PHP虽然没有Ruby那么引人瞩目,但是它们也在扎扎实实地进步。
                 
  Python今年推出2.5版本,并且给Python3.0(之前叫做Python 3000)最后确立了时间表,。整个Python社群已经十分成熟,对于Python的发展方向和发展过程形成了高度的一致。P ython的语言基础设施也非常成熟,性能上的优化工作已经相当充分,整个社群稳步向前,透射出成熟、自信和智慧。
                 
  在企业领域,Python实际上走的远比Ruby快。由于Google、NASA等大型组织大量使用Pytho n,并取得了良好的效果。更多的企业开始从Perl向Python转移。基于Python的轻量级Web开发框架Django,已经被应用在很多企业的内部管理系统之中。然而这一切都似乎是悄悄进行的,没有Ruby的锣鼓喧天。也许Python的气质就是平静如水。
                 
  微软以开源的形式推出了IronPython,不久之后又推出了IronPython for ASP.NET.这不但对于Python社群是个大事件,对于。NET社群同样是大事件。是否IronPython能够掀起。NE T动态语言时代?微软会怎样对待这个亲生的外姓子?且拭目以待。
                 
  对于Python社群来说,今年的进步其实是可喜可贺的。但是在舆论上,Python今年完全被R uby压倒。尽管Python社群似乎更喜欢踏踏实实、闷头前进,对于Ruby的挑战基本上不予回应。但是坦率地说,长期下去,局面对Python会变得不利。
                 
  相反,PHP社群面对挑战的反应就比较激烈了。PHP已经以自己的成熟、直接、高效称谓公共互联网上最流行的Web开发语言。在2006年,这个优势还在扩大之中。就冲这一点,PHP也足以笑傲江湖了。但是,由于PHP最初设计上的过分简单,在“意识形态”领域,PHP一直被认为是进取空间不大的语言。在过去的几年里,PHP的核心开发者们在极力改变这种形象,他们给PHP5加入了面向对象机制,也开发了一系列大型的框架设施。但是,主流的PHP开发者似乎并不关心这些,仍然继续用最质朴的方式开发一个个稳定高效的站点。这究竟是PHP之福,还是蕴含着潜在的危机?只有时间能告诉我们。
                 
  其他语言最老牌的动态语言Perl,至今仍然在使用率上遥遥领先,但是由于Perl 6发展的不力,以及Perl本身比较难以维护的缺陷,Perl的发展基本上处于停滞状态。在论坛上,人们还是关心Perl6什么时候能够出来,给Perl的明天带来亮色。
  Perl的情况多少让人有点慨叹,然而与之相比,JavaScript的“咸鱼翻身”则令人大跌眼镜。JavaScript以及其变体ActionScript家族很有可能将成为最流行的动态语言。事实上,JavaScript的语言设计、基础设施和工具存在一些不足,使用的人很多,但是喜欢这一语言族系的人则相对很少。但是不论是否讨人喜欢,JavaScript却注定流行,原因很简单,因为浏览器能够执行JavaScript,而PC端浏览器的普及率接近100%,这是Java、。NET无法相比的。AJAX的兴起给JavaScript带来了大发展的机遇,而Flash平台又选择了ActionSc ript作为脚本语言,种种利好,使得JavaScript成为当前最炙手可热的技术之一。预期在未来的两年之内,这种局面会继续。
                 
  结语与前几年不同,2005-2006年的技术大事几乎都围绕动态语言发生,从AJAX的兴起到Ruby on Rails的爆发,从Web服务到大型服务器农庄管理,到处都闪着动态语言的身影。技术大趋势已经非常明晰,规律注定再次发生效力。正如一位著名技术博客所说,未来属于动态解释性语言,对于所有的开发者来说,这是发令的枪声。