文档章节

Supporting Python 3(支持python3)——序

在湖闻樟
 在湖闻樟
发布于 2015/09/01 17:29
字数 1560
阅读 79
收藏 0

当我在2002年6月加入python-dev邮件列表时,“Python 3000"(在湖闻樟译注:即Python 3)的团队每隔几个月都会描述一个Python 开发团队希望他们实现的建议,但是因为兼容性的原因都没有办法做到。对我们来说为“Python 3000  可能是“做一些事意味着没有发生任何变化。

但是后来我们开始越来越经常地说在Python 3000可能发生的事。最终到了“Python 3000”因为内部程序员的惰性被经常引用成缩写“py3k”的时候。 然后我们开始相信像我们大肆宣传的那样py3k将会更加好。到了Andrew Kuchling创建了用于跟踪我们在2004年底对py3k各种想法的EP PEP 3100(这是我最终负责的PEP 3000的原型)的时候 ,我们实际上要通过对py3k的一个“疯狂”的想法。这导致了在2006年3月开始了严肃地开发以及最终在2008年12月3日释放了Python 3.0。

当这些正在发生时,在社区上有对创建Python 3 的可行性/理智的复杂感情。在PEP 3100被创建的2004年,Python的流行程序有了明显的提升。这种趋势持续及在2006年左右,当py3k的开发全面开展时,Python的受欢迎程序已经超过了Perl。所能当Python成为世界上最流行的动态编程语言时,开发团队正在开始开发将下一个大版本,而这个大版本将会打破人们正在学习语言的兼容性。一些人因为这个显而易见的原因称呼我们为小傻蛋。

但是我们更愿意认为我们知道自己正在做什么。当Python 2是一个很棒的语言时,Guido 及在开发团队中的每一个人都知道它有一些缺陷(如果它没有缺陷的话,我们也就不会去创建一个接近有100个想要去改变地方的PEP)。 Guido也意识到了更多Python代码将来会被写出用来执行未来功能的特性。 作为我们社区的服务(一部分原因是因为它很有趣)我们决定我们应该信偿试修复以前犯的错误,所以未来的Python代码将会比Python 2更容易写也更快,这就是为什么我们要创造Python 3。

但是当一些人认为我们是打破Python 2兼容性的小傻蛋时,我们也意识到我们不想离开前面已经存在的社区以及只用新代码来发展Python 3。开发团队知道我们创造了一个出众的语言Python 3,并且我们想要用确保人们可以把他们的Python 2代码带进Python 3 动作的方式分享Python 3。从一开始,我们就确保所有变化在最坏的情况下会报警而在好的情况下可以自动处理。我们所学的技术和开发的工具被用于移植Python的大量的标准库为了从我们的错误中总结并确保其他人能够移植他们自己的代码。我们总是保持在我们后面的Python 2代码移植起来尽可能容易。

不断增多的Python 3可用的项目及所有主要的Linux发行版本已经或者下一个主要正式版附带上Python 3的事实都证明了我们没有把事情搞砸。 Guido总是说为了使Python 3取得社区的牵引需要花上3到5年时间。主要的库在他们的依赖库切换到Python3之后已经被移植到Python3,这个正式版Python 3不断发展趋势证明了Guido设定的时间线是正确的。

虽然有人把Python 2的代码迁移到Python 3的有什么用,但是记住下面两件事。其一是Python 3与Python 2相比是一个更好的语言。 虽然只有少数在大的变化,但是这些加起来使得Python 3比Python 2有更愉快的编程体验。相当经常地听到核心开发人员说相比起Python 2他们是如何地喜欢在Python 3上写代码。 I for one have simply stopped coding in Python 2 as it just feels slightly off compared to the more uniform feel of Python 3. 其次,Python 3的代码总数将会超过在Python的语言历史中Python 2,所有不迁移意味着你的项目将会落伍(这已经在那个声称不会切换到Python 3的项目上发生了,不切换导致了人们寻找为他们的Pyth 2和Python 3代码寻找替代器以确保能在准备好的时候切换到Python 3)。如果你想与时俱进,当你周围的世界在变化时懒散地坐不是一件好事。

