《程序员逻辑》新版发布与下一步计划
摘要
Hillel Wayne 宣布其著作《程序员逻辑》发布 v0.13 版本,包含大量重写和新内容,并概述了迈向印刷版的下一步计划。
<p><img alt="cover.jpg" class="newsletter-image" src="https://assets.buttondown.email/images/f821145f-d310-403c-88f4-327758a66606.jpg?w=480&fit=max" /></p>
<p>历时四个月,《程序员逻辑》的新版本现已发布!v0.13 超过五万字,比 v0.12 大 20%,同时也是我写过最长的东西。<sup id="fnref:longest"><a class="footnote-ref" href="#fn:longest">1</a></sup>完整发布说明<a href="https://github.com/logicforprogrammers/book-assets/blob/master/CHANGELOG.md" target="_blank">在此</a>,但我想谈谈最大的几项变化。</p>
<p>首先,每一章都已重写。每一章。从相对较小的改动到完全重写,不一而足。粗略地通过 git diff 统计后,我估计删除了约一万一千字?<sup id="fnref:gross-additions"><a class="footnote-ref" href="#fn:gross-additions">2</a></sup>最大的变化可能在于 Alloy 章节。经历了许多不眠之夜后,我意识到正确的方法不是将 Alloy 作为数据建模工具来教授,而是将其作为领域建模工具。这在技术上意味着本书不再涵盖数据建模。</p>
<p>此外,各章节之间的关联也大大增强。例如,介绍性数学章节预先暗示了每个数学概念在未来技术中的用途。我还更加注重一些通用“主题”,比如表现力与保证的权衡(暂定名)。一个让我非常兴奋的主题是兼容性(非常暂定名)。事实证明,<a href="https://buttondown.com/hillelwayne/archive/the-liskov-substitution-principle-does-more-than/" target="_blank">里氏替换原则</a>/子类型化、<a href="https://buttondown.com/hillelwayne/archive/refinement-without-specification/" target="_blank">数据库迁移</a>、向后兼容的 API 变更以及<a href="https://hillelwayne.com/post/refinement/" target="_blank">规约精化</a>,基本上都遵循相同的一般原则。我目前称其为“兼容性”,但可能需要一个更好的名字。</p>
<p>最后,各章节中新增了许多主题。<code>测试</code>章节妥善涵盖了结构属性和蜕变属性。<code>证明</code>章节涵盖了归纳证明和递归函数证明(作为练习)。<code>逻辑编程</code>章节终于加入了关于回答集编程的部分。你应该明白了。</p>
<h3>下一步计划</h3>
<p>我还想为本书添加很多内容:适当的数据建模、数据结构、类型论、基于模型的测试等。但我已经连续两年添加新素材了,如果继续下去,它永远无法完成。因此,从这个版本开始,所有内容都已就位!</p>
<p>就像两年前的十一月、两年前的一月以及去年七月那样,内容都“已就位”。为了确保 100% 不会受到添加新内容的诱惑,我将整份手稿交给了文字编辑。所以,如果我多写了,它将不会得到编辑。这是一个很好的停止动力。</p>
<p>我还需要找一位技术审阅者和校对者。当这三个阶段都完成后,就“只是”调整版面和寻找好的印刷商的问题了。我不知道时间线如何,但我真的想在夏天之前能有可以拿在手里的东西。</p>
<p>(我还需要获取知名人士的推荐语。在这方面有点受阻,因为我极力避免利益交换,所以我想避开任何帮助过我或在书中被提及的人。鉴于我利用了自己大部分的人脉来帮忙……不过我有一些想法!)</p>
<p>前方还有很多工作要做。即便如此,两年来第一次没有研究要做,也没有章节要写,感觉太疯狂了。或许我会再次更新博客!或许我会举办工作坊!或许我会在芝加哥温度超过 6°F 时出门!</p>
<hr />
<h2>会议季</h2>
<p>在相当平静的 2025 年之后,2026 年的会议季看起来会相当忙碌!以下是我目前计划演讲的地点:</p>
<ul>
<li><a href="https://qconlondon.com/" target="_blank">QCon London</a>,3月16-19日</li>
<li><a href="https://craft-conf.com/2026" target="_blank">Craft Conference</a>,布达佩斯,6月4-5日</li>
<li><a href="https://softwareshould.work/" target="_blank">Software Should Work</a>,密苏里州,7月16-17日</li>
<li><a href="https://hfpug.org/" target="_blank">Houston Functional Programmers</a>,线上,12月3日</li>
</ul>
<p>前三场我将演讲我的主题“如何发现不存在系统中的错误”的不同变体,该主题去年曾在 <a href="https://systemsdistributed.com/" target="_blank">Systems Distributed</a> 上演讲。最后一场理想情况下将是基于《程序员逻辑》的演讲。</p>
<div class="footnote">
<hr />
<ol>
<li id="fn:longest">
<p>第二长的是我 2003 年的 NaNoWriMo。第三长的是《Practical TLA+》。 <a class="footnote-backref" href="#fnref:longest" title="跳回正文脚注 1">↩</a></p>
</li>
<li id="fn:gross-additions">
<p>这意味着我总共写了 20,000 字。作为对比,v0.1 版本是 19,000 字。 <a class="footnote-backref" href="#fnref:gross-additions" title="跳回正文脚注 2">↩</a></p>
</li>
</ol>
</div>
查看缓存全文
缓存时间: 2026/05/16 03:40
# 面向程序员的逻辑:新版本及后续计划
来源:https://buttondown.com/hillelwayne/archive/logic-for-programmers-new-release-and-next-steps
cover.jpg
历时四个月,《面向程序员的逻辑》(Logic for Programmers)的下一个版本现已发布(https://logicforprogrammers.com/)!v0.13 版本超过 50,000 词,比 v0.12 大了 20%,也是我写过的最长的作品。¹(https://buttondown.com/hillelwayne/archive/logic-for-programmers-new-release-and-next-steps#fn:longest)完整发布说明见此处(https://github.com/logicforprogrammers/book-assets/blob/master/CHANGELOG.md),但我会重点谈谈最大的改动。
首先,每一章都重写了——每一章都是。从*相对*较小的改动到完全重写,一应俱全。经过粗略的 git diff 统计,我大概删除了 11,000 词?²(https://buttondown.com/hillelwayne/archive/logic-for-programmers-new-release-and-next-steps#fn:gross-additions)最大的变化可能来自 Alloy 章节。经过无数个不眠之夜,我意识到正确的做法不是将 Alloy 作为*数据建模*工具来教,而是将其作为*领域建模*工具来教。从技术上讲,这意味着本书不再涵盖数据建模。
此外,各章节之间的关联也大大加强。例如,数学入门章节会铺垫每种数学方法在未来技术中会如何应用。我还更强调了一些通用“主题”,例如表达能力与保证的权衡(暂用名)。一个让我非常兴奋的主题是兼容性(极度暂用名)。事实证明,里氏替换原则(https://buttondown.com/hillelwayne/archive/the-liskov-substitution-principle-does-more-than/)/ 一般的子类型化、数据库迁移(https://buttondown.com/hillelwayne/archive/refinement-without-specification/)、向后兼容的 API 变更以及规范精化(https://hillelwayne.com/post/refinement/)都遵循*基本上*相同的通用原则。目前我将其称为“兼容性”,但可能需要一个更好的名字。
最后,各章节中新增了大量主题。《测试》一章正确涵盖了结构属性和变形属性。《证明》一章涵盖了归纳法和递归函数证明(通过练习)。《逻辑编程》一章终于增加了关于回答集编程的内容。诸如此类。
### 后续计划
本书还有很多内容我想添加:恰当的数据建模、数据结构、类型论、基于模型的测试等。但连续两年都在添加新内容,如果继续下去,这本书永远完不了。因此,从这个版本开始,所有内容都已到位!
就跟两年前十一月(https://buttondown.com/hillelwayne/archive/five-unusual-raku-features/)、两年前一月(https://buttondown.com/hillelwayne/archive/logic-for-programmers-project-update/)以及去年七月(https://buttondown.com/hillelwayne/archive/logic-for-programmers-turns-one/)曾宣称的“内容已全部到位”一样。为了确保 100% 不会再被诱惑添加新内容,我已经把整份手稿交给了文字编辑。所以,如果我再写新内容,它们就不会被编辑。这是一个很好的激励,让我停止添加。
我还需要找一位技术审校和一位校对人员。这三个阶段都完成后,就“只是”修复排版和找好印刷商的问题了。我不确定时间线如何,但我真的很想在夏天之前拿到一本可以捧在手里的书。
(我还需要一些知名人士的推荐语。这有点难度,因为我努力避免交易性行为,所以希望避开那些帮助过我或在书中被提到的人。考虑到我已经动用了大部分人际关系来帮忙……不过我也有一些想法!)
前方仍有大量工作。即便如此,这是两年来第一次我不用再做研究或写章节,感觉真是疯狂。也许我会再次更新博客!也许我会举办工作坊!如果芝加哥气温超过零下 14 度,也许我还会出门走走!
---
## 会议季
在相对平静的 2025 年之后,2026 年的会议季看起来将会非常繁忙!以下是我目前已确认的演讲安排:
- QCon London(https://qconlondon.com/),3 月 16-19 日
- Craft Conference(https://craft-conf.com/2026),布达佩斯,6 月 4-5 日
- Software Should Work(https://softwareshould.work/),密苏里州,7 月 16-17 日
- Houston Functional Programmers(https://hfpug.org/),线上,12 月 3 日
前三个会议,我会做我去年在 Systems Distributed(https://systemsdistributed.com/)上演讲的变体版本:“如何在并不存在的系统中发现错误”。最后一个会议,理想情况下我会做一个基于《面向程序员的逻辑》的演讲。
相似文章
Logic for Programmers 已完成
Hillel Wayne 宣布其著作 'Logic for Programmers' 完成并发布 1.0 版本,这是一本关于在软件开发中使用逻辑的指南,现已提供印刷版,早期电子书购买者可免费更新。
《Logic for Programmers》新版本(以及本通讯的未来)
Hillel Wayne 宣布其著作《Logic for Programmers》推出 0.14 版本,并透露将加入 Antithesis 担任开发者教育家,计划继续运营本通讯,但侧重点有所调整,频率可能降低。
面向程序员的逻辑学 v0.15,现场编程
Hillel Wayne 宣布其著作《Logic for Programmers》的 0.15 候选版本,并重点介绍了一场以 Strudel 和 CLAVIER-36 为特色的现场编程聚会,用于音乐编程。
Logic for Programmers 额外内容
Hillel Wayne 为其著作《Logic for Programmers》发布补充章节,涵盖并发进程、一阶逻辑、Liskov 历史规则及排序等主题。
《Logic for Programmers》食物募捐活动只剩一周
Hillel Wayne为其书籍《Logic for Programmers》提供折扣,以此推广为Greater Chicago Food Depository举办的募捐活动,并分享了关于结构化并发和goto语句历史的技术笔记。