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

    编程与软件工程blog.sanctum.geek.nz编辑精选

    把 Unix 当作 IDE

    Using unix as your IDE

    3次上首页
    11年跨度
    548累计得分
    300条评论

    2012 — 2023,它一次次回到首页

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

    导读

    这是一篇系列教程,介绍如何把 Unix 命令行工具(vim、make、grep、shell 等)组合起来当作完整的开发环境使用,替代传统的一体化 IDE。文章在 2012 年和 2023 年两度登上 Hacker News 首页,引发了关于命令行与 IDE 各自优劣的长期讨论。

    为什么经久不衰:它把 Unix '每个工具只做一件事并做好'的哲学落到开发工作流上,十多年后仍是学习命令行开发环境最好的入门参考之一。

    关键词 Unix命令行IDE开发环境

    HN 评论精选

    命令行工具可组合、可扩展,能完成 IDE 没有预设的任意任务

    我不想贬低 IDE 厂商,JetBrains 的产品确实很棒。但对我们这类 Linux 职业开发者来说,一切都是文本,用 Unix 文本工具能获得最大杠杆。用 grep -lR 配合 xargs sed 一次重构 50 个文件实在太爽了;想看进程加载了哪些库?cat /proc/$pid/maps;想知道进程往哪里写日志?ls -hal /proc/$pid/fd/。GUI IDE 只能做它被设计好的事,而命令行是有史以来最可扩展、最可组合的环境之一,40 年的成功就是证明。

    shanemhansen查看英文原文

    I don't want to dis IDE makers. There are folks such as jetbrains that make an amazing product. But at the end of the day, for us linux-type professional developers, it's all text. You have maximum leverage with unix text editing tools. Refactoring 50 files at once by doing something like: grep -lR 'old_method' | xargs sed -ie 's/old_method/some+other()+expression/g' is just plain awesome. Want to find out what libraries a process is using? cat /proc/$pid/maps Want to find out where that process is logging to? ls -hal /proc/$pid/fd/ Basically it's often hard to use a gui ide to accomplish an arbitrary task if the IDE wasn't built for it, or if no one has taken time time write plugins. At the risk of gushing, the command line is just one of the most extensible, composable environments ever invented, and it's success over the past 40 years proves it.

    惋惜新一代开发者只会 GUI IDE,不了解 Unix 开发传统

    一方面,我很高兴有人用当下流行的博客教程风格来传播这套东西,看到自己偏爱的环境被布道是件好事。另一方面又让人扶额:过去 40 年里最简单、文档最完善、最强大的开发传统竟然还需要这种科普。整整一代开发者从学校毕业时以为'构建'就是在 IDE 界面里按个按钮,'写程序'就是启动一个向导往新目录里吐出一堆文件,这实在令人沮丧。

    ajross查看英文原文

    On the one hand, I'm pleased that someone is posting this in the new-fangled bloggy tutorial style popular among the youth of today. It's nice to see my preferred environment evangelized. On the other, it's a giant facepalm that the simplest, best documented, most powerful development tradition of the last 40 years actually needs this treatment. That there is a whole generation of developers who come out of school thinking that "building" is the action of pressing a button in an IDE GUI (and that "writing a program" means launching a big wizard that pukes a dozen files into a new directory) is just depressing. Oh, and get off my lawn.

    文本搜索不等于语义级的代码导航和重构,Unix 工具算不上真正的 IDE

    用 grep 搜 'foobar' 和找到名为 foobar 的函数的调用点是完全不同的两回事;emacs 能做的跨文件查找替换也不等于重构。我爱 emacs 和 Unix,但抱歉,它不是 IDE。IntelliJ 那才叫 IDE。

    geophile查看英文原文

    grepping for "foobar" is very different from finding invocations of the function named "foobar". Cross-file search and replace, which is doable from emacs, is different from refactoring. I love emacs and unix, but sorry, it's not an IDE. Intellij, now that's an IDE.

    纠正措辞:Unix 不是'集成'开发环境,而是(分布式的)开发环境

    我同意他的观点——这话我在 HN 上说过好几次——但不同意他的措辞。Unix 不是一个'集成'开发环境,IDE 意味着一个单体程序,Unix 不是。我更愿意说:Unix 就是一个开发环境——你用于开发的工具并不存在于一个单体程序之中。

    scott_s查看英文原文

    I agree with his sentiment - it's something I have said here on HN several times - but I disagree with his word choice. Unix is not an integrated development environment. To me, an IDE implies a monolithic program. Unix is not that. To differentiate it, I'm tempted to say that Unix is a distributed development environment to get across that the tools you use for development do not exist in one monolithic program. But I don't like that phrasing, either. Rather, I prefer this: Unix is a development environment.

    历次讨论

    同类还值得读

    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

    关注向阳乔木

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

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

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