OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

人们为什么不使用Python3?


分享到
分类 心得体会   发布 ourjs  1388653857000
注意 转载须保留原文链接,译文链接,作者译者等信息。  

作者:Alex Gaynor 翻译:Tianyi_Ting

关于Python 3

Python 社区的朋友和开发者们,咱们一起聊聊Python3吧。Python3在2008年12月3日首次发布。当时广泛的说法是:程序员接受Python3将是一个漫长的过程,这个过程被预期为五年。现在,我们刚刚度过了这个标志性的5年。

在Python 3发布起初以及随后的几年里,我感到非常兴奋,像个传教士一样宣传它,把自己的项目移植到它上面去。在过去一两年里,我启动的每一个新项目从一开始就采用Python 3开发。

最近半年,我一直在反思Python3的地位,兴奋逐渐被失落取代。

人们通常的看法是:在Python3流行的头几年,一些开源项目将会跟随潮流,随之而来的Python3浪潮,将会像开闸的洪水一样一发而不可收。在用Python语言写的Web开源框架Django的世界里,这种看法意味着我们需要一个Web服务器网关接口(WSGI)规范,使数据库驱动用Python3编写,接着我们开发人员才可以向Python3转变,最后才能使我们的用户接受Python 3。

当下,所有必备的条件都有了:Django(以及很多Django上的第三方App)现在已经支持Python3了,NumPy以及其他很多科学计算库都支持Python3,Python本身的几个新版本也都已经发布了。但是,用户们仍旧不使用Python3。

看一看Python包的下载统计,我们可以发现:Python3包下载量占不到2%。更糟糕的是,几乎没有代码是为Python3而写的。当我说我所有的新代码支持Python3,但是我却用Python2编译器在本地运行,我测试时,也是用Python2编译器。 Trivis CI用Python3为我运行了这些代码,当然,我的代码不全是用Python 3写的。拥有大规模Python代码库的公司,我所了解的,没有一个公司写Python 3代码,并且基本上没有一个在考虑将他们的代码库向Python 3转变。

从Python3.1时代开始,人们经常说的是,Python3新的特性和标准库的新特性将会作为激励人们升级Python3的动力。不要误会!Python3.3中确实有一些很酷的东西,但事实上,99%的人却无法用到这些功能。所以,当给别人说:“Python3中有很多好功能”,我实际上在心里说:“去你妈的,骗你的!”,因为对用户来讲,状况根本没有改观,兼容性问题依然存在。

除了上面所提到的这些,有一点对Python自身的发展也有极其恶劣的影响,那就是“没有用户反馈”这一环节。Python 3仅仅在被较早接受它的人使用,这个事实意味着来自用户的对于新功能的反馈几乎没有,即使有,这一小部分人的意见也不能完全代表整个Python社区。当我们对Python3.X系列研究越深,它反而会变得越糟糕。如今,我们正在其他特性上开发新的功能,但是可惜的是,这些功能未能受到实际的广泛使用。

人们为什么不使用Python3?

首先,我认为是缺乏紧迫感。许多年前,在我还不知道如何编程的时候,使Python 3版本和Python 2版本并存的决议已经存在。回想起来,这是一个错误,这导致Python社区彻底缺乏进步的紧迫感,这种紧迫感的匮乏逐渐使进步意识荡然无存。

第二,我觉得Python 3从根本上来讲很无趣,这使得掌握它的人很少。它也没有人们想要的“big ticket items”,像移除GIL或追求更优良的性能(为了追求性能,多大会选择PyPy)。反而,它有许多新库和小的调整,很多有经验的Python开发者们总会习惯性避免这些不一致的地方。当然,不管需要付出多么长的时间去升级,人们的开发也不会停下来。即使Python 2看起来要在这里待一段时间,这也阻止不了他们开发的脚步。

我们现在身处何地?

总之,不是一个幸福的地方。首先,我认为,我们很多人需要切实认识到Python 3的现状。尤其是这样的事实:在过去的几年里,对于普通的Python开发人员而言,Python语言没有变得更好。对我们Python社区而言,使Python 2和Python 3走两条不同道路是错误的,我们需要把它们整合在一起。 我有一个想法:发布一款Python 2.8,修补Python 3的每个新特征。同时弃用所有向后兼容方式不能改变的东西,例如,str + unicode将产生一条警告,同样的,没有from _ _future_ _import unicode_literals的所有文件也会产生警告。用户需要能够赶上连续的升级过程,Python 3破坏了这个过程,我们来解决它。 这只是我的想法,我们需要更多的想法来建起Python 2和Python 3之间的桥梁,因为随着每个Python 3新版本的发布,它们间的鸿沟会越来越大。

感谢Maciej Fijalkowski和其他人的评论。不用说,剩下的是鄙人的拙见。

原文地址: 点此
社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 一名靠谱的JavaScript程序员应备的素质
  2. PayPal为什么从Java迁移到Node.js,性能提高一倍,文件代码减少44%
  3. 人类只占到互联网流量的40%不到
  4. 芝加哥将计算机科学列为主修课
  5. 我为什么想把比特币一把火烧了
  6. 我真的需要一门编程语言吗?
  7. 程序员最艰巨的十大任务
  8. Ruby己死?NodeJS能否取代Ruby?
  9. 编写更好的jQuery代码的建议
  10. Python不可维护?终于把一个8万行的Python程序用Java重写了
  11. AirJD-简单好用的免费建站工具

 相关阅读 - 心得体会
  1. 代码不等于计算机科学:为什么所有人都应该学习编程
  2. 一名靠谱的JavaScript程序员应备的素质
  3. 程序员最艰巨的十大任务
  4. 世界上最优秀的程序员同时也是活得最快乐的人
  5. 做从未被做过的事:偶遇 Russell Kirsch
  6. 他们为什么说面向对象有问题,探讨面向对象的一些缺陷
  7. 入静和入世
  8. 信仰是如何毁掉程序员的
  9. 谈谈公司内部的技术分享
  10. 如何开发不可维护的软件?

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号