150 Ashton-Tate:桌面数据库王者的兴衰 提起Ashton-Tate这个公司,可能很多人已经毫无概念了。但dBase作为其一款产品,在20世纪80到90年代的程序员脑海里,印象肯定还是很深刻的。在Ashton-Tate最辉煌的时候,个人计算机上的数据库都是dBase。但是Ashton-Tate这样一个在桌面数据库领域占有统治地位的公司,衰败起来却也非常迅速。

今天我就来讲讲dBase和Ashton-Tate的兴衰。

Ashton-Tate公司是由乔治·塔特(George Tate)和哈尔·拉什利(Hal Lashlee)于1980年创建的。他们从当时在美国宇航局的喷气推进实验室(Jet Propulsion Laboratory,JPL)工作的韦恩·拉特利夫(Wayne Ratliff)那边拿到了他写的一个叫做Vulcan的程序的授权。 Vulcan最初跑在CP/M操作系统上。

Ashton-Tate拿到授权以后将其改名为dBase,并开始对外发售这个产品。

作为一个单机版的数据库,dBase有一个数据库引擎,一个查询引擎,一个报表引擎和一个查询语言dBase Language。后者并非是SQL,而是一种相对更复杂的编程语言。这种语言非常好用,深受用户欢迎,它可以让用户直接开发应用程序,解决实际问题。

dBase开始发售以后就非常受欢迎。1982年,IBM PC机发布的时候,Ashton-Tate很快就把这个非常受欢迎的dBase程序移植到了DOS上来。没过多久dBase就成了IBM PC机上最受欢迎的程序之一。

有一次调查表明,在IBM PC机上最流行的软件的前三名分别是:Lotus 1-2-3报表软件、WordPerfect文字处理软件和dBase数据库。前两者我在之前的专栏里面已经介绍过了。

dBase软件当时采用的是解释执行的方式而非编译执行的方式。这比较像Basic,但不像后来的高级语言,比如C++。这样做的好处是让应用程序的开发和调试变得非常方便,用户可以实时测试新的语句是否正确而不需要先编译。不过也带来了一个显而易见的问题:执行效率低。

另外,dBase的编程语言是一种非常简单易学的语言。稍微有点编程经验的人,只需要看看手册很快就能编出功能强大的应用程序。

尽管dBase的售价高达700美元,但这两个特点还是让很多的个人和企业的开发者蜂拥而至,掏腰包购买dBase。

PC机上的第一版dBase被命名为dBase II。其实从功能上来说,和CP/M上的区别并不大。但是因为Bug已经被修的差不多了,所以Ashton-Tate觉得命名为“II”的话,会让用户觉得这个版本更好。

1983年,Ashton-Tate又发布了 dBase II Runtime。这个新发布的产品允许开发者开发出dBase 的应用程序以后,可以把应用程序和Runtime一起发售给他们的客户,而不是像之前那样,客户必须同时购买dBase和应用程序。

这个Runtime的发布,让Ashton-Tate的dBase销售业绩又上了新的高峰。在1983年,dBase已经成为名副其实的桌面数据库的统治者。这一年的销售业绩,也让Ashton-Tate顺利地在年底IPO,正式上市了。

1984年,Ashton-Tate发布了dBase III。这是dBase数据库上的一次大升级。于此同时,Ashton-Tate也做了一个非常大的改变。dBase之前的版本都是用汇编语言开发的,而dBase III是用C语言开发的。因为C语言可以让dBase很容易地移植到其他平台上,但是汇编则很困难。

照理来说这是一个好事情。但这次Ashton-Tate偷懒了。他们决定使用一个工具把汇编代码直接翻译成C代码,然后在翻译的老版本上继续开发新版本。而问题是汇编翻译过来的C语言可读性和可维护性都不是一般的差。这为Ashton-Tate后续的问题埋下了隐患。

不管怎么样,dBase III依旧是一个大卖的产品。Ashton-Tate在个人计算机的数据库市场的地位越发稳固。

