这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
当前回答
这是一个很难回答的问题,因为在那之后,除了硬件的改进之外,几乎没有什么东西是具有重大积极意义的发明。虽然在20世纪80年代之前,有许多重大的发明只影响人们,但现在,因为它们在当时是不可行的。
见鬼。血统
其他回答
几乎是现代3D计算机图形学中所有重要的东西。射线追踪(在计算图形意义上)是从Whitted 1980年的论文开始的。行军立方体('87)是从3D数据中提取等值面的标准方法。
为了开始思考这个问题,我需要一个关于“创新”意味着什么的模型。
我所见过的最好的模式是技术采用生命周期。你可以在这篇维基百科文章中得到一个概述。
利用这个模型,我开始问自己……软件本身处于生命周期的哪个阶段?我们可以把“软件”看作一种不同于机械的技术,这种技术可以一直追溯到巴贝奇(Babbage),或者更准确地说,追溯到Ada Lovelace夫人。
但至少在1951年之前,它仍然处于非常早期的开拓阶段。这是编程计算机“商业化”的一年,即销售计算机产品的模型,并制造大量该模型的单元。我在想Univac卖给人口普查局的那台机器。
从1951年到1985年,软件创新层出不穷。它们主要与将计算的范围扩展到一个更广阔的领域有关。与此同时,大规模营销和大规模生产不断降低入门成本,直到苹果和IBM-PC使可编程设备成为一种常见的设备。
在1980年到1985年之间,我认为软件从创新者的领域过渡到“早期大多数”领域。抱歉,伙计们,这让你们所有参与MS-DOS, Mac, Windows, c++和Java早期的大多数人而不是创新者。这并不妨碍你在自己的领域和自己的项目中进行重大创新。这只是意味着这个领域本身已经从最早的阶段发展起来了。
虽然互联网的前身早在20世纪70年代就出现了,但直到阿尔·戈尔发明了互联网(抱歉),人们才开始上网。在那个阶段,软件从早期的主流变成了晚期的主流。正如钟形曲线的顶部所显示的那样,这种变化是微妙的。并非所有商店都同时从早期多数转变为晚期多数。
我认为软件还没有完全进入“落后”阶段,但我认为真正的创新者正在解决今天在不同战线上产生进步的问题。
我能想到的两个方面是生物工程和信息设备。这两个领域都需要软件,但主要的推力不是软件创新。它正在把软件应用到未知领域。可能还有很多我不知道的战线。
有目的的游戏——像Luis von Ahn和他的团队正在开发的集体智慧工具在1980年之前可能是一个梦想,但当时没有一个广泛部署的网络,可以容纳数百万人,并且需要(例如reCAPTCHA)来实现它。
我们需要的是重组,而不是再造。
我们现在拥有所有我们需要的硬件和软件组件,在未来几年里做一些令人惊叹的事情。
我相信科学中有一种疾病,参与者总是试图发明一些新的东西来区别于别人。这与做一些编目或教授旧作品的混乱工作形成了鲜明对比。
建造“新”东西的人通常被认为比重用现有的和几乎古老的作品的人有更高的血统。(对于一个20岁的年轻人来说,Lisp的开发时间是他们生命的两倍还多。1958)
好的旧想法需要复活并广泛传播,我们需要停止试图建立企业或程序员运动,有效地践踏旧的作品和系统,在权力游戏中成为下一个新事物——事实上,大多数“新的闪亮”事物只是旧想法复活的方面。
这是一个消极的结果,作为一个“基础创新”很奇怪,但我认为适用,因为它开辟了新的研究领域,关闭了无用的领域。
分配共识的不可能性:2001年PODC影响力论文奖
We assumed that the main value of our impossibility result was to close off unproductive lines of research on trying to find fault-tolerant consensus algorithms. But much to our surprise, it opened up entirely new lines of research. There has been analysis of exactly what assumptions about the distributed system model are needed for the impossibility proof. Many related distributed problems to which the proof also applies have been found, together with seemingly similar problems which do have solutions. Eventually a long line of research developed in which primitives were classified based on their ability to implement wait-free fault-tolerant consensus.