Python 3.0 和语言演变

标签 python programming-languages python-3.x

Python 3.0 打破了与以前版本的向后兼容性,并将语言分为两条路径(至少暂时如此)。您知道还有其他语言在成熟时经历过如此重要的设计阶段吗?

此外,您是否认为这就是编程语言应该如何发展的方式,或者付出的代价是否太高了?

最佳答案

我能想到的尝试这种中流改变的唯一语言是 Perl。当然,Python 通过首先发布将 Perl 打败到那个特定的终点线。然而,应该注意的是,Perl 的变化比 Python 的变化要广泛得多,而且可能更难理清。

(Perl 的“有不止一种方法”的理念是要付出代价的。)

有一些例子,例如基于 .NET 的语言版本之间的变化(具有讽刺意味的是,考虑到 .NET 的全部要点应该是 API 稳定性和跨平台兼容性)。但是,我很难称这些语言为“成熟的”;它始终更像是一种移动设计、飞行中 build 飞机的方法。

或者,正如我倾向于认为的那样,大多数语言要么来自“有机增长”,要么来自“工程 build ”。 Perl 是有机增长的完美例子;它最初是一个奇特的文本处理工具 ala awk/sed,后来发展成为一种完整的语言。

另一方面,Python 的工程化程度更高。花一点时间浏览他们网站上内容广泛的白皮书,看看针对该语言的语法和实现的每一个甚至是微小变化的广泛辩论。

进行这些影响深远的变化的想法对于编程语言来说有些新鲜,因为编程语言本身在本质上已经发生了变化。过去,只有当具有新指令集的新处理器问世时,编程方法才会改变。早期的语言往往要么非常低级并与汇编语言(例如 C)结合,要么在本质上非常动态(Forth、Lisp),以至于这种中流变化甚至不会被考虑在内。

至于这些改动是好是坏,我不确定。然而,我倾向于相信指导 Python 开发的人;到目前为止,语言的变化在很大程度上是为了变得更好。

我认为在未来的日子里,全局解释器锁将证明比语法更改更重要。尽管新的多处理器库可能会缓解大部分问题。

关于Python 3.0 和语言演变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/273524/

相关文章:

python - models.py 越来越大,最好的方法是什么?

programming-languages - 有什么理由不使用 "this"("Self", "Me", ...)?

python - 如何编写装饰器并返回经过身份验证的对象

java - Python按位移位真的很慢吗?

python - 不使用正则表达式从字符串中提取符号后面的文本: Python

python - 在 Django 模板中获取页面 url 并缩短链接

python - 对集合列表进行排序

types - 有类型与无类型语言

function - 哪些语言是函数抽象而不是原始函数

python - python中in运算符的Big O运行时间