我这个标题不知所云

其实是我实在不知道该怎么样简单描述这件事

是这样的 举个例子:

Google 拼音输入法 应该是Google中国团队的作品

在下载页面 有版本2的稳定版 和版本3的测试版

像我这样的尝鲜党肯定会使用它最新的版本号

结果前些天发现

2里的很多实用功能3并没有

兼容性也是2比3要好很多

比如在wow里2就可以显示选字框 3不行

比如在win8里2已经完全兼容了 但是3还有好多问题

有人肯定会跳出来说了

谁让你要用测试版 兼容性肯定不好 活该

自己用了测试版还不允许人家有问题

初想是这么个理 但事实不是这样

可以听我分析

在测试版里出现的新的bug或者兼容性问题

往往是因为功能的增加改动代码导致的新问题

并且也应该努力去解决

而Google拼音输入法我遇到的那些问题

开始在2和3里都有 都算是老问题

可是后来在2里解决了 却没有在3里同步解决

即使3的branch里修改代码不同 那总该是要修改的吧

而关于win8的兼容 是因为windows8发布导致的

这时由于版本2用的人多 开发团队就迅速的修改了2的代码

3这个branch按理说也应该晚点修正 可是很长时间了 都没改

其实 我最后发现

这个版本3已经很久都没有更新了

它比2其实要旧好几个月

却一直放在那里 迷惑用户 让用户以为它是最新的

说个正面的例子

Python从2迁移到3 直到现在还在艰难的进行当中

这迁移的困难主要是由于第三方历史库导致的

而python核心的开发组 在这两个版本号的处理上 就高明很多

首先3如果在新版本加了什么功能

过不久如果2可以不困难的加上去 那也就加上去了

而2如果发现了什么bug 团队会第一时间去检查3

基本会同时修复 或者3还修复的更久一些

这才是对一个新版本应有的态度

我其实更支持线性的开发迭代

但是项目大了不免有很多外部原因要分Branch

甚至有时候压根就不准备merge了 比如python

可你既然决定要齐头并进一段时间了

上策当然是同时发展过了适应期让老版本淡出

中策是还没过适应期但是无力维护老版本

于是说长痛不如短痛 不管老版本了 大家都用新的

而我们却经常碰到下策

新版本吊儿郎当的开发 进度和投入资源远不如老版本

最后新版本半死不活的扔在那里 老版本也慢慢死去

相似的例子还有如今很火的移动apps

对于平板和手机的兼容

有的团队选择一个app搞定全部兼容

而有的团队选择分别开发手机版本和HD版本

而这个新浪微博

在安卓上弄了个HD版本的微博

然后就扔在那里半年不管了

而Google Play却又限制平板只能安装平板版的

因为普通版兼容性列表里就没有大屏幕嘛

于是现在安卓平板想用这么常用的功能都那么难

那个安卓版实在是很烂

评价都快掉的一颗星了……

希望所有的做软件的和写文章的

一定慎重挖坑

这是我见过的挖坑不填率最高的两个行业了……