每过一段时间,就会在什么 看到一篇鼓吹non-relational数据库系统的文章。从六七年前的面向对象数据库,到如今的XML数据库。
这让我不能不先说另一个话题。软件业发展到今天,能够成为可用的、系统化的、形式化的成功理论并不多。究其原因,也不一而论。我个人认为这是因为软件已经达到了人类认知的“极限”。说句白话,就是:所有行业靠计算机自动化,计算机行业呢?不可能自己把自己用自己的头发提起来。所以计算机行业可能天生就是手工作坊和天才经验的天下;或者是像达尔文系统那样,随机突变,适者生存。没有可认知的、可预测未来的理论。
不过即便如此,软件业终究还是发展除了仅有的几个形式化极高的理论。一是语言识别。这里说的不是“自然语言识别”,而是通过四型文法,和自动机理论为基石的语言识别。这个理论把软件业成功带入了高级语言的世界。也把编写任何一个parser变成了大学毕业生在几个星期内就可以完成的任务(要知道,在文法和自动机理论未能完善的时代,第一个Fortran编译器花费了IBM资深工程师们几年的时间)。
另一个成功的形式化的理论就是关系型数据库。其严密的数学描述和多年的发展,成为海量数据的不二之选。
我们能够期待一个突破的理论能够在几年内出现吗?