<audio id="audio" title="150 | Ashton-Tate：桌面数据库王者的兴衰" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/71/0e/715c0edbec4e7d2bc20a505f3f1dcd0e.mp3"></audio>

提起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的失败，一方面是因为自己产品的竞争优势并非有很高的准入门槛，另外一方面是自己的产品除了优点以外还有很多的缺点。但是最本质的还是一家公司取得优势以后开始肆意妄为了。

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


