系统和软件之间的兼容关系。

##系统和软件之间的兼容关系

兼容(Compatible),这个词在汉语中的意思大概就是:可以在一起工作或相处。

在计算机中兼容也是指,硬件之间或软件之间可以很好的配合,不会引起错误或崩溃的情况。如果运行得很好,或者很容易配合在一块我们就会称之为兼容性很好;反之称为兼容性很差。

在计算机的快速发展过程中,无论硬件还是软件,我们所使用的产品都会发生迭代——这里的产品指的可以是计算机硬件也可以是软件程序。 出于客观原因,我们不可能让所有人使用的产品都保持一致。因此我们需要让旧的产品和新的产品可以很好的在一起工作,这也就是兼容。

这里会引申出两种情况,旧的产品可以在新的产品上使用;新的产品可以在旧的产品上使用。

前者我们称之为向后兼容(Backward Compatibility),也称为向下兼容(Downward Compatibility)。

后者我们称之为向前兼容(Foreward Compatibility),也称为向上兼容(Upward Compatible)。

这两者无论你如何理解都可以。我们用非常经典的办公软件office来举例。office 2003和office 2007是同一个产品的不同版本。新产品office 2007可以使用office 2003的文档,我们称软件office 2007可以向后兼容。而旧产品office 2003可以使用office 2007的文档,我们称软件office 2003可以向前兼容。

有时候我们会遇到使用office 2007中的新功能编辑文档,但在office 2003中无法使用的情况。这就可以说该功能不兼容office 2003。或者说office 2003对该文档(功能)不支持向前兼容。

总体来说,新产品可以使用旧产品,称为向后兼容。旧产品可以使用新产品,称为向前兼容。其实这两者只是相对的概念,就像我们称呼速度的快慢一样。例如,车跑得比人快,人跑得比车慢;新软件向后兼容旧软件,旧软件向前兼容新软件。只是其中混杂着一些计算机数据或文件共享的知识,而且这不像速度快慢一样绝对。我们习惯上说,车比人快,相对的那人一定是比车慢。而在计算机中,经常新产品向后兼容,但旧的产品不一定向前兼容。

上面提到的兼容较为狭义,通常我们两种不一样的产品可以放在一起使用我们也称之为兼容。假设有一款软件在Windows上运行得很好,在Linux上也运行得很好,我们也称之为兼容,通常说该软件兼容Windows和兼容Linux。或者当不同的软件A和软件B在一起运行时会相互影响,例如访问并修改同一处内存导致错误,我们也会称软件A和软件B不兼容或兼容性差。

一些题外话:其实计算机技术发展这么快,我们对词语的理解经常会跟不上技术的发展。就算不使用专业的词汇,也可以用其他方式很好的描述产品特性。我们只是需要描述某个东西能不能在某个地方使用,或者能不能和某个其他东西很好的一起工作而已。