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

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




  

相关话题

  我女儿刚刚学会走路,我是否该在她会识字后就立马教她Python? 
  为什么很多编程语言采用花括号区分 block 而非缩进? 
  为什么主流的编程语言没有一个是中国人开发的? 
  为什么程序语言要设计成使用这么多shift? 
  golang 为什么没有三元运算符? 
  王垠喷 Go 语言,许式伟赞 Go 语言,大家怎么看? 
  为什么 Java 份额那么高,在知乎的存在感却不如 Python? 
  Python 语言的强制缩进是败笔吗? 
  为什么要有头文件? 
  已有大量编程基础,如何速成python用于学习机器学习? 

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





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利