1986年,Ashton-Tate发布了dBase III+。这个版本增加了菜单功能,有了菜单用户就可以更方便地使用dBase。

然而这个时候市面上的风声变了。一方面是用户希望dBase可以提供更复杂的功能,但是复杂的功能和易用性是非常矛盾的。Ashton-Tate显然没有在这两方面之间做好取舍。另外一方面,这个市场是如此地诱人,dBase的各种竞争对手也纷纷登场了,比如我们比较熟悉的FoxBase和FoxPro。

Ashoton-Tate的dBase的产品还有一个问题,不同版本之间的语言大体相似,功能大体相似,但是向后不是100%兼容的。而开发者在不同版本上需要做一些调整。

dBase的克隆产品对dBase发起进攻主要是两个方面:一方面是这些产品往往都不是解释执行的,而是带着编译器来的,编译执行的效率更高;另外一方面是这些产品给dBase增加了很多新的性能,比如用户自定义函数,而这些东西是开发者盼望已久但是Ashton-Tate却没有开发的。

于是,Ashton-Tate许诺在下一个版本里会自带编译器。但是令Ashton-Tate没有想到的是,因为之前偷懒,现在的代码混乱,在上面开发一个编译器很困难。但是Ashton-Tate还是觉得自己家的产品占统治地位,所以没有编译器也不至于有什么大问题。

1988年,Ashton-Tate 发布了 dBase IV。这个版本成了Ashton-Tate的“终结者”。一方面,公司食言而肥,没有在产品里面置有本来就许诺的编译器。另外一方面,这个版本和前面版本的兼容性更差了。不仅仅如此,这个版本的效率不但比竞争对手差,比自己的第三版也要差很多,而且这个版本开发得很匆忙,无数Bug都没有好好测。总结起来说,这是个半成品。

无数的客户开始投奔其竞争对手,Ashton-Tate的市场占有率从63%掉到43%,其中很大一部分还是老版本的客户。产品不好卖,公司没有盈利,就开始大规模裁员。这又影响了后续版本的开发。稳定版的 dBase IV 1.1一直到1990年才发布,而到这个时候,用户已经持续不断地奔向竞争对手的怀抱了。Ashton-Tate回天乏力。

Ashton-Tate开始打算卖公司,和Lotus、Infomix、Symantec以及微软等诸多公司讨论合并问题。不知道是不是报价问题,最终令人大跌眼镜的是,dBase竟然被Borland收购了。

而之所以让人大跌眼镜,是因为Borland自己就有一个dBase的克隆产品Paradox,也是dBase的竞争对手之一。Paradox的技术上比dBase先进很多,卖得也不错。果不其然,买了之后,Borland自己的产品Paradox和dBase打架的局面在内部愈演愈烈,搞得两个产品都卖得不好。

当时操作系统正向Windows迁移,而微软给桌面数据库准备了一个叫做Access的产品,同时微软又买下了一个dBase的竞争对手FoxPro。所以伴随着Windows的全面铺开,dBase的东家Borland又自己忙于左右互搏,dBase很快就衰败了,从此退出桌面数据库的历史舞台。

总体来看,dBase的成功主要是顺应了时代的潮流,提供了好用的产品。而dBase的失败,一方面是因为自己产品的竞争优势并非有很高的准入门槛,另外一方面是自己的产品除了优点以外还有很多的缺点。但是最本质的还是一家公司取得优势以后开始肆意妄为了。

我们常常说,客户是上帝,客户是衣食父母,肆意妄为的企业,从来都是没好结果的,只是结局来得早点、晚点而已。

参考资料

https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e6%8a%80%e6%9c%af%e4%b8%8e%e5%95%86%e4%b8%9a%e6%a1%88%e4%be%8b%e8%a7%a3%e8%af%bb/150%20Ashton-Tate%ef%bc%9a%e6%a1%8c%e9%9d%a2%e6%95%b0%e6%8d%ae%e5%ba%93%e7%8e%8b%e8%80%85%e7%9a%84%e5%85%b4%e8%a1%b0.md