python3能振兴python的原因分析

我从stephen a. goss那读到关于了《python 3正在毁灭python》。这篇文章有不少精彩的论点,但我却并不认为python 3是在毁灭python,也不认为整个局面对python一点也不利。

但是正如那些比较俗气的格言所说,也许每一次危机也意味着一次机遇。

也许python 3能振兴python。

显然,麻烦的不仅仅是python 2到python 3的移植。时间不再是2005年了,年轻的程序员不再对python的哪一个版本如此的激动了。不错,现在市场上有很多python的职位,但与此同时有更多的java的职位。并且话说在从前市场上还有很多perl的职位呢——据说现在不怎么样了。我的重点不是说职位的个数或者github上面的仓库的个数,我的重点是思想和热情。我知道这有一点主观,但我感觉python最近在这两方面有所缺失。

举个例子来说我们看到人们正在从python转向go。

尽管并不多,但是这个现象却很值得注意(包括整个新建的开发小组发博客声称要移植他们的代码库),也足以产生一些舆论了(也能让rob pike大吃一惊了,他最初希望人们从c/c++转向go)。

python所面临的挑战来自西面八方。有的挑战在某一领域蚕食python的份额(例如新的不同步的项目会更加喜欢node或者go而不是twisted,rails仍然在web框架中占有主导地位),某一专业的直接竞争(例如科学计算的julia),以及普遍的竞争(clojure,groovy,javascript,dart等)。

所以这儿是我对于python 3的想法,很简单的想法:

让python变得诱人

python 3已经和python 2不兼容了,并且人们也并没有成群结队的向python 3移植,因此增加一些不兼容的改变不仅没有坏处,反而对这门语言更有好处了。

老实讲,如果python 3有足够多的诱人的新特色,更多的人会愿意移植到到python 3的(至少他们新的项目会),并且越来越多的人会去移植他们python 2的库和项目。更甚,在下愚见,这会吸引更多的现在没有在用python的人们。

大家已经看到,python 3是一个乏味的更新。

诚然,python 3让python更加的清晰明了,并且也修正了一些长久的问题和令人头疼的地方。但是它却没有带来那么大的改变。话说回来,在python 3在构思的时候它的思路被设定得很宽松。javascript那个时候也没有那么流行。youtube还没有诞生。那可是很久以前的事了。

现如今像合适的包络,不可变性,好的异步性等等可是犀利的黑客们考虑的重点。

话不多说,下面列举了一些可能让python 3变得有趣的建议。至少对于我来说这会引起我的兴趣:

移除全局解释器锁(gil,global interpreter lock)。或者提供一个好的异步处理机制。guido的pep 3156说不准可以解决这个问题。能拥有类似诸如go的通道(channels)的原语也是挺好的。
让python更快。如果javascript能变快,cpython也能变得很快。或者pypy可以足够成熟以替代cpython(应该只能有一个存在才对)。如果需要像lars bak这样的大咖来做,去kickstarter——我会出钱的。让大公司也不好意思得也贡献一点。不是说dropbox也花钱开发他们基于python的llvm么?
增加类型。嗯,是opt-in类型。这样你能用来加快你的代码速度(对cpython来说),或者确保以有助于类型检查(对dart来说)。在标准库中加入类型注解。
改进标准库。找一个团队去过一下这些标准库,修正那些长期存在的烦人的问题,提高速度并且修正bug。改进这些库的api,并为通用的东西提供更加简便的接口(对比一下requests和urllib)和现有的标准库一起提供一个名字域不一样的新的改进后的标准库。并且,让他们的转换能很方便的进行(也许可以通过某种自动化的工具完成)。
改进“读取-求值-输出循环”(repl,read-eval-print loop)。拜托现在已经是2014年了。用现代的方法重新做做repl吧。加点颜色什么的。参考下ipython好了。把它弄成个client/server的东西,这样ide和编辑器可以嵌入它。

所以说python 3的开发人员,慢慢来。嗯,但也不要太慢了。大概3、4年的样子吧。我们等es6等了10年吧,3、4年我们还是能等的。

看起来也不是所有人都在用python 3,那么冒一点险好了。打破常规。更早更频繁的发布吧。多和社区打交道。

各位,python 3其实也没有真的在杀死python。但是它也许能从正在杀死它的东西中拯救它。

后记:你怎么看?你能想到更多的让python 3更加诱人的点子么?什么样的新功能能激发你的兴趣呢?

Posted in 未分类

发表评论