HackerURLs

一次又一次被重新发现的经典。

同一个链接,相隔一年以上,一次又一次被人重新发现、再次冲上 Hacker News 首页。能经受住这种时间检验的,大多是值得一读再读的文章。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从名人堂开始
  • 4,700+篇经过时间检验的经典

Hall of fame

名人堂

在经典库里看全部精选

上首页次数最多、而且有中文导读的 30 篇。时间轴上每个黑点是一次上首页,空心点是一次没冲上去的投稿。

  1. 正在载入经典…

Archive

经典库

按第一次上首页的年份分布,点柱子筛选。

排序

    About

    这些经典是怎么挑出来的

    1. 01

      合并同一个链接

      读取 Hacker News 自 2006 年以来的全部链接投稿,把 http/https、www、跟踪参数等写法不同的同一篇文章合并成一条。

    2. 02

      只留经得起时间的

      同一链接至少两次拿到 50 分以上(约等于上首页),而且两次相隔一年以上;再由 AI 剔除状态页、产品首页和新闻事件。

    3. 03

      写导读、译评论

      上首页次数最多的 2,000 篇配上中文导读、"为什么经久不衰",并精选翻译 HN 高赞评论。导读由 AI 生成,可能有误。

    工具与资源cis.upenn.edu编辑精选

    编程语言领域的伟大著作书单

    Great Works in Programming Languages

    3次上首页
    2年跨度
    463累计得分
    92条评论

    2013 — 2015,它一次次回到首页

    黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。

    导读

    这是宾夕法尼亚大学 Benjamin Pierce 课程网站上一份「编程语言伟大著作」书单,按重要程度分档收录该领域的经典论文,供学生按图索骥地阅读。评论区指出,榜上最新的论文发表于 2000 年,而最核心一档里最新的作品是 1978 年的,由此引发了关于「经典如何被时间筛选」的讨论。

    为什么经久不衰:它是一份被时间反复验证的 PL 经典阅读地图,提醒人们这门学科的核心思想大多来自几十年前,今天读来仍能看清各种语言设计的来龙去脉。

    关键词 编程语言经典论文阅读书单计算机史

    HN 评论精选

    质疑榜单为何止步于 2000/1978 年,猜测重大成果需要时间沉淀才能被公认。

    这里提到的最新论文是 2000 年的,而「最伟大中的最伟大」那一档里最新的作品是 1978 年的。这究竟是因为我们需要很长时间才能判定什么算重大进步,还是有别的原因?

    state查看英文原文

    The most recent paper mentioned here is from 2000. The most recent 'greatest of the great' is from 1978. Is it simply that it takes a long time for us to decide what constitutes a significant advancement, or is something else going on?

    指出榜单严重偏老,追问这是时间沉淀所致,还是早期已摘完低垂果实、现代语言只是工程打磨。

    第一档里最新的论文写于 1978 年。前两档的大部分论文在我出生之前就写好了,只有三篇写于 1990 年代。唯一一篇 21 世纪的(2000 年发表)位于分量最轻的第三档。好想法需要时间积累认可才能上榜?还是计算机时代早期就把低垂的果实摘完了,只剩下进展缓慢的难题?Python、Lisp、Haskell、Ruby 这些现代语言的创新难道没带来新思想?甚至 C++、Java、JavaScript?还是说语言实现几乎无一例外只是理论奠基之后长达数十年的工程打磨?

    csense查看英文原文

    The most recent paper in the first section was written in 1978. The majority of the ones in the first two sections were written before I was born; only three were written in the 1990's. The only one from the 21st century (published in 2000) is in the least-prestigious third section. Does it take time for good ideas to accumulate the recognition needed to be included in this list? Or was all the low-hanging fruit quickly picked in the early days of the computer age, and only hard problems remain on which little progress has been made? Haven't any new ideas been introduced by the innovations of modern languages like Python, Lisp, Haskell and Ruby? Or even C++, Java and JavaScript? Or is language implementation, almost without exception, a series of engineering refinements that happen in a decades-long process after theoretical foundations are first published?

    惋惜榜单缺少 SPJ,认为他的成果可能因「太新」而未入选。

    有点惊讶榜单上没有 Simon Peyton-Jones(Haskell 之父之一)的论文。我猜榜上大多是老经典,作者很多已去世或退休。SPJ 是过去 20 年最重要的编程语言研究者之一,也许他的作品对这份榜单来说「太新」了。读他的书和论文点燃了我对编程语言的兴趣。

    exDM69查看英文原文

    I'm a bit surprised not to see any papers by Simon Peyton-Jones (of Haskell fame) on the list. I guess most of the papers on this list were old classics and many of the authors have already passed away or retired. SPJ is one of the most relevant programming language researchers of the past 20 years, but maybe his work is "too new" for this list. Reading his books and papers taught sparked the interest in programming languages in me.

    推荐 Backus 的图灵奖演讲作为榜单之外的又一经典,并调侃其批评的问题如今多已解决。

    John Backus 的《Can Programming Be Liberated from the von Neumann Style?》也是一篇非常值得研究的伟大作品:『传统编程语言变得越来越庞大,却没有变得更强……它们逐字处理的风格继承自冯·诺依曼计算机,语义与状态转换紧密耦合,把编程分成表达式世界和语句世界,无法有效用组合形式从已有程序构建新程序,也缺乏可用于推理程序的数学性质。』幸好 30 多年后这些问题大多已被广泛解决 ;)

    mixedbit查看英文原文

    'Can Programming Be Liberated from the von. Neumann Style?' by John Backus is another great work very worth studying: 'Conventional programming languages are growing ever more enormous, but not stronger. Inherent defects at the most basic level cause them to be both fat and weak: their primitive word-at-a-time style of programming inherited from their common ancestor—the von Neumann computer, their close coupling of semantics to state transitions, their division of programming into a world of expressions and a world of statements, their inability to effectively use powerful combining forms for building new programs from existing ones, and their lack of useful mathematical properties for reasoning about programs.' Thankfully, 30+ years later these problems are widely fixed ;) http://www.thocp.net/biographies/papers/backus_turingaward_lecture.pdf

    历次讨论

    同类还值得读

    1. 直接在浏览器中启动 Linux 内核

      Boot a linux kernel right inside your browser.

      Fabrice Bellard 的 JSLinux 页面,用 JavaScript 在浏览器里启动一个 Linux 内核,并提供一个可交互的终端环境。

      工具与资源上首页 5 次 · 2011–2025bellard.org
    2. Hacker News 未公开功能与行为清单(2018)

      A List of Hacker News's Undocumented Features and Behaviors (2018)

      数据科学家 Max Woolf 整理的 Hacker News 未公开功能与行为清单,涵盖投票机制、排名算法、账号惩罚等社区运作细节。

      工具与资源上首页 5 次 · 2019–2025github.com
    3. MapSCII:在终端中用盲文和 ASCII 渲染地图

      MapSCII – Braille and ASCII map renderer for the console

      MapSCII 是一个在命令行终端里渲染地图的开源工具,用盲文字符和 ASCII 字符把地理数据画成可交互浏览的字符地图。

      工具与资源上首页 5 次 · 2017–2025github.com
    4. 顶尖大学的免费在线课程

      Free Online Courses from Top Universities

      Open Culture 整理的一份免费在线课程合集,汇集了全球顶尖大学(如 MIT、斯坦福、耶鲁等)向公众开放的网络课程资源,涵盖音频、视频等多种形式。

      工具与资源上首页 5 次 · 2010–2022openculture.com
    5. 淘气字符串:容易引发用户输入问题的字符串清单

      Naughty Strings: A list of strings likely to cause issues as user-input data

      一个 GitHub 仓库,收录了大量容易让程序出问题的用户输入字符串,如特殊字符、emoji、SQL 注入片段、系统命令等,供开发者用于测试输入处理逻辑。

      工具与资源上首页 4 次 · 2015–2020github.com

    打赏支持

    打赏二维码

    觉得有用,请作者喝杯咖啡。

    WeChat

    关注向阳乔木

    微信公众号「向阳乔木推荐看」

    微信公众号「向阳乔木推荐看」二维码

    微信扫一扫;在微信里打开本页时,长按二维码识别。