Perl语言是否旨在在运行时生成快速程序?

时间:2010-08-31 05:28:53

标签: perl language-design language-features

我最近有个朋友告诉我

  

“看到perl从未被设计为快速”

  • 这是真的吗?

我能找到的相关信息来自Wikipedia

  

该语言旨在实用(易于使用,高效,完整)而非美丽(小巧,优雅,极简)。

但它没有直接谈论速度。我认为,对于它需要执行的所有文本处理,执行速度对于像Perl这样的语言非常重要。而且,鉴于所有奇怪的语法,优雅从来都不是客观的,我同意。

  • 高速执行是否是Perl的设计目标之一?

5 个答案:

答案 0 :(得分:9)

有一个重要方面需要考虑:算法。 Perl秘密武器是支持某些语言功能和CPAN库的算法。

良好的算法胜过原始执行速度以解决非常重要的问题。与Perl相比,选择和实现类似C语言的算法通常需要更多的努力。这意味着编写一些小工具半天时,perl版本通常优于C版本,因为使用哈希和使用语言和库中提供的功能更容易创建良好的数据结构。

答案 1 :(得分:8)

一旦Perl脚本开始运行(即在加载和编译所有内容之后),它可以非常快速。这是令人讨厌的编译 - 每次都有点讨厌。

然而,我发现人们并不真的担心Perl的速度有多快。他们通过实施愚蠢的设计浪费他们所有的时间,这些设计做了比他们需要做的更多的工作,误解了关键技术,或者仅仅是愚蠢的。对我来说,通过调整正确的位置来帮助某些人将他们的东西提高一个数量级,这种情况并不少见。但这并不是Perl特有的。人们对每种语言都有这个问题。

答案 2 :(得分:7)

Perl一直瞄准实用性,而不是任何(甚至接近)某种象牙塔的纯度,其中一些目标被赋予绝对优先权,而其他目标则被忽略(完全或几乎如此)。

因此,我认为保持合理的执行速度一直被认为对Perl很重要是合理的,但还有其他因素(特别是灵活性和易用性等)通常更多重要,所以如果必须在其中一个和执行速度之间做出选择,那么另一个因素通常会获胜,除非对执行速度的影响真的严肃。

答案 3 :(得分:3)

我会说,为最佳运行时性能而设计的语言不会有允许在运行时进行编译的结构。所以不,也许。

答案 4 :(得分:1)

它成为Perl 5.0的设计目标。但请记住它仍然被解释,因此解释语言很快。