这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
这个问题来自于对过去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等等。我们有没有试过测量这个?我们到底想测量什么?正确性,程序员的生产力,代码的易读性等等?如何?软件工程确实应该着手解决这些问题,但我还没有看到。
其他回答
自1980年以来,关于社会计算的想法已经取得了进展。油井工程始于1985年。虽然我确信以前有在线社区,但我相信该领域的一些真正的见解发生在1980年之后。社会社区的不利动态方面及其在软件系统上的交互很像塔科马海峡大桥的灾难。
我认为Clay Shirky在该领域的工作阐明了这些影响以及如何减轻它们。我想说,社交软件洞察力的有趣的现实世界的例子包括reCAPTCHA和维基百科,其中重要的有价值的工作是由软件调解的参与者完成的。
c++编程语言(1983年) 模板元编程(1994)
个人电脑。
毫无疑问,在过去的30年里,计算最重要的部分是现在每个人都是它的一部分。家用电脑大约从1977年才开始普及,直到80年代才得到广泛应用。现在,幼儿园、老年中心和你的每个邻居都有一台。
Open Croquet http://www.opencroquet.org -一个吱吱声,基于smalltalk的3D环境,允许多个用户从内部交互和编程环境。它有自己的对象复制协议,用于在互联网上高效和可扩展地共享环境。**这很难描述,因为没有任何东西能像它一样……
1)我提出这个建议是因为当我试图向别人解释它是什么时,我发现他们希望我把它与其他东西进行比较……我还没有发现任何类似的东西,尽管有许多来自其他系统的元素(例如Smalltalk, Open GL, etoys,虚拟世界,远程协作,面向对象的复制架构),整体似乎远远超过部分…
2)不像这里提到的许多技术,它还没有成为一个广泛开发的商业利基市场……
这两点都是这项技术处于早期阶段的迹象。
我怀疑,当艾伦·凯开始研究这个问题时,他可能首先就考虑过这个问题的主题。
http://www.onlisareinsradar.com/archives/001281.php
在主流计算中,有一件事没有改变,那就是分级文件系统。在我看来,这是一种耻辱,因为在20世纪80年代末和90年代,一些工作已经完成,以设计更适合现代面向对象操作系统的新型文件系统——那些从头开始就是面向对象的操作系统。
OO操作系统倾向于具有可扩展且灵活的平面对象存储。我认为EROS项目就是围绕这个想法建立的;PenPoint操作系统是20世纪90年代的面向对象操作系统;Amazon S3当然是当代的平面对象存储。
在面向对象的平面文件系统中,至少有两个想法是我特别喜欢的:
The entire disk was essentially swap space. Objects exist in memory, get paged out when they are not needed, and brought back in when they are. There's no need for a hierarchical filesystem that's separate from virtual memory. Programs are "always running," in a sense. A flat file/object store allows content to be indexed and searched, rather than forcing the user to decide -- ahead of time -- where the content will live in relation to other content and what its name shall be. A hierarchical system could be built on top of the flat storage, but it's not required.
正如Alan Cooper在他的书《About Face》中所述,分层文件系统是一个拼凑物,是为20世纪60年代和70年代内存和磁盘存储有限的计算机设计的。可悲的是,Windows和Unix的流行保证了分层文件系统的主导地位。