我一直记得Python 3发布的那一天。 那是工作日结束的时候,我在IRC的#python-dev等待Python 3.0 正式版的经理Barry Warsaw把状态设置成发布。当发布状态改变时,我马上在椅子上转向旁边并告诉Guido完成了; Python 3不再是梦想了,它已成事实。我站了起来,微笑着跟每个人狂喜地击掌(下一个工作日,人们工作时都询问我们是为什么在那个晚上那么轻浮)。

在那一刻,并到了这一个,Python 3将失败或者不值我同事和我在里面花费的时间和努力的想法从来没有想过。而且人们不够关心能看到Python3有一本致力于帮助人们Python 2到Python 3的书这个事实也证明了Python 3日前不会将来也不会失败。


在湖闻樟注:

原文http://python3porting.com/preparing.html

引导页Supporting Python 3:(支持Python3):深入指南

目录Supporting Python 3(支持Python 3)——目录


© 著作权归作者所有

共有 人打赏支持
在湖闻樟
粉丝 17
博文 72
码字总数 68653
作品 0
深圳
程序员
私信 提问
Supporting Python 3(支持python3)——使用现代的风格改善你的代码

使用现代风格改善你的代码 原文: http://python3porting.com/improving.html 译者: TheLover_Z 一旦你开始使用 Python 3,你就有机会接触新的特性来改善你的代码。这篇文章中提到的很多东西...

在湖闻樟
2015/10/26
0
0
Supporting Python 3——不使用2to3转换支持Python 2和Python 3

不使用2to3转换支持Python 2和Python 3 虽然Python 3的官方文档努阴人们写同时支持Python 2和Python 3的代码,但是在一此情况这是合适的。尤其是你不能放弃支持Python 2.5及更早的版本时,因...

在湖闻樟
2015/10/28
0
0
Supporting Python 3(支持python3)——关于本书

关于本书 这本书书是源码在GitHub[5]上的开放性的书,所以任何人都可以给本书提供贡献(在湖闻樟译注: 原文提供pdf版,购买价格可以自定,有条件的话建议扶持下)。作者和编辑是Lennart Reg...

在湖闻樟
2015/09/01
99
0
Supporting Python 3——迁移python2的c扩展到python3

迁移C扩展 Python 3有很多在C语言API上的变化,包括在API中定义类和初妈化的模块。这意味着每一个C扩展为了能在Python 3 下运行需要进行修改。一些变化很简单而另一些不简单,但是因为2to3只...

在湖闻樟
2015/04/14
0
1
Python的设计理念和优缺点

  可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C 或C++写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要...

StreamWang
2010/04/21
0
1

没有更多内容

加载失败,请刷新页面

加载更多

2135亿背后的双11项目协作怎么玩?

2018天猫双11已经收官,2135亿元的成交额再度刷新纪录,这是一场阿里巴巴经济体的深度协作。 在这个大协作项目中,项目协作难题难以想象:如何保证众多部门、百个核心产品、千个垂直项目、几...

阿里云云栖社区
8分钟前
0
0
Golang MD5 加密使用方法

用法一: str:="123456"data:=[]byte(str)h := md5.New()h.Write(data)output := h.Sum(nil)fmt.Println(fmt.Sprintf("%x",output)) 结果: e10adc3949ba59abbe56e057f20f883e 用......

lwkai
14分钟前
0
0
揭秘 | 双11逆天记录背后的数据库技术革新

每一个数字背后 都需要强大的技术支撑 Higher, Faster, Smarter 是我们不变的追求 技术无边界 创新无止境 原文链接

阿里云官方博客
17分钟前
0
0
深入解析React-redux插件入门

react-redux是使用redux开发react时使用的一个插件,另外插一句,redux不是react的产品,vue和angular中也可以使用redux;下面简单讲解,如何使用react-redux来开发react。 描述 这个插件可以...

前端攻城老湿
22分钟前
0
0
创建定长code

前言 有的时候我们需要基于现有的code进行改造,但是改造的一个前提可能是对于code长度有一定的要求,比如我们做分库分表,准备在code上做文章。 由于历史原因不同的渠道产生的code有几种不同...

春哥大魔王的博客
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部