这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
这个问题来自于对过去50年左右计算领域各种进展的评论。
其他一些与会者请我把这个问题作为一个问题向整个论坛提出。
这里的基本思想不是抨击事物的现状,而是试图理解提出基本新思想和原则的过程。
我认为我们在大多数计算领域都需要真正的新想法,我想知道最近已经完成的任何重要而有力的想法。如果我们真的找不到他们,那么我们应该问“为什么?”和“我们应该做什么?”
当前回答
收缩包装软件
在1980年以前,软件大多是专门编写的。如果你经营一家企业,想要计算机化,你通常会有一台计算机、编译器和数据库,然后自己写东西。业务软件通常是为适应业务实践而编写的。这并不是说没有固定的软件(我在1980年之前使用SPSS),但这不是常态,我看到的往往是基础设施和研究软件。
现在,你可以去电脑商店,在货架上找到经营小生意所需的一切。它的设计并不是为了无缝地适应您曾经拥有的任何实践,但是一旦您学会或多或少地按照它的工作流程工作,它就会很好地工作。像SAP和仁科(PeopleSoft)这样的大企业比过去更接近于收缩包装。
这并不是一个彻底的突破,但在1980年之后,有一个非常明确的转变,从昂贵的定制软件到低成本的现成软件,灵活性从软件转移到业务流程。
它还影响了软件的经济性。定制软件解决方案可以盈利,但无法规模化。你只能向一个客户收取这么多钱,你不能把同样的东西卖给多个客户。使用收缩包装软件,你可以卖出很多很多相同的东西,在一个非常大的销售基础上摊销开发成本。(你必须提供支持,但这是有限度的。就当这是销售软件的边际成本吧。)
Theoretically, where there are big winners from a change, there are going to be losers. So far, the business of software has kept expanding, so that as areas become commoditized other areas open up. This is likely to come to an end sometime, and moderately talented developers will find themselves in a real crunch, unable to work for the big boys and crowded out of the market. (This presumably happens for other fields; I suspect the demand for accountants is much smaller than it would be without QuickBooks and the like.)
其他回答
DNS, 1983年,以及依赖的进步,如通过MX记录而不是刘海路径来解析电子邮件主机。*不寒而栗*
Zeroconf工作在DNS之上,2000年。我把我的打印机插入网络,我的笔记本电脑看到了它。我在网络上启动了一个web服务器,我的浏览器看到了它。(假设他们广播了他们的可用性。)
NTP(1985)基于Marzullo算法(1984)。精确的时间在紧张的网络。
鼠标滚轮,1995年。使用没有它的鼠标感觉太原始了。不,这不是恩格尔巴特团队想过却忘了提的东西。至少当我问当时团队里的人时没有。(那是1998年左右在恩格尔巴特的一次活动上。我要对付第一批老鼠中的一只。)
1987年的Unicode,以及它在不同类型的编码、规范化、双向文本等方面的相关进展。
是的,人们每天使用这5种方法是很常见的。
这些真的是“新想法”吗?毕竟,有了鼠标,有了字符编码,有了网络计时。告诉我如何区分“新”和“真正的新”,我会回答你的问题。我的直觉告诉我这些足够新了。
在较小的领域,很容易有更近期的进展。例如,在生物信息学领域,Smith-Waterman(1981)和BLAST(1990)有效地使该领域成为可能。但这听起来像是你在要求在整个计算领域中非常广泛的想法,而且容易摘到的水果会被先摘。在一个新的领域总是如此。
有效的并行化和量子计算——我认为这是两个已经取得进展的领域,而且还将取得更大的进展,从而使我们对计算能力的使用发生重大变化。
有效的并行化意味着在不需要特殊编程技术的情况下并行和分布处理,但将其内置到编译器/框架中。
我认为笔记本电脑是在1980年左右发明的,我还认为笔记本电脑和便携式计算机的发展改变了很多人的生活——尤其是那些在IT行业工作的人,或者那些使用电脑和旅行的人。
在操作系统核心开发中使用函数式编程/语言。
来回答一个稍微不同的问题。我认为我们需要在隐私、信任和声誉方面有大的想法。我的电脑几乎能捕捉到关于我的一切,我在哪里,我说了什么,我打了什么,我看到了什么……大量的信息和同等数量的实体(人、商店、网站、服务),我可能想与他们共享其中的一些信息,即使它只是一个数据块。
我的信息需要挖掘(不是谷歌的,Facebook的或苹果的)。我的计算机需要代表我使用它,因此信任需要端到端。这样我们就可以将新的信息中间商去中介化。