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

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

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

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


当前回答

标签,信息分类的方式。是的,就是每个问题下面的小方框。

令人惊讶的是,标签发明花了大约30年的时间。我们使用了目录和目录;我们使用了为印刷书籍优化的东西。

然而,30年比人们意识到印刷书籍可以用更小的格式的时间短得多。人们可以把书放在手里。

我认为核心CS玩家低估了标签概念。所有的研究都集中在自然语言处理(自顶向下的方法)。但是标签是第一种计算机和人类都能很好理解的语言。这是一种自底向上的方法,使计算机使用自然语言。

其他回答

比特币解决了双重消费问题。它被用来创造去中心化的电子货币。一个名为Namecoin的变体使用相同的技术来构建一个分散的命名系统(类似于DNS)。

过去曾有人试图创建加密货币(这个想法当然并不新鲜),但比特币似乎是第一个成功的实现。其独特的P2P算法在不依赖任何可信权威的情况下解决了双重花费问题。

DOS。我不是DOS的粉丝,但多亏了DOS和IBM-PC电脑才有了今天的样子(不管是好是坏)。

我没有资格在一般意义上回答这个问题,但仅限于计算机编程?并不多。

为什么?我思考这个问题已经有一段时间了,我认为我们缺少两样东西:历史感和客观评价我们所创造的一切的方法。并非所有情况都是这样,但大体上是这样。

For history, I think it's just something not emphasized enough in popular writing or computer science programs. Take language features, for example. A canonical source might be HOPL, but it's definitely not common knowledge among programmers to be able to mark the point in time or in which language a feature like GC or closures first appeared. And of course after that there's knowledge of progression over time: how has OOP changed since Simula? Compare and contrast our sense of history with that of other fields like maybe political science or philosophy.

至于判断,这确实是我们寻求成功的客观衡量标准的失败。给定foobar,它以什么可衡量的方式改进了编程行为中的某些方面,其中foobar是任何设计模式,敏捷方法,TDD等等。我们有没有试过测量这个?我们到底想测量什么?正确性,程序员的生产力,代码的易读性等等?如何?软件工程确实应该着手解决这些问题,但我还没有看到。

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

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

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

第一台真正的多媒体个人电脑,Amiga:第一台32位抢先处理多任务的个人电脑,第一台硬件图形加速,第一台多声道声音,在许多方面,它比现在流行的多核、多兆赫的Windows盒子机更有用、更强大。