巨大的软件停滞

2021-01-02 08:25:51

软件正在吞噬世界。但是软件技术本身的进步在1996年左右基本上停滞了。这是我们按照时间顺序排列的结果:

LISP,Algol,Basic,APL,Unix,C,Oracle,Smalltalk,Windows,C ++,LabView,HyperCard,Mathematica,Haskell,WWW,Python,Mosaic,Java,JavaScript,Ruby,Flash,Postgress。

IntelliJ,Eclipse,ASP,Spring,Rails,Scala,AWS,Clojure,Heroku,V8,Go,React,Docker,Kubernetes,Wasm。

所有这些后面的技术都是对之前基础技术的有益的增量改进。例如,Rails通过以良好的结构化方式将一堆现有技术粘合在一起,从而极大地提高了Web应用程序的生产率。但是它根本没有发明任何新东西。同样,V8通过加速JavaScript,扩展Smalltalk和Java中发明的技术,使新应用成为可能。自1996年以来,几乎所有东西都被巧妙地重新包装和重新设计了先前的发明。我们要做的就是重新混合旧专辑。 (除了机器学习,它可能是真正进步的唯一示例,但可以说是完全不同的一种软件。我在这里谈论的是人工编程。)

好像我们碰壁了:1996年突然停止了进展。1996年到底发生了什么?我认为发生的是互联网繁荣。突然,程序员有史以来第一次可以迅速致富。聪明有抱负的人涌入了硅谷。但是您不能在初创公司做研究(尝试时会伤到我)。新技术需要很长时间,并且风险很大。合理的商业计划是利用VC资金,将其投入精锐的程序员那里,他们可以扭转当前糟糕的技术,然后兑现。创业公司没有技术发明的空间。

如今,只有像Google / Facebook / Amazon / Microsoft这样的大型公司才有金钱和时间来创造新技术。但是他们似乎只对以最小的破坏性方式解决自己的问题感兴趣。

不要向计算机科学寻求帮助。首先,我们的大多数软件技术都是建立在学术计算机科学之外的公司(或公司实验室)中的。其次,计算机科学极大地抑制了有风险的长期研究。那不是您获得任期的方式。

计算机科学的风险规避和过度专业化是整个科学乃至整个西方文明的令人担忧的趋势中的一部分,这是最近讨论的主题(请参阅《大萧条》,《进展研究》,《构建的时机》)。 具有讽刺意味的是,许多非常成功的软件企业家都参与了这一运动,并为他们的互联网商业化所取得的进步感到骄傲,但他们似乎没有意识到软件本身的停滞和衰败。 但也许我正在想象事物。 也许在1996年停止进展的原因是我们发明了一切。 也许不可能再有根本性的突破了,剩下的就是修补边缘。 这就是它的优点:50年前的OS,30年前的文本编辑器和25年前的语言。 废话。 没有技术是永久的。 我们刚刚 失去了 改善 的意愿。