天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧网络 >> 正文

脚本语言为何难堪重任?

2008-3-12IT168佚名

    最近,Ruby、PHP、Python等脚本异常火爆,好像有种要和Java、 .Net一绝高下的趋势,可是在真正大工程中如:银行系统,国家机构,大型的运营开发商等,却很少有他们做为主流开发。脚本语言为何难堪重任?

    这个世界之所以如此奇妙,就是因为世界是多样性的。存在着不同的人种、不同的语言、不同的文化习俗、不同的思考方式。这种多样性是世界向前发展的动力和源泉。我们的软件行业也不例外。目前,用于编程的语言可以说是百花齐放百家争鸣。据统计,现存的编程语言已经超过100种。因此,有好事者甚至搞出了编程语言流行排行榜,每月统计一次。参见:http://www.tiobe.com/index.htm?tiobe_index
下面是2006年9月份的语言流行排行榜:


    其中,排名前三位的分别是Java、C、C++。PHP、Perl、Python、Ruby分别排在第5、第6 、第7和第13位。

    按类型分,编程语言大致可以分为两种:编译型和解释型(即脚本)。编译型的有新兴的.net系列(C#、VB。Net)、成熟的Java、老而弥坚的C和C++,不断衰退的VB和Delphi等。解释型(即脚本)则包括:Perl、Javascript、Ruby、PHP、Python等。从编程语言的发展历史来看,编译型的语言一直占据着主流的地位,解释型(即脚本)从来就没有能撼动编译型的语言的地位。这种现象也正是本文开头提出问题的写照。脚本语言为何难堪重任?

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

1、历史原因

    脚本语言刚诞生的时候,仅仅被当作批处理和Shell脚本使用了,纯粹是辅助工具。由于处于非主流地位,脚本语言的发展是相当缓慢的。直到上个世纪90年代初,随着Python和Ruby的陆续出现,脚本语言才得到了快速发展。而编译型语言从一开始就是主流语言,在经过了几十年成功的历史后,逐步衍生出了象C、C++、Java和.Net这样的杰出代表,并创建了一整套完整的应用体系架构。以Java为例,目前java已经可以满足企业级大型应用开发、桌面型应用开发、移动型应用开发、嵌入式应用开发等等。可以说,Java已经把它的触角延伸到各个应用领域。而且在每个领域都拥有丰富的成功案例,得到用户和开发者的广泛认可。

    根据SUN公司2005年的一份统计资料,已经有25亿部电子设备采用Java技术,Java智能卡发行量已经达到10亿张;采用Java技术的手机达到7亿多部;7亿台PC中应用了Java技术;140家电信运营商支持Java技术;全球有450万以上的Java开发人员;JCP(Java社区项目)已经有912家会员企业。与Java等编译型语言相比,尽管Python和Ruby最近也在向Java和.Net的各个应用领域进军,但成功的案例还不够多,无法给用户和开发者足够的信心。

2、没有得到足够的推动力
   
    翻看编程语言的发展历史,我们可以看到这样的情况:每一种成功的主流编程语言的背后,都有一些行业巨人在支撑着。例如,.Net的背后是微软,Java的背后是SUN和IBM。这些行业巨人的能量是不可低估的。正是靠着这些巨人投入大量的资金和人才去推动,.Net和Java才可以迅速地把触角遍布各个应用领域。以Java为例,SUN和IBM在Java语言的推广方面都扮演了极其重要的角色。SUN是Java的鼻祖,也是Java技术的龙头老大。SUN除了投入大量的资金和人才积极从事Java技术的研发和标准化工作之外,还在交流、培训和支持三个方面做了大量的工作。在交流方面,SUN创建了著名的JCP(Java社区项目)组织,邀请了IT业界主要的厂商(微软除外)参与,使得Java成为整个IT业界最成功的技术社区之一,形成了最有效的交流机制。在培训方面,Sun公司不仅推出了完整的Java培训认证体系,而且有广受欢迎的"Java大学",同时也与世界各地的高等院校和专业培训机构合作创建了Java培训中心,开设相关的课程。在Internet上,以SUN公司为龙头,拥有大量以Java为核心的网络社区,不仅有最新的Java平台软件可供下载,而且有大量开发工具和软件代码可供交流。开发者还可以在这里交流经验和心得。IBM是国际IT行业的巨头,同时也是(除了微软之外)产品线最齐全的企业级应用软件供应商。IBM于95年得到Sun公司的JavaOS和HotJava授权,建立了业界首家Java认证中心,表明IBM对Java技术和程序的支持。在这之后的十余年里,IBM对java的支持可谓不懈余力。IBM目前大部分的应用软件系统(包括大名鼎鼎的Webshphere系列)都是基于java开发的。此外,IBM向Eclispe.org(还记得著名的开源的开发工具Eclispe吗?对了,就是这个组织的产品)捐献4000万美元,并推出了新的作为开放源代码应用开发工具的WebSphere Studio系列。SUN和IBM为Java在世界应用和推广作出了巨大的贡献。与Java和.Net相比,Python和Ruby就缺乏行业巨人的支撑,它们依靠的只是各自的开源社区。很显然,这种缺乏资金和人才的发展,速度当然会慢很多。

    最近,在Sun 的教育与研究国际会议最后的讨论上,Gosling针对Yakov Fain提出的问题做出了这些解释。 我们也来Java创使人如何评价Java和其它语言的关系。

    Yakov Fain:在世界上有许多不同的语言。有些人在说一些新语言的出现会对Java构成威胁,你认为呢?
   James Gosling:不,我不这么认为。最近出现的大部分语言都是脚本型语言,例如:象PHP和Ruby,这些都是完美的系统。它们的强大是因为经过了特殊的处理化,因此所有这些人们谈论的令他们今天很兴奋的语言都仅仅是用来产生Web页面的。因此你们只是想生成一个网页,他们会做得很好。但是在应用领域别指望它们能有更大的做为,因为他们都有严重的性能问题。在所有这些动态语言中,如果你试着用它们编写一些对执行有严格要求的东西,那么它们都会可怕地失败。如果你写一个语句a = b + c,在性能差异上,Java与PHP相比可能完全一样。它们真正优良的地方在于它们都专注于一个领域,他们会使在那个领域的编程更加简单。我们一直在做的就是在工具之外获得更多的简化,我们做了大量的工作来达到简单性和功能强大性之间的一个平衡点。他们彼此之间是相互依存,相互排斥的。构建具有强大功能的系统,恰恰要有几分复杂性。正是因为这样,世界才相互联系,极大地帮助你运行的系统有了可以延续的框架。利用PHP,你能将Web表现层的内容做得很好。你不要用PHP去写一个星际导航的类库。这个它做不到。

    另一个与之有关的就是Microsoft的C#。很难在一个水平上批评C#,因为他们就是拷贝了Java规范。那是我们担心他们会做出一些创新的东西的时刻,但他们没有,他们没有选择借鉴。很明显,他们只是集中于一个开发平台。
我们尝试和所有的这些语言一起工作。我们知道有许多人在谈论Java与X相比或Java与Y相比如何如何。我们在努力工作来保证Java与PHP或Java与Python相结合在一起。这样你能用PHP做Web的表现层。许多的人用PHP做Web的表现层,用Java来做分析部分的工作,因为Java在做高质量的分析工作方面真的是太棒了。

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

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:IT168 作者:佚名

声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行