当前位置: 首页 > 科技观察

Python3正在杀死Python

时间:2023-03-20 22:10:36 科技观察

Python3是Python社区可能发生的最糟糕的事情。还记得第一次使用Python的时候,我已经在C++领域混了很久,Python对我来说就像是一本圣经。无需数小时或数天,我可以打开一个文本编辑器并在几秒钟或几分钟内获得一个工作程序。还记得Python2.5出来的时候,加入了很多新的好用的特性。我热爱Python,但同时我也承认她有缺点,但也情有可原,所有的语言都有缺点。她的优势在于她很有趣。虽然Python3比Python2有一些小的改进,但她失去了很多Python2的优势。Python2最重要的优势之一是有很多第三方库可以用来做任何事情,但Python3没有这个优势。诚然,有很多库已移植到Python3,但还有更多库没有移植,也不容易移植。比如你需要解析X,但是X不像YAML和JSON那么容易解析。很可能有第三方解析器可用,但仅适用于Python2,没有Python3端口。此外,Python2中的字节字符串(str)与Python3中的字节之间存在功能差异,这使得移植更加困难。事实上,移植它非常困难,需要很多技巧才能兼容Python2和Python3。所以,你有两个选择,要么使用Python2(一种已被弃用的语言)快速开发你的程序,但是这将使您花费十倍的时间来移植相关库(以及所有依赖项)。或者,使用另一种也有很多库的编程语言,但不必再担心Python2/3问题。第二种选择显然不受欢迎,因为如果我们这样做,我们的生产环境中已经有很多Python3程序,并且大多数Python2库都需要移植。不管这些情况是否存在,人们要么继续使用Python2来开发程序,要么选择另一种不会打自己耳光的语言。Python2的另一个优点是,用它编写的程序几乎无需更改就可以在下一个版本上运行。如果你的软件是基于Python2的,迁移到Python3可能要花很多钱,因为你需要的项目可能相当大,各种类库手册满满的,根本看不懂。迁移。这是非常糟糕的商业策略,因为你必须花费大量的金钱和工程师的时间将项目迁移到Python3。你还不如请其他人将整个代码迁移到Ruby,或者,那样成本更高——有效的。此时,如果你不得不重写你的软件,你会选择Python3吗?不是。大多数更流行和兼容的Python2和Python3库都是由在各自平台上运行的语言子集(子集)编写的。SQLAlchemy是我最喜欢的Python库之一,它做得很好,Django也做得很好,但程度较轻。该语言的子集,我称之为PythonX,使用起来并不容易,需要一些奇怪的技巧,而且通常不如Python2或Python3高效。有兴趣将现有的Python2库移植到PythonX吗?这一点都不好笑,这很可悲,因为正是乐趣让Python成为今天的样子。不幸的是,Python2已被弃用,Python3也用得不多。Python3的变化比较小,没有得到太多,反而失去了很多。在过去的几个月里,我一直在使用Python3编写程序和服务。个人感觉(不吹牛)这与使用Python2编写程序没有太大区别,只是第三方库更少。真的没有其他突出的地方。Python社区本应在过去几年转向Python3,然而,他们逐渐发现人们正在转向新语言(或重新改进的旧语言)。这些语言大多有很棒的特性,比如强大的类型系统、模式匹配、更好的性能、更好的线程和高并发支持、更简单的FFI、更好的lambda表达式等等。一种解决方案是forkPython2.7并继续开发它,以向后兼容的方式添加新功能,以便大多数不能移植到Python2的应用程序可以继续发展和改进,但代价是人力和大量时间为前来开发它的公司带来价值。这是正确的做法(实际上,如果Guido和Python社区中的其他黑客以官方名义这样做而不是强制分叉会更好)。Python3中的特性需要向后移植到Python2,并且需要发布Python2.8。对于少数已经在纯Python3中开发程序的人来说,有像3to2这样与Python2.8兼容的工具。在那之后,Python3可以逐渐退居幕后,让那些Python库的维护者可以使用Python2而不是PythonX。还有其他选择,但复兴Python2显然是时候了,除此之外别无他法值得一提。因为官方负责人对Python2用户非常不屑,所以不要指望他们复兴Python2。如果社区不反弹复兴Python2,那么几年后Python3就会成为Python标准,并且会插入很多相应的库(虽然绝大部分永远不可能),很多Investment会丢失。届时,整个社区将明显缩小,失去原有的辉煌。看看Perl发生了什么,人们离开并去了其他地方。英文原文:Python3iskillingPython翻译链接:http://www.oschina.net/translate/python-3-is-killing-python