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

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

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

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


当前回答

Damas-Milner type inference (often called Hindley-Milner type inference) was published in 1983 and has been the basis of every sophisticated static type system since. It was a genuinely new idea in programming languages (admitted based on ideas published in the 1970s, but not made practical until after 1980). In terms of importance I put it up with Self and the techniques used to implement Self; in terms of influence it has no peer. (The rest of the OO world is still doing variations on Smalltalk or Simula.)

类型推断的变化仍在上演;我最喜欢的变体是Wadler和Blott的解决重载的类型类机制,后来发现它为类型级别的编程提供了非常强大的机制。这个故事的结局还在书写中。

其他回答

传感器网络:非常微小的(纳米级)计算机形成自组织p2p网络并传输“传感”信息。

3D打印:物理对象的《星际迷航》复制器(还没有Early Grey茶)。

DNA计算:针对某些类型问题的大规模并行计算。

iPad(2010年4月发布):这样的概念绝对是革命性的!

可选文字 http://www.ubergizmo.com/photos/2010/1/apple-ipad//apple-ipad-05.JPG

艾伦·凯不可能在20世纪70年代看到这一点! 想象一下这样一个“个人的、便携的信息操纵者”……


...

等待?什么! ?你说的Dynabook ?

早在1968年,艾伦·凯就提出了这个想法,并在1972年的论文中进行了详细的描述。

NOOOoooooooo……

哦……不要紧。

前提:自1980年以来几乎没有新发明。

要做的第一件事是定义发明,否则你就会误入歧途。Dictionary.com对发明的第二个定义是:

美国专利法。一种新的、有用的工艺、机器、改进等,以前不存在,被认为是某种独特的直觉或天才的产物,区别于普通的机械技能或工艺。

因此,自1980年以来,计算机领域的新发明很少。都发生了什么?显然,有大量的新技术和新事物出现,但它们是什么呢?

我们不再发明了,我们只是在改进已经存在的东西。

举个简单的例子:

光盘最早出现于1977年,但直到1982年才被业界接受。此时,第一家刻录cd的工厂刚刚准备就绪。最终,到1985年,CD-ROM(只读存储器)被接受为一种媒介。5年后,CD-RW问世。(来源:维基百科)

现在怎么办呢?好吧,考虑到我们有更大的硬盘驱动器(仍然只是在范式上的改进),我们需要更多的空间来取代VHS市场,使视频与计算机兼容。于是就有了DVD,尽管我删去了对现有CD技术的许多改进。

DVD是在1995年被“发明”出来的。(来源:维基百科)

从那时起,我们有:

可写dvd和可重写dvd 双层dvd 三层和四层dvd(尚未发布,但通过简单的驱动程序修订是可行的) hd - dvd 蓝光光盘

显然,这个列表并不包括所有的内容。但是注意新发明,记住我上面给出的定义,在那个列表中。你不能!它们都是光盘概念的变体,都是相同硬件的变体,都是现有软件的变体。

WHY?

成本。你看,对现有产品进行渐进式改进在经济上更便宜。如果我可以卖给你一张HD DVD或蓝光光盘,因为你认为它是必要的或很酷,那么我就没有必要发布我的三层或四层DVD计划。事实上,我可以收取很高的费用来获得新技术,因为您是早期采用者,您需要我的“新的和改进的!”硬件。

这就是所谓的市场营销或产品关系。

但是软件呢?

怎么了?在1980年之前,有很多软件创新在进行,但从那以后,它主要只是对已经存在的东西进行改进或重新发明轮子。看看任何操作系统或办公软件包就知道了。

结论

As far as I'm concerned, there have been virtually no new inventions in the past 29 years. I could wax long and cross a great many industries, but why should I bother? Once you start thinking about it, and start comparing an "invention" to a prior, similar product ... you'll find it is so similar that it isn't even funny. Even the internal combustion engine has been around since 1906 with no new inventions in that field since then; many improvements and variations of this "wheel" yes, but no new inventions.

甚至连美国在伊拉克部署的新武器——利用微波让人感到震惊,就像触摸灯泡一样——都不是新武器。同样的想法被用于安全系统,然后被分类并退出市场,用超声波让入侵者感到身体不适。这是一种定向形式的武器,具有不同的波长和应用,不是一项新发明。

在操作系统核心开发中使用函数式编程/语言。

DNS, 1983年,以及依赖的进步,如通过MX记录而不是刘海路径来解析电子邮件主机。*不寒而栗*

Zeroconf工作在DNS之上,2000年。我把我的打印机插入网络,我的笔记本电脑看到了它。我在网络上启动了一个web服务器,我的浏览器看到了它。(假设他们广播了他们的可用性。)

NTP(1985)基于Marzullo算法(1984)。精确的时间在紧张的网络。

鼠标滚轮,1995年。使用没有它的鼠标感觉太原始了。不,这不是恩格尔巴特团队想过却忘了提的东西。至少当我问当时团队里的人时没有。(那是1998年左右在恩格尔巴特的一次活动上。我要对付第一批老鼠中的一只。)

1987年的Unicode,以及它在不同类型的编码、规范化、双向文本等方面的相关进展。

是的,人们每天使用这5种方法是很常见的。

这些真的是“新想法”吗?毕竟,有了鼠标,有了字符编码,有了网络计时。告诉我如何区分“新”和“真正的新”,我会回答你的问题。我的直觉告诉我这些足够新了。

在较小的领域,很容易有更近期的进展。例如,在生物信息学领域,Smith-Waterman(1981)和BLAST(1990)有效地使该领域成为可能。但这听起来像是你在要求在整个计算领域中非常广泛的想法,而且容易摘到的水果会被先摘。在一个新的领域总是如此。