Hacker News 中文摘要

RSS订阅

程序员和软件开发者迷失在工具命名的迷途中 -- Programmers and software developers lost the plot on naming their tools

文章摘要

文章批评现代软件开发中工具命名随意化的问题,指出程序员倾向于使用无意义的随机名词、神话生物或虚构角色命名工具,违背了专业命名应具备描述性的原则,导致沟通和理解困难。作者引用Richard Stallman的观点,强调工具名称应帮助用户记住其功能。

文章总结

标题:程序员在工具命名上已迷失方向

文章核心内容:

2022年EmacsConf会议上,Richard Stallman在演讲中指出软件包应该使用"有助于记忆其功能的名字",这一观点揭示了现代软件开发中的命名乱象。当前行业存在将工具随意命名为随机名词、神话生物或虚构角色的不良倾向,这种状况在其他工程领域是难以想象的。

以实际案例为例:当开发者描述"使用Viper进行配置管理,Cobra处理CLI,Melody管理WebSocket连接,Casbin控制权限,Asynq负责任务队列"时,这些名称与实际功能完全脱节。相比之下,传统工程领域(如金门大桥、胡佛水坝)和早期计算机工具(grep、awk、sed)的命名都严格遵循"名实相符"原则。

这种命名乱象带来的认知负担不容忽视: 1. 每个晦涩名称都会消耗开发者额外的理解时间 2. 在架构讨论中,开发者需要额外精力解码名称含义 3. 与材料科学等领域的专业术语相比,软件命名严重缺乏信息量

针对常见的辩解,文章逐一反驳: - "好记的名字利于营销":基础设施工具不是消费品 - "描述性名称太无聊":专业工具应以清晰性为先 - "只是为了好玩":这种乐趣会转嫁认知成本给他人 - "好名字都被占了":可以使用命名空间、前缀等解决方案

改进建议: 1. 优先使用功能描述性名称 2. 必要时采用复合词 3. 可将趣味元素作为项目吉祥物(如PostgreSQL的大象) 4. 命名前自问:"土木工程师会这样命名桥梁支撑系统吗?"

文章强调:清晰的命名不是无聊,而是对使用者时间和认知资源的尊重。虽然这不是行业最紧迫的问题,但值得引起重视。

(注:删减了部分历史细节和与核心论点关联性较弱的内容,保留了关键案例和论证逻辑)

评论总结

以下是评论内容的总结:

支持描述性命名

  1. 功能变化论:工具功能会变化,描述性名称会过时或误导(marifjeren:"Your 'silicon-valley-bank-integrator' tool will eventually need to be updated")
  2. 竞争与辨识度:通用名称在开源生态中易冲突,需加入作者前缀(formula1:"include the author name for each package")
  3. 科学领域先例:其他领域(如化学、生物学)也广泛使用非描述性名称(colechristensen:"Curium, Einsteinium... named after people or places")

反对描述性命名

  1. 营销与记忆性:独特名称更易传播(notpachet:"names should be exotic, flamboyant")
  2. 历史惯例:早期编程语言(如FORTRAN)缩写同样不直观(NotGMan:"I never know... BASIC stands for...")
  3. 企业实践:内部项目常因功能扩展改用随机代号(fusslo:"rename it to some random name - state names, lake names")

中立观点

  • 名称本质:名称仅是标识符,功能需额外说明(TehCorwiz:"Names are only useful for distinct identification")
  • 领域差异:终端产品需品牌化,底层工具需清晰性(alienbaby:"Name your things in a way related to what they do")

争议焦点

  • 行业对比:作者认为软件命名特立独行,但评论指出其他领域(如微处理器、药品)同样如此(jameshart:"Have you specced a microprocessor lately?")
  • 实用性矛盾:描述性名称易过时,随机名称难理解(collinmcnulty:"descriptive name soon didn't tell you anything useful")

典型引用

  • 支持随机命名
    "Using gibberish or mythological names gives a nice memorable name"(marifjeren)
    "IUPAC names are just a convenient way to serialize data"(colechristensen)

  • 反对随机命名
    "What does chef do? Garden? Pig? Burp? Nonsense."(alienbaby)
    "Names like Hunchentoot... cause people to dismiss good software"(andrewl)

总结:评论呈现两极化,支持者强调功能明确性和专业规范,反对者主张营销价值与行业传统,而中立观点认为名称本质是符号,需结合上下文理解。