Hacker News 中文摘要

RSS订阅

可塑计算、Emacs与你 -- Malleable Computing, Emacs, and You

文章摘要

文章讲述了作者在Emacs中手动将GitHub issues复制到Org文件进行管理的繁琐过程,进而萌生自动化需求,并以此为例展示了Emacs的可塑计算能力。

文章总结

好的,这是根据您的要求,对原文进行的中文重述:

标题:可塑计算、Emacs 与你

核心内容:

本文作者分享了他如何利用 Emacs 的“可塑计算”能力,自动化一个日常任务:将 GitHub Issues 同步到 Org Agenda 中。作者原本需要手动复制粘贴,在 Emacs 中重复多次后,他决定自动化这一过程。

需求与方案: 作者的核心需求是:在 Emacs 中轻松复制 GitHub Issue(标题、描述、元数据)为 Org 任务,并能创建新 Issue,同时避免处理 GitHub 认证和编写完整的 GitHub 客户端。他的解决方案是:利用现有的 GitHub 命令行工具 gh,让 Emacs 通过调用 gh 来与 GitHub 交互,从而将认证工作委托给 gh

实现方式: 作者开发了一个名为 fj 的 Emacs 包。其核心函数 fj-request-issues 通过构建命令列表调用 gh,解析返回的 JSON 数据,并在 Emacs 中显示。整个过程仅用了不到20行代码。该包还使用了 Transientvtable 包来构建用户界面,并利用 ox-gfmPandoc 进行 Org 与 Markdown 格式的转换。

可塑计算的优势: 作者强调,Emacs 的可塑性体现在其动态语言 Elisp 的特性上。开发者可以在不重启 Emacs 的情况下,实时编写、评估和修改代码,这大大缩短了开发周期。通过组合现有的 Elisp 包和外部程序,可以用很少的代码(fj.el 约400行)实现所需功能。作者仅用约2.5小时就完成了基本功能,一天内满足了所有需求。

关于软件工程的思考: 作者将这种“为一人构建”的模式与“为大众构建”的传统软件模式进行了对比。他指出,为大众开发的软件(如 Microsoft Office)需要承担巨大的功能集和开发范围,而可塑软件则允许用户利用现有“积木”快速组合出满足自身需求的工具。为一人构建可以忽略错误处理、文档、测试等许多为多人构建时必须考虑的问题,从而极大地提高效率。这种“够用就好”的能力是可塑技术的优势,它赋予用户自主权,让他们能够自由地重塑自己的数字工具。

总结: 作者通过 fj 这个具体例子,展示了 Emacs 提供的可塑计算能力如何让用户通过代码和程序的重组,快速、即兴地创造出新功能。这种能力让个人能够构建出在传统模式下难以实现的工具。

评论总结

以下是对评论内容的总结,涵盖主要观点、论据及认可度,并保持不同观点的平衡性:

主要观点与论据

  1. 支持可塑计算(Malleable Computing)

    • sroerick(评分:无):基于Emacs理念,构建了运行在Web服务器上的解释型Lisp,将AST存储在Postgres中,实现了低开销的可塑计算。代理可通过REPL直接使用函数,无需调用API,还能编写新视图改进程序。
      • 关键引用:"Instead of calling an API, agents can just use functions in a REPL."
      • 关键引用:"Being able to design a program specifically for the workflow I want is pretty neat."
    • gritzko(评分:无):JavaScript曾为Web实现类似功能,自己正在开发可塑的Git兼容SCM(Beagle),将性能关键部分放在原生库中,其余用JavaScript构建,认为这是LLM时代的正确架构。
      • 关键引用:"JavaScript did this for the Web back in the day."
      • 关键引用:"I believe this is the right architecture for the LLM age."
  2. 中间地带:Unix工具模型

    • __d(评分:无):完全可塑软件需要编程技能,而Unix工具模型提供了一种折中——用简单语法组合预构建工具,类似ELisp函数,但用户技能要求略低。
      • 关键引用:"There’s an interesting middle ground: not fully malleable software... but eg the Unix tool model."
      • 关键引用:"Pre-existing (or importable) ELisp functions are kinda similar."
  3. 历史视角与现有方案

    • pjmlp(评分:无):文章重新发现了Lisp机器、Smalltalk等系统的理念,但主流计算从未真正实现。
      • 关键引用:"Yet another one rediscovers the way Lisp machines, Smalltalk, Cedar and Oberon were envisioned."
    • beepbooptheory(评分:无):文章未提及Magit Forge这一成熟的现有解决方案。
      • 关键引用:"This is nice but not even a mention of the rather robust existing solution here with Magit Forge?"
  4. 批评与补充

    • jakeandfatman(评分:无):文章无用,因为缺乏本地/远程同步;可组合的UNIX程序优于锁定式单体,无需长篇大论。
      • 关键引用:"Useless without local/remote sync."
      • 关键引用:"Hardly calling for a Fred Brooks style exegesis."

平衡性总结

  • 支持方:强调可塑计算的实际价值(如Lisp实现、LLM时代架构),认为其能提升工作流定制性。
  • 折中方:指出完全可塑的门槛高,Unix工具模型是更实用的中间方案。
  • 批评方:认为文章缺乏新意(历史已有类似理念)、忽略现有工具(如Magit Forge),且未解决同步等关键问题。

整体上,评论对可塑计算理念持积极态度,但对其实现方式、实用性和创新性存在分歧。