Linux 版 (精华区)
发信人: RedAlert (爱老虎油), 信区: Linux
标 题: Perl渐成气候
发信站: 紫 丁 香 (Wed Jan 19 18:37:46 2000), 转信
Perl渐成气候
曹开彬/文
当我们把目光对准Linux时,我们要记住,在Internet世界里还有很多自由软
件。谁代表自由软件?谁是自由软件的发展方向?Linux作用举足轻重,但Perl、
Apache、Python等自由软件同样不可忽视。它们的情况如何?
1987年,美国的Larry Wall及其合作者们开发了Perl(Practical
Extractionand Report Language)语言。从一开发起,LarryWall就赋予Perl免费
和开放源码的权利。所以,Perl由它的使用者维护和发展。到现在,它的影响力并
不亚于Linux,并在Internet的世界里扮演着越来越重要的角色。
系统管理员和CGI作者的宠儿
简单地说,Perl是一种解释性高级程序语言。为什么Larry Wall会想到要开发
Perl语言呢?这跟他长期与Unix打交道有关系。大家知道,Unix主要用C语言和Unix
Shell来编程的,但它们却不是一个整体的两个部分。C语言能很方便地进行系统内
部的操作,但却不能快速地进行外部开发;Unix Shell刚好相反,它能很方便地进
行外部处理,却很难进行底层操作。如果能把这两者结合起来,不是很好吗?Larry
Wall认为这是他创建Perl的初衷。因此,他把C语言以及sed、awk、Unix Shell等十
多种工具和语言中非常“酷”的优点结合起来,把它们中不“酷”的东西清除出
去,开发出了Perl。如果程序员觉得用sed或awk或sh完成工作有点慢,但又不想用C
语言来写,Perl就可以派上用场了。
当然,到了现在,Perl已经不像当初那么“单纯”。经过十多年的发展,Perl
已是最主要的Web脚本语言,大多数的CGI程序都是用它写的(正因为如此,它甚至
成CGI程序的代名词)。同时,它也是一种非常好的快速原型设计语言,并且能使不
同的系统很好地协同工作。由于Perl能非常方便地将小程序嵌入到大型应用程序之
中,所以被誉为是“Internet的输送管道”。
Perl目前已经受到很多程序开发人员的喜爱,如系统管理员、数据库开发人
员、Web开发人员等。现在,Perl不但成为系统管理员和CGI作者的宠儿,就连数学
家、遗传学家、新闻工作者,甚至企业管理者也都喜欢用Perl。目前全世界至少有
100万以上的程序员在使用Perl来工作。
Perl的标准库及各种文档都是由自愿者写的,但它也有核心开发队伍,即
PerlPorters。这些成员都是无私奉献的,他们的任务也很简单,就是开发出大量的
比市场上所出售的Perl应用程序更好的产品,而且是免费的。
Perl越来越得到大家的认可并非偶然,这是由于它具有很多其它语言所没有的
优点。首先,用Perl编写的程序不用编译,其程序可直接运行。最重要的是,它可
以跨平台运行。同一Perl程序可以在Unix、Windows、Windows NT、MVS、VMS、
DOS、Macintosh、OS/2、Plan9及AmigaOS等操作系统上自由运行。其次,Perl简单
易学。它可以使复杂的事情变简单,简单的事情更简单。Perl为程序员处理了很多
东西,例如内存分配、碎片整理等。同时,Perl程序也是相当简练的,一页的Perl
程序用其它语言可能要花几百甚至上千行代码。Perl程序不必处理很多细节,这大
大减少了程序的Bug,增加了可靠性。第三,Perl运行速度很快。第四,Perl是面向
对象的。第五,Perl应用程序很多。CPAN(Comprehensive Perl Archive
Network)有很多Perl应用程序。你可以在几分钟内找到自己想要的东西。这些程序
都是来自世界各地的Perl开发者提供的。最后,Perl是自由软件,为程序员免费共
享。
Perl的版本演变
1988年1月,Perl的第一个正式版本Perl1发布;1988年6月,Perl2发布;1989
年10月,Perl3发布;1991年3月,Perl4发布;1994年10月,Perl5发布。因此,
Perl5是最新的版本。但在Perl5中,目前已发布Perl5.6。(注:Perl5.6的前一个
版本是Perl5.005,但由于Perl的支持者们觉得Perl5.1和Perl5.001会使人误解,所
以决定将版本的编号改为Perl5.6,而不是Perl5.006。对Perl5.6的新修订版本称为
Perl5.6.1。)
Perl5和以前的版本有很大的区别,它的代码全部是重新写的。它最主要的改进
有下面几点。一是语法更简单,定义变量更灵活。Perl5的保留字只有原来的1/3,
并且去掉了很多的不规则的语法。在Perl5中,你可以像C语言一样自由地定义变
量,甚至可以定义匿名的变量和子程序。二是模块化和重用性更好。Perl标准程序
库都根据模块来定义,每个程序包都可以很方便地使用。三是面向对象进一步加
强,使用了“类”的概念,文件句柄也得到支持。四是同时执行多种DBM。一个Perl
程序可同时访问DBM、NDBM、SDBM和GDBM等。五是嵌入性和可扩展性更好。在Perl5
中,可轻松地把Perl程序嵌入到C或C++程序中,也可借助XS(Perl提供的一个转
换器)将C或C++程序很方便地接入到Perl程序中。另外,Perl程序的易读性也有
了明显的改进。
总之,Perl5与Perl4在程序代码上会有很大差别,但Perl的每个版本都向下兼
容,Perl5也一样。所以,Perl4的程序可以在Perl5上安全运行。但Perl的支持者们
说,从Perl5发布以后,他们就建议用户用Perl5,因为他们不会对Perl4再提供支
持。
CPAN提供大量Perl标准程序
CPAN是为使全世界Perl爱好者更好地共享资源而建立的一个网站。它是包含所
有Perl资源的网站,在全世界有100多个镜像站点,在http://www.perl.com中有个
虚拟接口。
CPAN有个多路转接器,用户一旦访问该站点,它会自动选择一个离它最近的镜
像。例如,你在法国,它就会自动帮你链接到法国当地的一个站点。当然,它也提
供人工选择的功能。用户一旦选定,它便会记住,以后就直接进入该站点。这样的
目的是为了使用户下载速度加快。正是这一功能,很多人将CPAN称为“魔鬼站
点”。
CPAN最大的好处在于有关Perl的内容它无所不包。它有两个大的目录,一是
“脚本(Scripts)”。在它里面,又有分类,如和Web有关的脚本等。另一个是
“模块(Modules)”。这是个Perl标准程序库,可以用这些模块来写CGI程序、图
形程序、数据库或其它各种程序。在这里,你可以找到Perl的FAQ,也可以找到Perl
的语法、Perl的入门指南。最重要的是,在这里有很多可供自由下载的Perl应用程
序,供人们使用。这些应用程序都是即插即用的模块,并且都是可重用的源代码。
正是由于应用程序的丰富且容易得到,才使得Perl越来越为大家所了解和喜爱。
微软投资支持Perl
三年前,微软公司就和ActiveStateTool公司合作,投资开发Perl应用程序,并
且他们的大部分成果都开放源码,为大家共享。双方表明,这次合作的意图是改善
Perl在Windows平台上的应用。ActiveState公司将为Perl在Windows平台上的应用加
入很多以前所没有的特性,如fork、全面支持Windows平台的统一编码标准等。
这是微软公司第一次向基于Windows平台的开放源码程序投资。业内人士对这个
消息反应不一。有人认为这是好消息,因为它可以使Perl为更多人所知道,更有利
于Perl的发展。但也有人对此深表担忧,尤其是Perl的支持者们更不认为这是个好
消息。他们担心Perl会在微软的干预下变成“Microsoft Perl”。对此,
ActiveState的负责人认为,微软的目的是为了利用Perl改善Unix与Windows之间协
同工作的能力。他指出,Perl与Java是完全不同的事情,在Unix与Windows平台上,
Perl版本是统一的,它们的核心程序代码也是一样,因此不会出现Unix与Windows平
台上的Perl相背离的结果,也就是说不会出现微软的Perl。同时,微软的有关负责
人也说,微软的目的是最终结果,而不是想通过投资来控制Perl的支持者们。
Perl的使用者比Java多
现在,Java的呼声正一浪高过一浪,但在Internet的世界里,有一点是没有争
议的,即Perl的使用者比Java的使用者要多。Perl可以跨平台运行,而Java也是可
以跨平台运行;Perl是众多自愿者支持的自由软件,Java是SUN公司开发的纯商业软
件。Perl与Java,哪一个好呢?
从经济角度看,自然是Perl好。不花钱又能办事,谁都喜欢。在技术上是怎样
的呢?事实上,任何一门程序语言,都有其不足与长处。一个程序员想试验哪种语
言好,最好的方法是用两种语言写同一个程序,看看哪个更好写,哪个运行更快更
稳定。
Larry Wall本人认为,Perl在快速原型设计方面比Java强得多,并且Perl可以
使系统运行失败的影响减小到最少。也有人认为,Perl比Java成熟得多,因为Java
的年龄毕竟不大,还没有经受过大的考验。
不过,不用担心Perl会吃掉Java,或者Java会吃掉Perl。这是两种基础不同的
程序语言,它们会有各自的生存空间。
Perl比GPL更开放
不像Java,Perl是免费的,没有私有产权这么一说,它的源代码和编译器都是
免费、公开的。虽然GNU计划包含有Perl,但并没有“GNU Perl”这样的概念,因为
Perl不是自由软件联盟(FreeSoftware Foundation)开发的,也不由它维护。事实
上,Perl比GNU GPL和AL(Artiste License)的条款更开放。Larry Wall及其支持
者们允许用户把自己开发的Perl程序销售,也可以去买市场上的Perl应用程序。但
一般来讲,用户总能从Perl的维护者们所开发的程序里找到自己想要的东西,并且
决不会比市场上出售的程序差。
自由软件的出现给Internet世界带来很大的冲击。Perl这个自由软件,已不仅
仅是一种语言,它是Internet文化的一部分,它用一种创造的思想去对待一切。
--
╔══════════════╗
║ 一路上有你,苦一点也愿意! ║
╚══════════════╝
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: sim01.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:7.023毫秒