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