第41章 所有美好的事物
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
欢迎来到本书的结尾!既然您已经读到了这里,我想在让您进入软件领域之前,就 Python 的演变说几句作为结束语。当然,这个话题本质上是主观的,但对所有 Python 用户来说还是至关重要的。
现在,您已经有机会亲眼目睹整个语言,包括一些看似与其脚本范式不符的高级特性。 尽管许多人可以理解地接受这种现状,但在开源项目中,有些人也要问一些 "为什么 "的问题,这一点至关重要。最终,Python 故事的发展轨迹及其真正的结局,至少在一定程度上取决于您。
Python 悖论
如果您读过本书,或合理的子集,您现在应该能够公平地权衡 Python 的利弊了。正如您所看到的,Python 是一种功能强大、表现力丰富甚至充满乐趣的编程语言,无论您选择 Go 的下一步是什么,它都将成为一种使能技术。与此同时,您也会发现今天的 Python 是一个悖论:它已经扩展到了许多人认为既多余又先进的工具,而且速度似乎还在加快。
就我而言,作为 Python 最早的拥护者之一,多年来我目睹了 Python 从简单工具到复杂工具的演变,其范围也在不断变化。从大多数方面来看,Python 的复杂程度至少不亚于其他语言,而正是这些语言促使我们中的许多人开始学习 Python。正如其他语言一样,这不可避免地促进了一种文化的发展,在这种文化中,晦涩难懂是一种荣誉。
这与 Python 最初的目标背道而驰。在任何 Python 交互会话中运行import this ,您就会明白我的意思--我在本书中反复引用的信条在某些情况下被明显地违背了。在许多层面上,Python 的显式性、简洁性和无冗余等核心理想要么被天真地遗忘,要么被粗心地抛弃。
最终的结果是,今天的语言和社区在某种程度上可以用我在第 1 章 Perl 边栏中使用的一些术语来描述。尽管 Python 仍有许多可取之处,但正如下一节所解释的那样,这种趋势有可能会抵消它被认为具有的许多优势。
关于 "可选 "语言功能
我在上一章的开头引用了一段话,说 99% 的 Python 程序员对元类不感兴趣,以强调元类的晦涩难懂。但这句话并不完全准确,而且不仅仅是数字上的准确。这句话的作者是一位著名的 Python 贡献者,也是 Python 早期的朋友,我无意不公平地挑剔任何人。此外,我自己也经常对语言特性的模糊性发表这样的看法,事实上,在本书的不同版本中也是如此。
但问题是,这种说法实际上只适用于那些单独工作、只使用自己编写的代码的人。一旦组织中的任何人使用了 "可选 "的高级语言功能,它就不再是可选的了,而实际上是强加给组织中的每个人的。你在系统中使用的外部开发软件也是如此--如果软件作者使用了高级或不相干的语言功能,对你来说就不再是完全可选的了,因为你必须了解该功能才能重用或更改代码。
这一观点适用于本书中涉及的所有高级主题,包括在上一章开头附近被列为 "魔法 "钩子的主题,以及其他许多主题:
生成器、装饰器、插槽、属性、描述符、元类、上下文管理器、闭包、
super、命名空间包、Unicode、函数注释、相对导入、仅关键字参数、类方法和静态方法,甚至是理解和操作符重载的模糊应用。
如果您需要与之合作的任何人或程序使用了此类工具,它们也会自动成为您所需知识库的一部分。
要知道这有多么令人生畏,我们只需考虑一下第 40 章的新式继承程序--一个令人毛骨悚然的复杂模型,它甚至可以使描述符和元类成为理解基本名称解析的先决条件。第 32 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access