这个问题来自于对过去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.)

其他回答

有一件事让我吃惊,那就是简陋的电子表格。非程序员的人用一个简单的公式网格就可以为现实世界的问题构建狂野而奇妙的解决方案。在桌面应用程序中复制他们的努力通常需要比编写电子表格多10到100倍的时间,最终的应用程序通常更难使用,充满bug !

我相信电子表格成功的关键是自动依赖分析。如果电子表格的用户被迫使用观察者模式,他们就没有机会得到正确的结果。

因此,最大的进步是自动依赖分析。现在,为什么没有任何现代平台(Java, .Net, Web Services)将其构建到系统的核心中呢?特别是在一个通过并行化扩展的时代——依赖关系图导致并行重新计算变得微不足道。

编辑:我刚查过。VisiCalc发布于1979年——让我们假设它是1980年后的发明。

Edit2:似乎艾伦已经注意到了电子表格——如果让他来这个论坛的问题是正确的!

我认为我们需要真正的新想法 在计算机的大部分领域,我 想知道有什么重要的吗 以及已经完成的强有力的任务 最近。如果我们真的找不到 他们,那么我们应该问“为什么? “我们该怎么办?”

在我看来,我们在计算领域没有那么多新想法,因为我们在很大程度上不需要它们。我们一直在挖掘旧的想法,并从中获得了很多东西,比如cpu速度的显著增长。

当我们因为“井干了”而需要新想法时,我们就会明白需求是发明之母。

基础设施的改变使家庭和办公室都能接入互联网。

记录并接受了从W3C到api的标准

除此之外,我们所认为的大多数新事物都比你想象的要久远得多(例如GUI, OOP)。

受保护的内存。在保护内存之前,如果你的程序犯了错误,你可以在任何地方开始执行代码——实际上总是挂起整个机器。没错,重启时间到了!

硬件成本低。我的第一台电脑在1978年花了500美元——这在当时是一笔巨款。降低成本让每个人的办公桌上都有了电脑。

JIT编译是在20世纪80年代末发明的。