HackerPapers

HN 二十年,最值得读的论文。

从 Hacker News 2006 年以来的全部投稿里,挑出链接本身就是论文的帖子:arXiv、期刊、会议论文、技术报告。每篇附中文标题,讨论最热的那些再加上中文导读和高赞评论翻译。

从必读开始
  • 8,000+篇被 HN 讨论过的论文

Essential

必读 30 篇

在论文库里看全部精选

编辑精选里 HN 讨论最热的 30 篇,每篇都有中文导读。不知道从哪读起,就从这里开始。

  1. 正在载入论文…

Archive

论文库

点柱子按年份筛选。注:源数据里 2023 年的帖子分数记录不全,2026 年尚未过完,这两年收录偏少。

难度
排序

    About

    这些论文是怎么挑出来的

    1. 01

      全量扫一遍

      读取 Hacker News 自 2006 年以来的全部 446 万条链接投稿,找出指向 arXiv、期刊、会议、技术报告和学术 PDF 的帖子。

    2. 02

      只留论文本身

      由 AI 逐条判断,剔除介绍论文的新闻、博客和幻灯片,同一篇论文的多次投稿合并计算,并统计它在评论区被引用的次数。

    3. 03

      写导读、译评论

      讨论最热的 1,500 篇配上中文导读,并精选、翻译 HN 高赞评论。导读由 AI 生成,可能有误,请以原文为准。

    编程语言与软件工程2017github.com

    Go 与 Swift 对比

    Go vs. Swift

    入门 · 约 15 分钟读完前置知识:Go 基础、Swift 基础、编程语言基本概念

    读论文 HN 讨论
    166HN 得分
    126条评论

    导读

    这份 PDF 对比了 Go 和 Swift 两种现代编程语言,比较维度包括语法、GitHub 关注度、Hello World 代码行数等表层指标,属于入门级语言比较文章。评论者普遍认为这种对比过浅,真正该讨论的是性能、平台支持、可维护性和语言设计理念。

    HN 关注点:这类语言对比文章用 GitHub star 数、Hello World 行数等表层指标衡量语言,是否有意义,以及 Go 的组合式接口与 Swift 的可选类型各有什么价值。

    关键词 GoSwift编程语言比较语言设计

    HN 评论精选

    这几条评论里:质疑 2 补充 2

    质疑Go 的组合式接口被作者忽略,而语言的简单性才是它最大的价值。

    我看不出 C++/Java 那套经典面向对象模型有什么“优势”,现代编程里组合已被认为优于继承。Go 的接口概念让基于组合的编程比类模型灵活、强大得多,而作者恰恰跳过了 Go 这套独特而原创的接口类型系统——它提供了等价于多继承的能力,却没有 C++ 的复杂度,也正因复杂度多数 OO 语言直接禁止多继承。Go 在这一点上和并发上都很原创,理解和掌握它们远超单纯的语法分析。在我看来 Go 最了不起的特性是简单:我跟一位 D 语言的坚定拥趸朋友打过比方,这就像用 1000 词的日常语言对比 10000 词的语言——后者表达力更强,但学习、阅读和书写的成本高得多。我年过五十,这对我差别巨大。最好的说法是:用 Go 编程又重新变得有趣了。希望 Go 保持这种简单,Java 起初也简单,后来被改得我再也不想碰 Java 代码。

    chmike查看英文原文

    I don't see any "strength" in the classical object oriented programming model as found in C++ or Java. Actually, in modern programming composition is considered superior to inheritance. The interface concept of Go makes programming with composition much more flexible and powerful than with the class model. The author skips this Go specific and original interface typing. This provides a multiple inheritance equivalent without all the complications on C++ and that most OO oriented languages forbid because of that complication. Go is a very original language in this aspect as well as with concurrency. Understanding and mastering these properties goes beyond simple syntax analysis. To me the most remarkable property of Go is its simplicity. As I explained to a friend who is a strong advocate of D, the difference with other programming language is the same as dealing with a spoken language of 1000 words instead of 10,000 words. It's true that the language with 10,000 words is more expressive and richer. But the effort required to learn, read and write a language of 1000 words is much lower than a with a language of 10000 words. I'm beyond 50 years old, and too me this makes a huge difference. The best way to express it is that with Go programming is fun again. I hope that Go will preserve this simplicity. At the beginning Java was simple too. They later killed it to the point I don't want to deal with Java code anymore.

    质疑用 GitHub star 和 Hello World 行数比较语言毫无意义,应关注性能和可维护性。

    我觉得这项研究非常浅薄。比如谁在乎一个 GitHub 项目有多少 star?一门语言的 hello world 有几行又关我什么事?我更想看到关于性能、平台支持、可维护性、治理机制等方面的讨论。顺便说:谁能发明一门新语言,让空文件就等于“打印 hello world”?既然没法比这更短,这个愚蠢的基准测试也就可以彻底终结了。

    pawadu查看英文原文

    I found the study very shallow and superficial. For example, who cares how many people have starred a project on github? And why should I care how many lines "hello world" is in a language [1]? I would rather see a discussion about performance, platform support, maintainability, governance and do on. --- [1] someone please create a new programming language where the empty file means "print hello world". Since you can't do any better than that it would once and for all put an end to this stupid benchmark.

    补充Swift 的 Optional 与编译期强制检查显著提升了代码健壮性。

    Swift 用得越多,我越欣赏 Optional 这个概念以及编译器对它的强制使用。我发现自己的 Swift 代码比 ObjC 或 Android Java 代码更健壮、更明确,我身边团队成员也是如此。

    seanalltogether查看英文原文

    The more I use swift, the more I've grown to appreciate the concept of Optionals and how the compiler enforces it's usage. I have found that my swift code is more robust and explicit than my ObjC or Android java code is, as well as the team members around me.

    补充Swift 胜在语法和 IDE,Go 胜在内建并发,各有所长。

    Swift:更好的面向对象、语法和 IDE;Go:内建并发。Swift 对 iOS 开发非常愉快,与 Objective-C 的兼容很顺畅,操作队列对并发也够用,Xcode 大幅提升生产力。Swift 每个版本打破向后兼容以保持创新、同时提供快速修复工具,这挺好。希望它也能成为优秀的服务端语言。

    yvsong查看英文原文

    Swift: better OO, syntax, IDE; Go: built-in concurrency; Swift is a great joy for iOS development, where compatibility with Objective C makes things smooth, and operation queues are good enough for concurrency. Xcode is a big productivity booster. Good to break Swift's own backward compatibility with new releases to keep innovation, while providing a quick fix tool. Hope it will become a great server language too.

    相关资源

    从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。

    代码

    历次讨论

    同领域还值得读

    1. Google 的软件工程(2017)

      Software Engineering at Google (2017)

      介绍了 Google 的软件工程实践,包括其单一代码库(monorepo)、几乎全部开发在主干进行而非分支、代码审查、构建系统 Blaze、协议缓冲区等工具与流程,并讨论了频繁重…

      编程语言与软件工程2017 · 1,127 分 · 465 评 · 引用 15入门 · 约 45 分钟编辑精选
    2. Peter Naur:编程作为理论构建 (1985)

      Peter Naur – Programming as Theory Building (1985)

      Peter Naur 1985 年的经典论文《Programming as Theory Building》提出:编程的本质不是写代码或文档,而是在程序员头脑中构建对程序及其运行…

      编程语言与软件工程2016 · 629 分 · 74 评入门 · 约 45 分钟编辑精选
    3. SciPy 1.0:Python 科学计算的基础算法

      SciPy 1.0: fundamental algorithms for scientific computing in Python

      这篇发表于 Nature Methods 的论文介绍了 SciPy 1.0——Python 科学计算生态的基石库,涵盖其核心算法模块(优化、积分、插值、线性代数等)、软件架构与社…

      编程语言与软件工程2020 · 387 分 · 98 评入门 · 约 45 分钟编辑精选
    4. Lisp 的历史(1979)

      History of Lisp (1979)

      这是 Lisp 发明者 John McCarthy 于 1979 年为 HOPL(编程语言史)会议撰写的回顾文章,讲述 Lisp 的起源、设计动机与早期演进,文中也涉及 if 表…

      编程语言与软件工程2018 · 352 分 · 44 评入门 · 约 45 分钟编辑精选
    5. 使用 NumPy 进行数组编程

      Array Programming with NumPy

      这篇 Nature 文章介绍 NumPy 的数组编程模型及其在科学计算中的核心作用:以 ndarray 为中心,通过向量化操作让 Python 高效处理多维数组。

      编程语言与软件工程2020 · 318 分 · 134 评入门 · 约 40 分钟编辑精选

    打赏支持

    打赏二维码

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

    WeChat

    关注向阳乔木

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

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

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