Python 4 会不会又是一门新语言?

2019-12-18 21:23:15 +08:00
 miniyao
历史原因 Py3 不兼容 Py2,现在 Python 3 已经到 3.8,3.9 了,很快 3.n 的数字要用完了,版本号应该 4.0 起跳了。Python 4 会借大版本号,再搞一次大跃进吗?全面拥抱多核心 CPU ?
17223 次点击
所在节点    Python
106 条回复
xpresslink
2019-12-18 22:55:07 +08:00
给楼主科普一下 Python 的版本号知识。
实际所有的官方 release 版本号都是由完整三段组成的,分别是:major.minior.micro,每段不限于 1 位数,比如 3.12.34 这是合法的。

major 号变化是翻天覆地的。
minior 号变化说明有新增功能或功能变更,
micro 变化没有功能不同,只是优化或解决 bug

官方说明: https://www.python.org/dev/peps/pep-0440/

python 的三方库都执行这个规则定版本号。比如 django 1.11.27
ys0290
2019-12-18 23:01:09 +08:00
别啊,3 的手册还没看完呢
hakono
2019-12-18 23:21:04 +08:00
@Pastsong 但是作为一个正常程序猿的思维,n 会自然地被作为 string 中的一个字符来看待,而不是数字中的自然数 n。
比如 3.11 会首先觉得是 3.1 的子版本而不是十一
因为这种思维上的问题,早就出过不止一次问题了。最经典的应该就是当年 windows 10 发布,因为 windows 获取系统版本的 api,返回的版本号是 10.0,导致很多软件只取第一个字符,把系统版本编号当成了 1,认为系统版本过老拒绝启动



顺便贴一下 MSDN 上的各个系统对应的版本数字,也让大家来想想,如果自己处在 windows xp 或者 windows 7 的时代,面对这么缓慢增长的版本数字,当时肯定会觉得,在有生之年微软也不回把版本跌倒到 10。然而谁也没想到,微软直接来了个 win10。如果自己处在那个时代,是否能避免上面说的 BUG ?

Operating system Version number
Windows 10 10.0*
Windows Server 2019 10.0*
Windows Server 2016 10.0*
Windows 8.1 6.3*
Windows Server 2012 R2 6.3*
Windows 8 6.2
Windows Server 2012 6.2
Windows 7 6.1
Windows Server 2008 R2 6.1
Windows Server 2008 6.0
Windows Vista 6.0
Windows Server 2003 R2 5.2
Windows Server 2003 5.2
Windows XP 64-Bit Edition 5.2
Windows XP 5.1
Windows 2000 5.0
KyonLi
2019-12-18 23:39:00 +08:00
@hakono #23 那我属于不正常的,可能是因为第一次有意识的看版本号就是三段的,导致我产生了要用以.分隔后的正整数来比较大小的错误习惯
Pastsong
2019-12-18 23:41:42 +08:00
@hakono 作为一个程序员,你不仅要知道被广泛使用的 SemVer https://semver.org/ ( Python,Node.js ,Go,PHP 等),还要知道版本只是一个约定的规范,软件可以自由地使用任何版本系统,比如 Windows 10 Version 1903 Build 18362.535 ,Java SE 8u231,TeX 3.14159265
Vegetable
2019-12-18 23:44:19 +08:00
Osk
2019-12-18 23:49:18 +08:00
同不正常,导致数学上比较 1.11 和 1.2 这种,下意识觉得 1.11 更大,但仔细一想又发觉哪里好像不对劲。。。😭
toptyloo
2019-12-18 23:53:34 +08:00
不会
wwqgtxx
2019-12-18 23:58:01 +08:00
@hakono 包括但不限于 linux 内核,nodejs,golang 都在大量的使用 n>10 的版本号,可能你要想想什么才是正常程序猿的思维了
em70
2019-12-19 00:05:05 +08:00
@linvaux iphone 4 也不吉利吗
Felldeadbird
2019-12-19 00:09:21 +08:00
所以我还是没理解到 1 和 10 难道不是区别很大的版本?唔…?
zdnyp
2019-12-19 00:09:59 +08:00
老实说,经历了 2、3 的噩梦,应该不会重蹈覆辙了。
pyscream
2019-12-19 01:04:25 +08:00
可以采用巨硬的风格,直接 python 10
lqf96
2019-12-19 03:17:30 +08:00
@echo1937 现在 Python 官方正在推 Sub-interpreter,应该有望解决多线程的问题,简单来说就是每个 interpreter 运行在一个线程上,各自拥有自己的 GIL,唯一的问题就是需要 c 库更新代码...
Trim21
2019-12-19 03:17:56 +08:00
@Osk 数学上都没有 3.1.4…
laike9m
2019-12-19 03:58:09 +08:00
@lqf96 Python 官方并没有推多解释器,它目前还只是个 pep,说是 Eric Snow 的个人项目都没问题
charlie21
2019-12-19 04:04:01 +08:00
半只脚踏进坟墓的东西了也能聊真是
arischow
2019-12-19 07:31:22 +08:00
为什么你不去搜索?
superrichman
2019-12-19 07:35:33 +08:00
@hakono 版本号中的点是分隔符不是数学意义上的小数点。点分隔的每个数字都是独立的,不存在数字不够用的说法。参考 pep-440。https://www.python.org/dev/peps/pep-0440/
nullcc
2019-12-19 08:00:46 +08:00
3.9 后面应该是 3.10 而不是 4.0

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/630320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX