【发布时间】:2010-12-04 21:01:28
【问题描述】:
我偶然发现了这个“编程语言列表”,发现像 Python 这样的流行语言没有标准化?为什么会这样,“标准化”到底是什么意思?
【问题讨论】:
标签: python standardized
我偶然发现了这个“编程语言列表”,发现像 Python 这样的流行语言没有标准化?为什么会这样,“标准化”到底是什么意思?
【问题讨论】:
标签: python standardized
“标准化”是指语言具有正式的、经批准的标准,通常由 ISO 或 ANSI 或 ECMA 编写。许多现代开源语言,如 Python、Perl,并没有被外部机构正式标准化,而是有一个事实上的标准:无论最初的工作实现做什么。
标准化语言的好处是 a) 您知道该语言不会随意改变您,b) 如果您想为该语言编写自己的编译器/解释器,您有一个非常清晰的文档可以告诉您什么行为一切都应该做,而不是必须在原始实现中自己测试该行为。正因为如此,标准化语言变化缓慢,并且通常有多个主要实现。
语言并不一定要经过标准化才能有用。大多数非标准语言不会无缘无故地进行随机向后不兼容的更改(如果这样做,他们需要十年时间来决定如何*cough*Perl6*cough*),并且非标准语言可以更快地添加很酷的新实验功能(并且更便携)比标准化语言。
一些标准化语言:
非标准化语言:
完整列表位于Wikipedia。
【讨论】:
有“标准”,也有“标准”。
大多数人主要是指标准由标准编写组织通过:ISO、ECMA、EIA 等。律师称这些为法理标准。有法律效力。
此外,还有“事实上的标准”。
有些人还通过添加“行业标准”或“供应商名称标准”来破坏这个词。这只是毫无意义的营销噪音。
事实上的标准是在实践中标准化的东西(因为每个人都这样做并同意他们这样做)但它没有得到某些标准组织的支持。
Python 有事实上的标准,而不是法律上的标准。
【讨论】:
标准化意味着存在语言规范(“标准”)。例如,Java 有一个规范。 Perl 5 没有(源代码是“标准”),但 Perl 6 会。
【讨论】: