编程语言是平台的创作工具
Programming Languages Are Authoring Tools for Platforms

选择编程语言时,我们常被学术谱系或社区趋势误导,却忽略了本质:语言是构建平台生态的创作工具。空白的平台只是硬件,唯有当应用和内容积累其上,才成为用户停留的世界。从IBM到Microsoft的更迭证明,控制开发者接口的才是平台真正的主人。语言的价值不在于图灵完备性,而在于如何降低开发成本,将认知负担分配给编译器和运行时。它定义了我们的思维习惯,划定了可表达的边界。理解这一点,才能看清语言兴衰背后的市场逻辑。
一个空白的平台还不是产品,只有当游戏、生产力应用和内容在其上积累时,它才成为用户停留的世界,而语言正是构建这个世界的工具。
HN 评论区
12- WillAdams
让我想起大学里的一门“编程语言比较”课。不错的概览!
正如 sublinear 在另一条回复中提到的,我有点惊讶 JavaScript 没有获得更多讨论(虽然我对这篇 189 页的 PDF 很感兴趣:https://www.wirfs-brock.com/allen/jshopl.pdf),同时也惊讶于没有提到领域特定语言(DSL)以及像 Processing 这样的专用工具/环境,因为它们似乎正是这一前提的明显终点。
- cjfd
是的,这话听起来有道理。但这好吗?我的意思是,如果我接受这个观点,我会觉得自己更像是一只养在“平台”这座房子里的宠物,而不是一个创造事物的人类。此外,这也可能效率低下,因为同一个程序或算法最终不得不在每种语言中重新实现。文章也提到了编程语言之间确实存在痛点,比如编写语言绑定(language bindings)时。我想把这一点再推进一步:我们拥有的工具太多了,必须掌握所有工具简直痛苦不堪。如今有了 AI,情况稍微好了一点,因为它能帮大忙去应对不熟悉的工具,但话说回来,如果当初没制造出这个问题,本就不需要解决它。多种编程语言往往会成倍增加所需的工具数量。几十年来我一直觉得 C++ 是一门好语言,因为它既能处理底层也能处理高层,因此可以消除对多种编程语言的需求。世界似乎走向了另一条道路,显然,在我看来,这让人们变得比以前更不自由、更无力。
- sublinear
我很失望这里没有更多篇幅讨论 JavaScript,更广泛地说,是讨论 Web 浏览器。浏览器是当今时代的平台,而 JavaScript 是“编程语言即创作工具”这一概念最有力的例证。
Web 应用承载着电子商务、娱乐、社交媒体等的重任。这些应用经常成为政治辩论和流行文化的中心,这一事实凸显了它们取得的广泛成功,远超仅开发者能理解的讨论范畴。
连同 HTML 和 CSS 一起,为企业 Web 编写的代码并非仅由开发者决定。在发布任何东西之前,它都必须经过非技术利益相关者远比使用其他语言的开发者所能想象的更严格的审查。是的,质量参差不齐,但当质量糟糕时,它会在非常公开的方式下暴露出组织的运作失调。跨学科的人类参与如此之多,以至于开发者的角色更像官僚而非程序员。