百科问答小站 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:以上均为虚构,如有雷同,纯属凑巧...

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




  

相关话题

  有哪些英语单词倒过来是另一个单词? 
  你对你认为比较漂亮的编程语言的语法有什么理解? 
  有多少人知道汉诺塔其实应该叫河内塔? 
  'module' object has no attribute 'HTTPSConnection' 问题? 
  Python是不是被严重高估了? 
  为什么现代编程语言通常对 null 深恶痛绝,却鲜有特殊对待 0 的呢? 
  大学生有没有必要自己学习鸿蒙系统?希望有大佬给一点中肯的意见可以吗? 
  为什么汇编语言的功能在高级语言中一部分成为了关键字,一部分封装成了函数? 
  为什么会有程序员不喜欢 Python? 
  工作经历里有C#是不是程序员一生的污点?加州各大公司除了“我软”招人是不是特别鄙视C#? 

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





© 2025-04-20 - tinynew.org. All Rights Reserved.
© 2025-04-20 - tinynew.org. 保留所有权利