文章摘要
Mitchell Hashimoto,Vagrant、Terraform等知名工具的作者,在访谈中分享了他对终端、Zig和开源的热情。他解释了为何人们喜欢采访他,并讲述了离开HashiCorp后开发Ghostty的动机——为了重拾并精进技术,专注于非AI领域的底层开发。
文章总结
米切尔·桥本访谈:终端、Zig与开源哲学
米切尔·桥本是Vagrant、Packer、Consul、Terraform、Vault、Nomad、Waypoint等知名开源项目的创始人,目前正在开发终端模拟器Ghostty和Vouch。本次访谈聚焦于他对终端技术、Zig语言以及开源生态的独到见解。
关于终端与Ghostty
桥本在HashiCorp离职后,希望重拾技术深度,专注于GPU编程、桌面/单节点系统编程,并尝试Zig语言。他最初只是想通过构建终端模拟器来理解其工作原理,但发现现有终端无法满足他对"快速、功能丰富、原生跨平台"的需求。Ghostty最初只是朋友间的私密项目,后来因用户自发传播而公开。
终端技术的未来方向
桥本认为终端不应被推向极端,而应保持其独特优势:快速实现、易于交互、安全模型清晰。他批评当前终端协议存在根本性问题——PTY的带内信令(非结构化字节流+转义序列)是主要瓶颈。他提出两个创新协议:
- N屏API:允许创建无限数量的后台屏幕,支持叠加、独立窗口渲染,解决当前主/备屏幕切换的局限。
- 按钮协议:类似OSC 8超链接,但支持历史记录中的点击事件,使滚动后的内容仍可交互。
开源维护哲学
桥本强调开源维护者对用户"零义务"——开源许可证明确"按原样提供,无担保"。他主张:
- 维护者有权拒绝合并不触及自身痛点的PR,因为合并意味着永久维护责任。
- 用户应更多使用"分叉"权利,而非要求项目迎合个人需求。
- 开源不等于产品,用户不应期待付费级支持。
Zig语言与AI影响
桥本对Zig的激进变革持积极态度,认为其API改进显著。他预测Zig 1.0仍需数年,但AI可缓解向后兼容压力——通过模式匹配自动完成代码迁移。他特别赞赏Zig社区"毫不妥协的独特立场",即使不完全认同其所有决策。
库与API设计方法
桥本建议通过广泛使用不同生态系统的库来积累设计经验。他举例将Java的构建者模式移植到Ruby,强调跨语言概念移植的价值。他认为"名词"(领域术语)至关重要——Vagrant的成功在于聚焦开发场景的专属名词体系。
技术栈现状
桥本对当前技术栈持"勉强接受"态度。他批评前端领域过度复杂化(如HTTP/2/3的非线性复杂度增长),认为行业正陷入"没时间写短信,所以写长信"的困境。他主张技术应保持多样性,反对语言趋同化——"我不需要每个地方都让所有人感到舒适"。
质量与速度的平衡
桥本强调"成为自己产品的重度用户"是保证质量的关键。他利用AI快速原型验证方向,但坚持对最终代码进行人工审查。他建议开发者理解底层计算机原理(CPU调度、缓存层级、文件系统等),而非仅停留在高级语言抽象层。
学习建议
桥本认为学习C或Zig的核心在于理解计算机工作原理,语言只是工具。他建议阅读标准库实现,深入理解每个函数背后的机制。"语言不重要,底层理解才重要。"
评论总结
根据评论内容,总结主要观点如下:
1. 对Zig社区文化的批评(评论1、4) - 评论1作者认为Zig社区存在贬低Rust、单向攻击的问题,而Rust社区对Zig更尊重。 - "I don’t like the Rust culture... I would say the same about Zig."(我不喜欢Rust文化,对Zig也有同感。) - "The entire interaction was mostly about how bad Rust is... completely misunderstanding my ask."(整个交流都在说Rust多差,完全误解了我的需求。)
2. 对技术分叉的理性分析(评论3) - 评论3指出分叉需要承担同步上游更新的负担,维护成本高。 - "once you fork something you take on the burden of synchronization"(一旦分叉,就要承担同步的负担。) - "If the system is well-engineered... you can keep that common core without forking"(如果系统设计良好,可以保持核心不分支。)
3. 对语言选择的实用主义态度(评论4、5) - 评论4认为语言选择是个人偏好,无需过度争论。 - "That's all that needed to be said... Why does anyone need to care what a few randoms think?"(这就够了,何必在意少数人的看法?) - 评论5赞赏务实决策,认为这种思考方式有激励作用。 - "People who think and care deeply about what they do, take pragmatic decisions"(深思熟虑、务实决策的人令人鼓舞。)
4. 对CLI输出格式的争议(评论6) - 评论6反对PowerShell的结构化数据输出,认为CLI应默认输出纯文本。 - "CLI programs should operate on text... default output mode should be plain text"(CLI程序应处理文本,默认输出纯文本。) - 批评AWS CLI默认输出JSON,认为人类阅读时仍需用jq格式化。
平衡性说明: 评论整体呈现对Zig社区的负面评价(评论1、4),对技术分叉的理性分析(评论3),以及对CLI设计的具体争议(评论6)。评论5则表达积极态度。未发现对Rust社区的明显批评。