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

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

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

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


当前回答

函数式编程研究者对单子的重新发现。单子有助于让一种纯粹的、懒惰的语言(Haskell)成为一种实用的工具;它还影响了组合子库的设计(一元解析器组合子甚至在Python中找到了自己的方式)。

Moggi的“程序模块的范畴理论解释”(1989)通常被认为是将单子引入有效计算的观点;Wadler的作品(例如,“命令式函数式编程”(1993))将单子作为实用工具。

其他回答

我还会推荐3D鼠标。从20世纪90年代初开始就有几种变体。对于任何使用3D的人来说,像spacenavator这样的东西让生活变得更容易。(免责声明:我与3Dconnexion没有任何关系,只是一个满意的无rsi用户。)

IP多播(1991)和Van Jacobsen的传播网络(2006)是1989年以来最大的发明。

bt。它完全颠覆了以前看似显而易见的不可改变的规则——一个人通过互联网下载一个文件所需的时间与下载该文件的人数成正比。它还解决了以前的点对点解决方案的缺陷,特别是围绕着“吸血”,以一种有机的解决方案本身的方式。

BitTorrent优雅地将通常的缺点——许多用户试图同时下载一个文件——转变为优点,将文件在地理位置上分发,这是下载过程的自然组成部分。它优化两个对等点之间带宽使用的策略不鼓励作为副作用的“吸血”——强制节流符合所有参与者的最佳利益。

这是一种一旦被别人发明出来,即使不明显,也似乎很简单的想法。

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

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

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

采用面向对象。

这个想法早前就出现了(例如Simula),但在20世纪90年代成为主流。(恕我直言,它最大的好处之一是在开发人员之间提供了一个通用的词汇表,所以它的广泛采用使它更有价值。)