Python 4 会不会又是一门新语言?
http://www.curiousefficiency.org/posts/2014/08/python-4000.html
major 号变化是翻天覆地的。
minior 号变化说明有新增功能或功能变更,
micro 变化没有功能不同,只是优化或解决 bug
官方说明: https://www.python.org/dev/peps/pep-0440/
python 的三方库都执行这个规则定版本号。比如 django 1.11.27
顺便贴一下 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
这种思维方式的原因是,在编程时,通过获取版本号的 api 得到的版本号是个字符串 string,而不是 int。在用代码对版本号进行处理时自然会使用字符串的逻辑来处理版本号而不是数字。而处理版本号时很多人会选择使用字符串截断来获取主、子版本号,而这就是我说的这种思维的根源。
这也是我举例 Windows10 例子的原因
请问在 xp 或 win7 时代写一个判断系统版本的逻辑,你们能否避免我上个回帖中提到的那个 bug ?
3 段式版本号算是最常见最普遍的一种命名方式了,多接触几种语言或者几个项目都不会有你这总想法。
linux 4.1.x 和 4.19.x
nginx 1.1.x 和 1.16.x
docker 1.1.x 和 docker 1.17.x
可能我上面的回复加的限定还不够多,导致很多人误解,这种直觉性的东西针对的是没有遵照特定版本命名规范或者随性命名的情况。可能我顺手用了 3.11 和 3.1 导致很多人觉得我在说 Python,但我想表达的是这种情况:某个软件,没有遵照版本命名规范的版本或系统,随手定了个版本号比如 1.1,这种情况下直觉性地会觉得 1.11 是 1.1 的子版本,这和命名规则无关
当然,上面我说了所有程序员,代表了所有人的确有失偏颇。可能是因为我最早从 Win32 编程还是主流的那个时代起步的,版本命名不够规范的影响还留着点,时代在发展当年根本没人相信也没考虑到 Windows 能迭代到 10.0,导致程序设计不健壮
但其实也并不是想说要否定版本命名规范这东西,直觉这东西形成了就不好改,每次看版本号我的思维都是 1.11 哦 1.1 的子版本,然后马上又提醒自己 11 是十一不是 1
只不过是当年的人过分武断认为版本号在软件的生命周期内没可能上到两位数,这无论如何都是错误的编码方式
此处可以 @ 迷惑行为大赏
iOS 9 升到 10 的时候不也是很多菜鸟犯了这个错误,老老实实修 bug 就对了。
此处回复主:你对版本号的认识相当业余……
不过现在版本号都有更多的意义了,不像当时那样拍脑瓜写数字,所以应该不太容易误解就是了。