这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
当前回答
我想说的是Linux和“越坏越好”哲学的具体化,但你也可以说这些都是更古老的。 所以我会说:量子,化学,肽,dna和膜计算,(重新)以一种非特别的方式和自动化,方面,泛型编程,一些类型的类型推断,一些类型的测试,
我们没有新想法的原因是:专利(这来自60年代末…),公司和教育。
其他回答
在主流计算中,有一件事没有改变,那就是分级文件系统。在我看来,这是一种耻辱,因为在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的流行保证了分层文件系统的主导地位。
我没有资格在一般意义上回答这个问题,但仅限于计算机编程?并不多。
为什么?我思考这个问题已经有一段时间了,我认为我们缺少两样东西:历史感和客观评价我们所创造的一切的方法。并非所有情况都是这样,但大体上是这样。
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等等。我们有没有试过测量这个?我们到底想测量什么?正确性,程序员的生产力,代码的易读性等等?如何?软件工程确实应该着手解决这些问题,但我还没有看到。
上世纪八十年代初,施乐帕洛阿尔托研究中心对计算机蠕虫进行了研究。
摘自John Shoch和Jon Hupp的“蠕虫”程序——分布式计算的早期经验”(ACM通讯,1982年3月,第25卷第3期,172-180页,1982年3月):
In The Shockwave Rider, J. Brunner developed the notion of an omnipotent "tapeworm" program running loose through a network of computers - an idea which may seem rather disturbing, but which is also quite beyond our current capabilities. The basic model, however, remains a very provocative one: a program or a computation that can move from machine to machine, harnessing resources as needed, and replicating itself when necessary. In a similar vein, we once described a computational model based upon the classic science-fiction film, The Blob: a program that started out running in one machine, but as its appetite for computing cycles grew, it could reach out, find unused machines, and grow to encompass those resources. In the middle of the night, such a program could mobilize hundreds of machines in one building; in the morning, as users reclaimed their machines, the "blob" would have to retreat in an orderly manner, gathering up the intermediate results of its computation. Holed up in one or two machines during the day, the program could emerge again later as resources became available, again expanding the computation. (This affinity for nighttime exploration led one researcher to describe these as "vampire programs.")
引用艾伦·凯的话:“预测未来最好的方法就是创造未来。”
至于编程概念,IoC /依赖注入在1988年,根在1983年。福勒在他的Bliki上对这个概念的历史做了一些注释。
数字音乐合成器。
我认为,整个音乐场景都受到了廉价复调合成器的影响。 早期的复调合成器是有效地多个模拟合成器(离散或使用CEM或SSM芯片)。它们都很昂贵,而且数量有限。在80年代,第一个数字系统出现了(我不确定,但我认为Kurzweil是第一个)。 今天,大多数都是数字的——甚至模拟的也是典型的“虚拟模拟”。
问候
编辑:哎呀-我刚刚发现CMI灯管是在1978年发明的。忘掉上面的,抱歉。