编程与软件工程hillelwayne.com
那些大多已消亡、却极具影响力的编程语言
Most(ly dead) Influential Programming Languages
2020 — 2025,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
Hillel Wayne 的这篇博文盘点了一批「基本已经消亡、却深刻影响了后世」的编程语言——它们今天几乎无人使用,但其设计思想渗入了我们日常使用的语言和工具。文章按语言逐一梳理其历史贡献与被继承的遗产。
为什么经久不衰:它把「流行度」和「影响力」拆开来看,提醒读者今天写下的每行代码里都藏着已死语言的幽灵,是理解语言设计谱系的经典参考。
HN 评论精选
补充 Self:原型式编程影响了 JavaScript,却在课程与商业推广中被忽视。
文章漏掉了另一个极具影响力的语言 Self。我修过两门研究生级别的编程语言理论课,却直到几年前迷上 Smalltalk 和 Lisp、开始读这些语言及其环境的历史时才听说它。Self 最重要的贡献之一是原型式编程(prototype-based programming)的思想,JavaScript 传统上没有类正是受它影响(虽然新版 JS 已支持类)。我不确定 Self 是否被商业化过;我只知道 Java 发布后,Sun 把大量精力放在推广 Java 上,冷落了它投资的其他面向对象环境(比如由 NeXT 和 Sun 共同开发的 OpenStep Objective-C API)。Self 大概是最有影响力的编程语言之一,遗憾的是我上过的计算机科学课程里从没提到过它。
linguae查看英文原文
Another highly influential programming language not listed in the article is Self (http://www.selflanguage.org). Although I've taken two graduate-level courses in programming language theory, I didn't learn about Self until just a few years ago when I was bitten by the Smalltalk and Lisp bugs and started reading about the history of these languages and their environments. One of Self's most significant contributions is the idea of prototype-based programming, which is the influence behind JavaScript's traditional lack of classes (though newer versions of JavaScript have support for classes). I don't know if Self was ever commercialized; I do know that once Java was released Sun focused much of its attention on promoting Java at the exclusion of other object-oriented environments that Sun invested in (such as the OpenStep Objective-C API, which was actually jointly developed by NeXT and Sun). But Self is probably one of the most influential programming languages; it's just a shame that this language was never brought up in any of the computer science courses I've taken.
为 Algol 68 辩护:C 的类型系统、bash 的 fi/esac 以及 Pascal 的诞生都与之相关。
文章对 Algol 68 未免太苛刻了,它其实相当有影响力:影响了 C 的类型系统——引用 Dennis Ritchie 的原话:C 采用的类型组合方案很大程度上要归功于 Algol 68,尽管呈现形式未必是 Algol 拥护者认可的;我从 Algol 那里抓住的核心概念是基于原子类型(包括结构体)的类型结构,再组合成数组、指针(引用)和函数;Algol 68 的联合体与强制转换概念也影响了后来出现的特性。它还影响了 bash 的语法(fi、esac)。另外,对 Algol 68 设计的反对促使 Niklaus Wirth 重启他早先关于新版 Algol 的提案 Algol W,并最终演化成 Pascal——不确定这算不算影响。
amyjess查看英文原文
I'm surprised by how hard this article is on Algol 68. It was pretty influential: - Influenced C's type system. I'm just going to quote Dennis Ritchie on this: "The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. The central notion I captured from Algol was a type structure based on atomic types (including structures), composed into arrays, pointers (references), and functions (procedures). Algol 68's concept of unions and casts also had an influence that appeared later." - Influenced bash's syntax (fi, esac) - I'm not sure if this counts as an influence or not, but objections to Algol 68's design lead Niklaus Wirth to revive his earlier proposal for a new version of Algol, called Algol W, and ultimately evolve it into Pascal.
Perl 很可能成为下一篇「已死但有影响力」榜单的主角。
估计再过五到十年,这类文章里就会出现 Perl 了。它不是我学的第一门语言,但我对它怀有感情。当年,它是(唯一)能较为省力地访问 socket、调用 getpwnam() 之类 libc 函数的办法。我知道 TIOBE 指数有缺陷,但……看着真难受。
tyingq查看英文原文
Expecting to see Perl in an article like this in 5 to 10 years. Wasn't the first language I learned, but there's a fond place in my heart for it. At the time, it was the (only) less painful way to get at sockets, libc calls like getpwnam(), etc. I know the TIOBE index is flawed, but...ouch: https://www.tiobe.com/tiobe-index/perl/
Forth 被遗漏:极简栈式语言与 RPN 记法的思想价值仍在。
很遗憾 Forth 没进榜单。它展示了如何只用栈、在极小空间里做出一个极简编程语言,也大大普及了逆波兰(RPN)记法。即使你不写 Forth,了解这些思想也有好处——比如如果我不懂 Forth 的思想,就写不出我在 StackOverflow 上的那个回答。
btilly查看英文原文
I am sad that Forth did not make the list. It showed how to make a minimal programming language that runs in a very small amount of space with just a stack. And did a lot to popularize RPN notation. Even if you do not write in Forth, you can still benefit from knowing the ideas. For example I could not have written my answer at https://stackoverflow.com/a/60817908/585411 if I did not know the ideas of Forth.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选