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 生成,可能有误。

    编程与软件工程stopa.io

    直观理解 Lisp 语法

    An Intuition for Lisp Syntax

    2次上首页
    2年跨度
    726累计得分
    305条评论

    2020 — 2022,它一次次回到首页

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

    导读

    这篇文章用 JSON 与 JavaScript 的类比,帮助读者建立对 Lisp 括号语法(S 表达式)的直觉,并引出“代码即数据”和宏的核心思想。它面向不熟悉 Lisp 的开发者,展示了为什么把源码表示成可操作的数据结构会带来强大的语言能力。

    为什么经久不衰:它用最平易近人的方式讲清了 Lisp 最反直觉的部分,多年间反复登上首页,至今仍是入门 Lisp 语法与宏思想的最佳导读之一。

    关键词 LispS表达式代码即数据宏

    HN 评论精选

    对 JS 开发者来说这是极佳的 Lisp 入门,并分享了用 JS 语法生成 S 表达式的方案

    这也许是我见过最好的 Lisp 入门介绍,对像我这样的 JS 开发者来说再友好、再有说服力不过了。不过读完我在想,S 表达式对我的大脑来说还是有点难读,要是能从更易读的语法(比如 JavaScript)生成它们就好了。我找到了一个把 JS AST 编码成 S 表达式的工具 eslisp,这样不用手写 S 表达式,绕了一圈回到 JS,但拥有了宏、不依赖 eval、还有代码即数据的表示。

    jFriedensreich查看英文原文

    This is maybe the best introductions to Lisp i have seen, especially for a js dev like me it could hardly get more approachable and convincing. I could not help but thinking at the end, this is really awesome but s-expressions are kind of hard to read and reason about for my brain, it would be cool if we could generate them from more readable syntax, maybe something like javascript :D . Unfortunately the standard js AST seems to be not a great fit but i found a S-Expression encoder for js AST https://github.com/anko/eslisp This way instead of having to write s-expressions manually we took a whole circle and are back at js but with macros, not relying on eval and having a code is data representation...

    Lisp 真正的杀手锏不只是语法,还有镜像式开发和交互式 REPL 带来的极短反馈循环

    介绍 Lisp 时只谈语法是不够的。另一个鲜为人知的特性(以 Common Lisp 为例)是基于镜像的开发方式,带来极好的 REPL:真正交互式、极短的反馈循环,一次编译一个函数,永远不用等进程重启,即使做 Web、GUI 或游戏项目也一样。测试对象可以一直保留,随时能获得编译和类型警告,交互式调试器会指出出错行,修好后从上一个栈帧重试即可。

    vindarel查看英文原文

    It's not enough to only talk about syntax when we introduce Lisp. The other less known Lisp feature (in the sense of Common Lisp), is the image-based development, which makes for a great REPL. Really interactive, tiny feedback loops, where you compile your program one function at a time. You never wait for a process to restart, even working on a web, GUI or game project. You keep your test objects around. You restart to a clean state when you want. You get compilation and type warnings immediately. You have an interactive debugger that points you to the erroneous line, you fix it, you tell the debugger to try again from the previous stackframe, and you see the function complete. Explore! https://github.com/CodyReichert/awesome-cl

    用一句话口诀概括 Lisp 语法与常规函数调用的转换

    我对 Lisp 语法的直觉是:“把左括号向左移一位,去掉逗号,保留空白。”于是 f(x, y, z) 就变成了 (f x y z)。

    praptak查看英文原文

    My intuition for Lisp syntax is "The opening parenthesis moves one position to the left. Drop commas, keep whitespace.". So: f (x, y, z) becomes (f x y z)

    质疑宏与同像性在日常开发中的实际价值,希望看到更有说服力的真实案例

    玩过一阵 Clojure 和 Scheme,我一直觉得同像性和宏是很酷的概念,但日常工作里从没真正用上。文中远程代码的例子很吸引人,但似乎有点小众。有没有真实生活中(与编译器无关)的 Lisp 程序能展示同像性的威力?也许是我想象力不够,但“在语言中做客”这个问题我从没遇到过——不过也许它一直以伪装的形式存在。

    reifyx查看英文原文

    Having played around with Clojure and Scheme for a while (but never got too serious), I always thought homoiconicity and macros were extremely cool concepts, but I never actually ran into a need for them in my everyday work. >Now, if we agree that the ability to manipulate source code is important to us, what kind of languages are most conducive for supporting it? This is useful for compiler programmers, or maybe also those writing source code analyzers/optimizers, but is that it? On occasion I have had to write DSLs for the user input, but in these cases the (non-programmer) users didn't want to write Lisp so I used something like Haskell's parsec to parse the data. The remote code example given in the post is compelling, but again seems a bit niche. I don't doubt that it's sometimes useful but is it reason enough to choose the language? Are there examples of real-life (non-compilers-related) Lisp programs that show the power of homoiconicity? Same goes with the concept of "being a guest" in the programming language. I have never wanted to change "constant" to "c". Probably I'm not imaginative enough, but this has never really been an issue for me. Perhaps it secretly has though, and some of my problems have been "being a guest" in disguise.

    历次讨论

    同类还值得读

    1. 开源应用架构

      The Architecture of Open Source Applications

      《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。

      编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选
    2. 编程语言简史:简短、不完整且多半错误

      A Brief, Incomplete, and Mostly Wrong History of Programming Languages

      一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。

      编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.com
    3. SQLite 是如何测试的

      How SQLite is tested

      SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…

      编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选
    4. 高级编程语言(2009)

      Advanced programming languages (2009)

      Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…

      编程与软件工程上首页 8 次 · 2009–2022matt.might.net
    5. 我的 Forth 与栈机器经历

      Yosefk - My history with Forth & stack machines

      作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。

      编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选

    打赏支持

    打赏二维码

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

    WeChat

    关注向阳乔木

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

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

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