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

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




  

相关话题

  如果一瞬间让所有编程语言的0.1 + 0.2 == 0.3,会造成多大影响? 
  为什么那些会多国语言的人常常被赞赏,貌似没什么人因为精通各种编程语言而赞赏程序猿? 
  CPython有GIL是因为当年设计CPython的人偷懒吗? 
  如果要给编程语言加上一种可用于计量运算的基本数字类型,你觉得该怎么设计这种计量类型,以及修改语言本身? 
  Python如何修改内置类型? 
  你们都用Python实现了哪些办公自动化? 
  该如何优雅地黑 C++? 
  Python 应该怎么学? 
  c#匿名委托获取自身的方法? 
  学python在老师全用mac的情况下有必要换成mac吗? 

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





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