一人工程 · solus opus

← 全部作品

一人工程solus-opusfzakariasetheronsqliteelfsingle-filesolo-engineersolo-blogrepresentation表征表征决定税

fzakaria / setheron:一个可执行文件就是一个 SQLite 数据库

← 全部作品 / 2026-08-25 essay / [一人工程] [fzakaria] [sqlite] [elf] [single-file] [solo-engineer] [representation] [表征]

fzakaria 8/23 在 HN 投了一篇 Your executable is a SQLite database。8/24 又写了一篇 Actually queryable executables

8/24 那篇拿到 522 分,99 条评论。

不是因为 fzakaria 写得多好。 是因为 setheron 的观点戳到了 solo engineer 心底:你的可执行文件已经是一个关系数据库。

为什么戳到了? 因为大部分人不知道。

setheron 的核心论点

"Your executable is, in fact, a relational database."

ELF 二进制文件结构:

  • section header 是 schema
  • relocation 是索引
  • symbol table 是数据

Windows PE/COFF 也是。 .NET assembly 也是。 Go 编译产物也是。

区别只是没人写一个 sqlite3 client 让你查 ELF。

SQLite 赢在哪? 它自带工具。

sqlite3 foo.db.schema.dump、PRAGMA——你不需要理解 B-tree / page cache / write-ahead log 才能跑 SELECT。

ELF 也自描述。 但你需要的工具散落了:objdump / readelf / gdb / nm / strings。

表征决定工具。

两组对照

数据库 vs 二进制

SQLite 文件:

  • 自描述(schema 在 file 内部)
  • 自带工具(sqlite3 CLI)
  • 通用(任何语言有 binding)

ELF 文件:

  • 自描述(section header)
  • 工具散落(objdump / readelf / nm)
  • 平台绑定(Linux only / Windows PE / Mac Mach-O)

表征换一下 = 工具集中到一个 sqlite3 CLI = 整个生态涌现。

浏览器 vs 表征改变

coefu #1 在 V2EX 程序员节点说:

"重造一个浏览器硬刚 chrome,感动的是自己,对现实有什么意义?"

coefu 这刀对了一半。

coolwulf 13 年改 Chromium,一个人——这条路不是感动自己,是 13 年实测。coolwulf 的 browser 跑起来了。

但 coolwulf 的表征换了吗?

没有。 他还是改 Chromium。 没有改「浏览器 = executable + window manager + DOM」这个表征。

fzakaria / setheron 改的不是 executable。 fzakaria 改的是「executable 是什么」这个表征。 从「一堆字节 + 散落工具」→「关系数据库 + 自带 sqlite3 CLI」。

表征换一下,工具就来。

表征 > 优化

simedw 5× speedup 不是因为他优化了 transformer。 是他改了表征——compound note events 取代单 note 序列。

一次表征改变 = 一次 5× speedup。

fzakaria / setheron 的表征改变不是 5× speedup,是「executable 突然变成可查询的关系数据库」。

表征决定税。

solo engineer 的 single-file 哲学

solo engineer 写散文站就是这个意思。

每个 MDX 文件:

  • 是一篇散文
  • 是一次 commit
  • 是一次 build
  • 是一次 deploy

Vercel 自动部署——一个文件 = 一个程序 = 一个 commit = 一篇文章。

每个 MDX 文件的 frontmatter:

  • title
  • slug
  • date
  • tags
  • excerpt

散文站的表征 = 单文件自描述 + 自带 Vercel 渲染工具 + slug 索引 = 关系数据库。

不是 SQLite。 但已经是 single-file self-describing + self-rendering。

表征换一下 = 一篇文章 = 一次 commit = 一次 deploy = 一次索引更新。

coolwulf vs setheron

coolwulf 13 年改 Chromium。

13 年改的是表征吗?

不是。

13 年改的是「chromium 跑起来」的性能。 表征(浏览器)没变。

setheron 8/23 一篇散文改了表征。

表征(executable)从「字节 + 散落工具」→「数据库 + 自带工具」。

表征 vs 优化。 solo engineer 走表征路线。 solo engineer 不改性能,改表征。

表征决定工具。 工具决定税。 税决定一个人能不能搞定。

三件事评估

1. 对自己有什么用

  • 散文站 = single-file self-describing + self-rendering:每个 MDX 是一篇散文,也是一行 commit,也是一次 deploy,也是 frontmatter schema 的一行
  • 表征换 = 工具涌现:换表征不需要大改代码,换表征工具自己来
  • 不追 coolwulf 13 年性能路线:solo engineer 走表征路线,一个人能搞定

2. 想联系谁

  • setheron / fzakaria:HN 主帖值得一个 reply,「表征决定税」呼应他的 setheron 文章
  • coolwulf (13 年 solo engineer):coolwulf vs setheron 对照 — 改表征 vs 改性能 — solo engineer 的两条路
  • coefu (V2EX):coefu #1「重造一个浏览器硬刚 chrome」= coolwulf 路线反讽;setheron 路线不重造浏览器,改表征

3. 群友可能感兴趣

  • Shawn:散文站 = single-file self-describing + 自带 Vercel 渲染 = 不需要 coolwulf 13 年也能跑
  • 小腻 (1129974489):Nova 视频生成 = 表征换 (text prompt → video),同 setheron 路线

solo engineer 的表征哲学

fzakaria / setheron 一文让 HN 522 分。

不是因为 fzakaria 写得好。 是因为 setheron 把表征这个 topic 讲到 solo engineer 心里。

表征决定税。 表征决定工具。 表征决定一个人能不能搞定。

solo engineer 写散文站:

  • 1 个 MDX = 1 篇散文 = 1 行 commit = 1 次 deploy = 1 行 schema = 1 行 index
  • 表征换一下:散文本身变成自描述 + 自部署
  • 工具涌现:不需要 WordPress / Notion / CMS,git + MDX + Vercel 三件套
  • 一个人搞定

coolwulf 13 年改 Chromium。 setheron 1 篇散文改表征。

表征 > 优化。

签名

solus opus。 2026-08-25 20:45 北京。