TextMate 2开源, 不要轻易重写应用

来源:互联网 发布:淘宝假ipad 编辑:程序博客网 时间:2024/04/28 15:54

在软件开发的历史上有很多公司试图重写应用,最后大部分都失败了。回到2000年,Netscape公司决定重写整个4.0的软件架构并升级到6.0。整整花了三年的时间完成这份工作,然后就在这段时间,Microsoft凭借着IE悄悄的进入了浏览器市场最后侵占了本属于Netscape的大半江山。后面的几年里,Netscape渐渐的销声匿迹了。

Microsoft同样也犯过这样的错误,当年微软试图想用一款神秘的项目叫做“Pyramid”来代替现在的Word。经过了几年的开发之后,他们意识到,这是一个完全失败的项目,最终终止了开发。幸运的是他们仍然在开发Word,并继续不断的发布新版本。

最近,一个私营的小公司叫做Macromates,该公司开发了一款很成功的文本编辑器产品叫做TextMate,他们决定重写已有的应用并升级到TextMate 2。这项决定出乎意料的花了整个开发团队六年的时间才发布了第一个beta版,在这六年内,TextMate损失掉了大本分的市场。当他们发布beta版后,他们意识到产品发布得太迟了已经不能扭转乾坤了,大势已去,六个月后,TextMate 2出现在 Github上,走上了开源之路。

快速的发布版本,响应市场变化,抓住核心客户比重写软件为了加入更多的功能好得多。第一, 市场变化快,竞争激烈,产品必须能对这些变化做出快速的调整,并指定出解决方案。第二,满足用户增量式的需求,间歇性短周期的发布产品来稳住用户比抛弃用户很长一段时间闭门造车好得多。最后,完成大项目需要的时间总是比预期的药厂,长期的等待,缺陷的积压可能会让用户越来越失望,怎么给用户解释为什么需要那么长的时间,怎么解释用户为什么值得等新产品的发布。

重写应用可能导致的一个经典的误区就是画蛇添足。开发第二个系统的设计师设计出来的系统是最危险的,一种普遍倾向是过分地设计第二个系统,向系统添加很多修饰功能和想法,来代替已有的系统功能。

设计人员在完成当前任务之前计划了一些事情,试图在“最后一次”完成所有的事情,就这样周而复始的,项目任务不断的推迟。这不仅影响到了开发人员,还设计到了所有的设计人员。所有的不利因素在重写应用的过程中发生,能抵挡得住这些消极的因素吗 ?

作者尼尔·冈顿认为有三个因素可以决定你是否需要做重写:

1.  人力

2. 新特性在旧版本不兼容的厉害程度

3. 有多少人乐意使用旧版本,有多少人会被应用升级影响

考虑这些因素,你就可以很清楚的认识到是否需要重新应用。把它看成是一个活的有机体,这也许可以被恢复,而进化的。您可以重构,您可以重写部分的内部结构以让它能够更好工作,在不放弃现有的功能和缺陷的情况下,许多事情也可以实现并融入到当前的代码。当你试图重写应用的时候你就是在大部分的否定现有的应用,并试图抛弃它。 说得好。

git了一个,编译。奉上 编译好的 程序文件:

TextMate