什么是Perl?

Perl是我接触的第一个动态脚本语言,但其实上它的资历已经可以作为其它语言的祖母了,1987年,Larry Wall发布了Perl。那已经是20年前的事情了。在计算机世界,20年的时间已经好像是2个世纪以前那么久远了。下面列了一些常见的动态脚本语言的发布日期:

语言发明人发布时间
PerlLarry Wall1987
pythonGuido van Rossum1989
ruby松本行弘1993
phpRasmus Lerdorf1994
lua3位巴西人1993

还有很多的动态脚本语言没有在上面列出,动态脚本语言确实是一个庞大的家族。那么问题是:为什么会有这么多的动态脚本语言?其实答案非常的简单:因为有更多的特殊需求。每种动态语言实际上都是因为某种特定的需求而诞生和进化的,没有那种语言可以完全替代另一种。追求一种无所不能的语言实际上是相当错误的,这就如同说“一个人能够适合世界上所有的工作”,这有些自大的可笑了。实际上,只要这个世界存在着文化的差异,存在着审美的差异,各种计算机语言就一定是共存的。

对于不同的计算机语言,我想至少有两种观点是值得欣赏的:

  • 解决问题需要最合适的工具,如果你的工具箱里只有一,两把工具,那么你能够解决的问题就是很有限的
  • 语言没有高低贵贱之分,学习一门语言如果交一个朋友,首先你要学会尊重他们,其次你要了解他最大的优势是什么

好了,我无意陷入各种语言之间的谁是谁非的闲言碎语中去,还是回到Perl语言本身上来吧。关于Perl语言,它最大的特点是什么呢?我认为应该是它的背景。Perl语言的发明者是一名语言学家,因此Perl语言也在很大程度上打上了人类语言的烙印:

  • Perl语言的冗余性高,冗余性高是人类语言的特点,这样即使偶尔的失真也可以完整的表达语言的含义。一般计算机语言更倾向于简单直接的方式,从这个意义上说Perl语言是一个异类,它追求的是所谓“条条大路通罗马”,完成同一件事情可以有各种各样的方法,而且根本就没有所谓的最佳方法。这也同时造成了Perl代码因为彼此风格差异太大而很难互相看懂的弊端。但是没有人会否认,Perl也能写出很清晰的代码来,说到底,问题的关键其实不在于语言本身,而在于程序员的不同审美趣味。
  • Perl语言的上下文环境,人类语言是依赖于上下文环境的,有时候省略了主语或宾语也不会造成理解的困难。一般计算机语言往往极力排斥这种做法,因为这往往造成代码的难以维护,从这个意义上说,Perl语言其实不适合大规模的软件开发。
  • Perl语言的单数复数,正如英语中有单数和复数的单词区别一样,Perl语言用$标识单数变量,用@标识复数变量,用%标识散列,这些奇形怪状的符号更加增加了Perl代码的理解难度,如果天书一样。
  • Perl语言的用途,Perl这个名词的真正含义其实是有些学术化的“实用报表提取语言”(PracticalExtraction andReportLanguage),但是很快就有人称它为“病态折中垃圾列表器”(Pathologically Eclectic Rubbish Lister)。可是无论如何,如果说还有一种象诗歌一样的计算机语言,那么一定是Perl。实际上,它的设计初衷也正是为了处理形形色色的文本。

总结一下,Perl语言是有些过于灵活和浪漫了,就象一个诗人,喜欢在自己的小圈子里浅吟低唱。他根本不适合大规模的编码模式,那根本不符合他的个性(如果你非要这样做,你就要自己承担一切后果)。但是如果你仅仅把他当作一个可爱的朋友,那么你一定会从他那里得到别样的体会。 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值