动态语言难堪重任

 
动态语言难堪重任
作者:刘睿 

最近,ruby、php、Python等脚本异常火爆,好像有种要和java、 .net一决高下的趋势,可是在真正大工程中如:银行系统,电子政务,大型的运营开发商等,却很少以它们做为主流开发。动态语言为何难堪重任?

这个世界之所以如此奇妙,就是因为世界是多样性的。存在着不同的人种、不同的语言、不同的文化习俗、不同的思考方式。这种多样性是世界向前发展的动力和源泉。我们的软件行业也不例外。

目前,编程语言可以说是百花齐放。据统计,现存的编程语言已经超过100种。因此,有好事者甚至搞出了编程语言流行排行榜,每月统计一次。参见:http://www.tiobe.com/index.htm?tiobe_index

按类型分,编程语言大致可以分为两种:编译型和解释型(即脚本)。

编译型的有新兴的.net系列(C#、VB.Net)、成熟的Java、老而弥坚的C和C++,不断衰退的VB和Delphi等。解释型(即脚本)则包括:Perl、Javascript、Ruby、PHP、Python等。

从编程语言的发展历史来看,编译型的语言一直占据着主流的地位,解释型(即脚本)从来就没有能撼动编译型的语言的地位。这种现象也正是本文开头提出问题的写照。脚本语言为何难堪重任?

之所以会出现这样的情况,我觉得不外乎以下几个原因:

历史的原因

脚本语言刚诞生的时候,仅仅被当作批处理和shell脚本使用了,纯粹是辅助工具。由于处于非主流地位,脚本语言的发展是相当缓慢的。直到上个世纪90年代初,随着Python和Ruby的陆续出现,脚本语言才得到了快速发展。而编译型语言从一开始就是主流语言,在经过了几十年成功的历史后,逐步衍生出了象C、C++、Java和.net这样的杰出代表,并创建了一整套完整的应用体系架构。

以Java为例,目前Java已经可以满足企业级大型应用开发、桌面型应用开发、移动型应用开发、嵌入式应用开发等等。可以说,Java已经把它的触角延伸到各个应用领域。而且在每个领域都拥有丰富的成功案例,得到用户和开发者的广泛认可。与Java等编译型语言相比,尽管Python和Ruby最近也在向Java和.net的各个应用领域进军,但成功的案例还不够多,无法给用户和开发者足够的信心。

没有得到足够的推动力

翻看编程语言的发展历史,我们可以看到这样的情况:每一种成功的主流编程语言的背后,都有一些行业巨人在支撑着。例如,.net的背后是微软,Java的背后是sun和IBM。

这些行业巨人的能量是不可低估的。正是靠着这些巨人投入大量的资金和人才去推动,.net和Java才可以迅速地把触角遍布各个应用领域。与Java和.net相比,Python和Ruby就缺乏行业巨人的支撑,它们依靠的只是各自的开源社区。很显然,这种缺乏资金和人才的发展,速度当然会慢很多。

大型工程的约束条件

现代项目管理的理念之一是风险控制。大型工程的特点是金额庞大,开发规模很大,技术复杂。一旦发生差错,损失惨重。所以特别在意风险控制。

在众多已知的风险里面,技术风险和人员风险是最容易被关注的。技术风险是指系统使用了无法满足业务开发需要的技术架构而产生的风险。

人员风险是指无法找到足够多的合适开发团队成员。由于Python和Ruby等脚本语言在大型项目的成功案例不多,显然采用Python和Ruby做开发语言的技术风险会比较高。

另外,目前使用Java和.net做开发的技术人员显然要比使用Python和Ruby等脚本语言的要多很多。所以从人员风险来看,使用Python和Ruby等脚本语言做开发风险也会比较高。基于风险的考虑,大型工程往往会采用已知成熟的技术(C、Java、.net),而不愿意采用Python和Ruby等脚本语言。

基于以上的分析, Ruby、PHP、Python等脚本语言想要超越Java和.net,困难挺大的。就我个人而言,我喜欢编程语言的多样性,欢迎Ruby、PHP、Python等脚本语言的流行。因为它们会促进新思想和新语言的诞生。那么,十年之后能替换Java、.net的语言会出现吗?如果出现这样的语言,会是Ruby、PHP、Python等脚本语言吗?或者是一门新的X语言呢?我的回答是一切皆有可能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值