为什么软件这么复杂?

我经常听到人们以质疑的方式提出这个问题:为什么软件这么复杂?惯有的讥讽段子都以这样的句子开头:“ 如果(汽车,建筑)像软件一样,那么......"

------------------------------我是分割线------------------------------
然而我们要记住,软件就是为复杂而生的。

因为我们要构建复杂的东西,我们才开发的软件。我们要构建复杂的东西,构建有许多功能和选项的东西,构建需要成千上万台计算机分布在多个大洲的东西,构建可以去太空、可以去火星的东西, 构建在高速公路上自行行驶的东西。我们想要构建的这些东西本质上是复杂的。软件只是这种复杂性的提炼。软件就是复杂性。

不要误会我的意思:我们并不是追求复杂,复杂性糟透了,每个软件项目应尽可能简单。
但是,整个软件工程的目标是增加复杂性:使构建更大,更大胆,更强大和更复杂的事物成为可能。复杂性既是我们的宿敌,也是我们的目标。我们再也不能比水手能逃脱大海更能逃脱它。

你可能感兴趣的:(为什么软件这么复杂?)