Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

版本号与千年虫问题

  Windows直接跳过了9这个版本号而发布10版,大家都在讨论这个神奇的举动。当年Windows 9x的版本只使用两位数来记年,到了2000年后如果直接用00就无法区分1900和2000,这便是千年虫问题。现在Windows避开9这个版本号防止与Window 9x冲突就是后遗症。
  确实有开发者以“Window 9”这个关键词来判断Window 9x的系统版本,但这不是开发者的错,我觉得这个做法没什么问题。现在哪个程序还有这样的版本判断?XP普及之后就已经没有了吧?也只有一些古老的程序中会有这样的判断,新系统不兼容旧程序是很正常的,当年Visita上不也不支持很多XP程序嘛。从程序开发角度上考虑,这是没问题的,但不推荐。只有从命名的角度考虑才会有问题,比如听到Windows 9和Windows 95,也许不懂的人会认为95是9的升级版,这可能会造成误解之类的。但总之,微软跳过9这个版本号的原因肯定不止这些。
  其实我早期对IE6的判断也是直接根据“MSIE 6”这个字符串来判断的,后来才使用正则表达式直接获取版本号。当时并不是没想过这个问题,只是觉得程序这么写没事。当时的想法是如果真到了IE60,那么IE6这东西也只有博物馆里可以见到了。事实上我的想法是错误的,要是照着Chrome或Firefox的版本号这样突飞猛进,用不了几年Chrome60或Firefox60就会出现。
  不过像Chrome和Firefox这样版本更替迅速的话,程序很难以版本来决定行为。比如如果问IE6或IE8的特性,也许很多开发者会知道这些。但如果问Chrome18或Firefox10的特性,谁会记得?IE毕竟就那么几个版本,所以才会有版本判断,换成Chrome或Firefox,开发者就不会再去写版本判断程序。所以即使IE也开始飙升版本号,过几年后出现了IE60,那么未来的程序中对IE的版本判断也会逐渐消失。
  以版本号来判断不是开发者的错,如果Windows没在95到2003之间突然改用年份做版本号,而是规规矩矩的递增版本号,那么就不会有这样的问题。
网名:
3.84.186.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^