这个问题来自于对过去50年左右计算领域各种进展的评论。

其他一些与会者请我把这个问题作为一个问题向整个论坛提出。

这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。

我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”


当前回答

为了开始思考这个问题,我需要一个关于“创新”意味着什么的模型。

我所见过的最好的模式是技术采用生命周期。你可以在这篇维基百科文章中得到一个概述。

利用这个模型,我开始问自己……软件本身处于生命周期的哪个阶段?我们可以把“软件”看作一种不同于机械的技术,这种技术可以一直追溯到巴贝奇(Babbage),或者更准确地说,追溯到Ada Lovelace夫人。

但至少在1951年之前,它仍然处于非常早期的开拓阶段。这是编程计算机“商业化”的一年,即销售计算机产品的模型,并制造大量该模型的单元。我在想Univac卖给人口普查局的那台机器。

从1951年到1985年,软件创新层出不穷。它们主要与将计算的范围扩展到一个更广阔的领域有关。与此同时,大规模营销和大规模生产不断降低入门成本,直到苹果和IBM-PC使可编程设备成为一种常见的设备。

在1980年到1985年之间,我认为软件从创新者的领域过渡到“早期大多数”领域。抱歉,伙计们,这让你们所有参与MS-DOS, Mac, Windows, c++和Java早期的大多数人而不是创新者。这并不妨碍你在自己的领域和自己的项目中进行重大创新。这只是意味着这个领域本身已经从最早的阶段发展起来了。

虽然互联网的前身早在20世纪70年代就出现了,但直到阿尔·戈尔发明了互联网(抱歉),人们才开始上网。在那个阶段,软件从早期的主流变成了晚期的主流。正如钟形曲线的顶部所显示的那样,这种变化是微妙的。并非所有商店都同时从早期多数转变为晚期多数。

我认为软件还没有完全进入“落后”阶段,但我认为真正的创新者正在解决今天在不同战线上产生进步的问题。

我能想到的两个方面是生物工程和信息设备。这两个领域都需要软件,但主要的推力不是软件创新。它正在把软件应用到未知领域。可能还有很多我不知道的战线。

其他回答

怪诞的开发风格(由Eric S Raymond在http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/中描述)。Raymond认为1991年Linus Tourvald发布的Linux内核是Bizarre开发风格的第一次使用。

我认为计算中的大多数概念都在不断改进,但也有一些新的发展,特别是在分布式计算方面。

对故障和缺陷的鲁棒性,以及故障恢复,即。Paxos,拜占庭容错等。 我知道人们提到过P2P, P2P通信发生在70年代,但恕我直言,我不认为它具有与今天相同的性质,具有分布式哈希表,高效的动态自组织网络,最重要的是,匿名性(例如Freenet, Tor)。

大多数工作都经过了改进,虽然许多现代系统比60年代或更早时候首次描述的原始概念好不了多少,但有些系统好了几个数量级。

我不得不说,自1980年以来,计算机领域最大的发明是摩尔定律。20世纪60年代和70年代有很多非常酷、创新的东西被创造出来,但它们都是昂贵得离谱的一次性项目。这些项目大多消失在时间的迷雾中。

今天,这个很酷的创新项目获得了几轮融资,并在6个月左右的时间里出现在每个人的桌面或网络浏览器上。

如果这都不算创新,那什么才是?

我想说的是Linux和“越坏越好”哲学的具体化,但你也可以说这些都是更古老的。 所以我会说:量子,化学,肽,dna和膜计算,(重新)以一种非特别的方式和自动化,方面,泛型编程,一些类型的类型推断,一些类型的测试,

我们没有新想法的原因是:专利(这来自60年代末…),公司和教育。