Python 3 拯救 python

翻译自:https://medium.com/@opinionbreaker/python-3-can-revive-python-2a7af4788b10#.2a0ao5xj6

我阅读了 certain Stephen A 的一篇文章. 讲解了 “Python 3 是如何杀死 Python”.

他有一些可信的理由,但是我不同意 Python 3 会杀死 Python, 尽管现在 Python 的局面并不好.


“但也许每一次的危机都是一次机会”,一段用烂的座右铭.

也许 Python 3 能使 Python 浴火重生.

你看,这不仅仅是 Python 2 向 Python 3 迁移的问题. 我们现在并不是 2005 年, 并且新的程序员并没有与任一个版本的 Python 留下深刻印象. 当然, 有很多 Python 功能,但话又说回来, Java 的工作机会更多. 还有以前有许多 Perl 工作, 现在我并没有听到他们做的很好. 我不是在讨论工作的数量或者 GitHub 的仓库数量. 我想说的是占有率和激情, 我知道这些都有点主观, 但是我感觉 Python 在这两个方面有所缺乏但为时未晚.

比如,我们看到很多人从 Python 转向 Go.

同样,他们也不是很多, 但他们相当直接 (包括创业公司开发团队在博客上面发布更换整个技术栈), 还有人有一定的影响力 (令人惊讶的有罗勃·派克, 谁能预估有多少人从 C/C++ 转向 Go).


Python 面临着来自各方面的竞争. 有些竞争出现在 Python 的热门领域 (例如新的异步项目, 更喜欢使用 Go 而不是 Twisted, Rails 依旧统治着 Web 框架), 与效仿者竞争特定领域 (例如 Julia 在科学计算), 还有综合力竞争(Clojure, Groovy, Javascript, Dart, 等等).


因此,这是我关于 Python 3 的看法. 一个简单的方法:

让它引人注目.

Python 3 已经不兼容 Python2 了. 不喜欢 Python 3 都成群结队的迁移走了, 所以新增一些不兼容的修改不仅不会伤害到它, 还会使它更好.

认真的说,如果 Python3 有足够诱人的新特性, 更多的用户会迁移到这里 (至少对于新的项目来说), 还有更多的人会将 Python 2 的项目或库移植过来. 最后, 据我看来, Python 3 足以吸引那些目前未使用 Python 的人.


在你看来, Python 3 是一个无聊的更新.

当然, 它使语言更加连贯和修复了一些长期存在的问题和苦恼. 但它并没有做好充足的准备. 话又说回来, Python3 的横向兼容和路线图做的更好和严禁. 哎, Javascript 如果没有在那个时候流行起来. YouTube 就不会存在了. 这是很早以前的事情了.

现在比如合适的闭包, 变量不变性, 好的异步构思, 等等, 这些是现在的黑客优先考虑的功能.


不提将来, 长话短说; 这里有一些事情可能让今天的黑客对 Python 3 感兴趣。拿我来
说,这些事情引起了我的兴趣:


  1. 移除GIL. 或者提供一个更好的异步构思. 也许有可能 Guido 提出 PEP 3156. 类似 Go 的 Channel 这种原语也不错.

  2. 加速 Python. 认真的说, 如果 Javascript 可能变得更快, CPython 也可以变得更快. 或者 PyPy 成熟到可以成熟到替换它 (应该只有这一个). 如果需要花大价钱或 Lars Bak 可以这么做, 开始动起来把 — 我会作出贡献. 各个大公司也将做出贡献. 会不会是 Dropbox 将会花大代价将 Python 在 LLVM 上面重构?

  3. 添加更多类型. 那么, 新加入的类型. 让你可以用它来加速一些代码的运行 (就像 Cython), 或提供注解和帮助类型检查(就像 Dart). 给标准库的每一个方法、类都加上类型注解.

  4. 修改标准库. 让一个团队一起去修改长期的问题, 提高修改速度和修复错误. 提高自己的 API, 然后提供简单、漂亮、常用的接口 (比如 requests vs urllib) 一起加入到标准库里面, 使用命名空间区别. 可以很容易地切换(也许还包括一些自动化工具)。

  5. 重构 REPL. 现在已经是 2014 年了. 将 REPL 以现代的方式重做. 添加一些颜色. 从 IPython 学习. 做成 Client/Server 的形式, 让 IDE 和编辑器更好的嵌入它.


因此, Python 3 的开发人员, 利用好你们的时间. 好了, 没有太多的时间. 也许, 3 - 4年. 我们已经等了 10 年的 ES6, 我们等它花一半的时间, 然后为你服务.

它现在并没有让任何人将 Python 3 用到各种地方, 所以需要一定的机会, 打破现在的局面, 尽早发布和交付. 让社区热闹起来.

你看,Python 3 不是真的杀了 Python. 但是有可能从现在把它拯救出来。


附:你怎么看?你能想到的东西,另外,你有想到额外的事情可以使 Python 3 中更诱人吗?或者有什么新的特性让你饥渴难耐?