百科问答小站 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++解决鸡兔同笼问题,百钱买百鸡等问题,也就是c++的for循环嵌套枚举? 
  Python 语言有什么奇技淫巧吗? 
  如何评价微软新推出的 .NET 5? 
  目前比较好用的python开发工具是哪一个? 
  可以自学Python吗? 
  刚开始学习Objective-C,面对Swift该怎么办? 
  如何学习Python,以及新手如何入门? 
  大一学生想换 Linux 怎么样? 
  Python真的不适合游戏开发吗?游戏全都用像Python这种解释型语言写,对开发出的游戏有什么影响? 

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





© 2024-06-15 - tinynew.org. All Rights Reserved.
© 2024-06-15 - tinynew.org. 保留所有权利