百科问答小站 logo
百科问答小站 font logo



站在 2020 年回看,如何评价 Python 2 到 3 的升级? 第1页

  

user avatar   ling-jian-94 网友的相关建议: 
      

整个Python生态为了这次升级付出了大约十年的代价。但十年之后来看,也许这个选择的确是对的,它最重要的作用在于在整个Python生态强化了str=unicode的强制态度,阻止了只接受ASCII或者默认某种本地编码的库进入生态,防止了不同编码体系下生态的分裂;此外,类型安全性也进一步提升,之前像字符串'a'和数字2之间是可以比较的,这就会引入一些非常隐蔽的bug,Python 3中比较这些值会抛出异常。再就是整个系统和语法的一致性进一步加强,抛弃了一些历史包袱,比如取消了没有必要的long类型,整数和浮点数的除法运算变得一致,抛弃了旧class等。如果没有这些措施,社区的分裂可能会更加严重。


user avatar   chen-zhu-cong-33 网友的相关建议: 
      

关于这个,Julia语言的开发者做过很多讨论,因为在Julia从0.6进入到1.0的时候发生了类似的问题,在这个帖子以及类似主题下的帖子可以看到:

他们认为,Python最好的做法就是让Python 3.0(Python 3的第一个版本)既兼容2.x又兼容3.x,然后在Python 3.0中使用任何废弃的特性都会报警。再从Python 3.1开始不兼容Python 2.x。这样一个人可以先把自己的库升级到3.0检查错误,再移动到Python 3.1中彻底放弃Python 2.x。

不过说是这么说,实际上还是很困难。Python 3改动了很多内部实现,并且由于Python有很多C扩展,它们强烈依赖于Python暴露出的接口,而Python在2到3的时候出于性能的考虑修改了一些接口,这就导致尽管Python 2 to 3表面看上去并没有什么巨大变化(譬如print有没有括号的问题),实际上在后端做出了很大改动,除非3.0在后端的也仿照上述逻辑同时兼容两套接口,否则这些部分就只能靠开发者自己去适配Python 3了。

而这些库构成了生态的基石,它们不升级,用户就没有动力升级;而用户不升级,库也没有必要升级,导致了一个死锁。而如果提供一个兼容版本的话,就可以允许Python 2.x的用户使用Python 3.0的库,接着用户再把自己升级到Python 3.0,当大部分人都处于3.0的时候,就可以进入3.1时候完全放弃2.x的版本了。不过话说回来,这个策略对Julia可能会容易一点,因为很多库都是纯Julia实现的,但Python就会比较困难了。


user avatar   pansz 网友的相关建议: 
      

低情商:是的,已经结束了。

高情商:diy的时代暂停了,只不过我们暂时不知道重新开放的期限。


user avatar   wang-yin-31-84 网友的相关建议: 
      

看到下面一老哥的一回答,笑死我了~

:离设备越远收入越高

然后就直接给我整懵逼了,又经历一系列的心里活动,搞笑→自我怀疑→困惑→深思→豁然开朗→云淡风轻。

仔细一想,事实好像不谋而合~

该死,作为一个老油条的我怎么会生出这样的想法呢!

大boos:喂! 老班吗? 公司网络出问题了 赶紧过来瞅瞅 别耽误大家加班
我:好勒~ 马上到

月中您好,您的长沙银行卡到账4853元,请注意查收~ (双眼流下了兴奋的泪水)


ps:以上均为虚构,如有雷同,纯属凑巧...

建议大家可以去看看我的第一篇回答,对于网工的职位和相关技术的天花板有详细讲解!




  

相关话题

  能否用外行也能懂的语言解释为什么C++很「危险」? 
  后端领域,写java的程序员普遍比写Python和go的程序员水平低吗? 
  有没有简单一点的 Python 小例子或小项目? 
  哪里有 brainfuck 编程语言的相关学习资料与下载? 
  在知乎,Java 相对于 C# 来说是不是被过分贬低了? 
  为什么 C++ 没有 C 语言快? 
  为什么编程语言语法的设计不往缩小与自然语言的差别的方向发展,或者说在这个方向发展得这么慢呢? 
  为什么 Dropbox 等大型服务使用 Python 作为主要语言,即使它的效率比其他编译型语言低几个数量级? 
  python是用C实现的,Java是用C++实现的,那为什么不直接用C或C++呢? 
  怎么看待 Libra 使用 Rust 编写? 

前一个讨论
如何判断一个超级大的数是不是素数?
下一个讨论
怎样识别生活中比较值得爱的人?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利