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

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

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

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


当前回答

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

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

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等等。我们有没有试过测量这个?我们到底想测量什么?正确性,程序员的生产力,代码的易读性等等?如何?软件工程确实应该着手解决这些问题,但我还没有看到。

其他回答

20年前:面向对象编程——更好地处理软件复杂性。

现在:云计算——为了更好地处理硬件复杂性。

未来:说明性的东西,但它还需要20年。

让我们看看,连接机器(大规模并行)就是其中之一。

不管怎样,这整个问题似乎是艾伦·凯的自大狂,因为他发明了一切。

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

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

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

这是一个很难回答的问题,因为在那之后,除了硬件的改进之外,几乎没有什么东西是具有重大积极意义的发明。虽然在20世纪80年代之前,有许多重大的发明只影响人们,但现在,因为它们在当时是不可行的。

见鬼。血统

现代阴影语言和现代gpu的流行。

GPU也是一个低成本的并行超级计算机,拥有CUDA和OpenCL等工具,可以快速编写高级并行代码。感谢所有在那里压低这些越来越令人印象深刻的硬件奇迹价格的玩家。在接下来的五年里,我希望每台售出的新电脑(iphone也一样)都能基本具备运行大量并行代码的能力,就像24位彩色或32位保护模式一样。