Glean 拾遗
日刊 · 时间线

每天拾几条。

2026-09-23 · 周三 3 条
← 09-22
日历 ▾
2026 · 09
MoTuWeThFrSaSu ·123456789101112131415161718192021222324252627282930
有日刊 今天
06:00

函数着色:async 如何把语言劈成两半

What Color is Your Function?

作者用一个自造的“红蓝函数”语言作寓言:每个函数必须选颜色,红函数只能被红函数调用,调用方式更繁琐,且部分核心库函数只有红色。谜底是——红即异步。JS/Node、C#、Dart、Python 都把世界切成同步与异步两半,根因是异步 IO 必须退掉整个 C 调用栈才能回到事件循环,于是回调、promise、async-await、生成器只能把调用栈手工具体化到堆上(CPS 变换)。async-await 治好了“调用很痛”,却没有消除颜色:同步函数返回值,异步函数返回 Future/Task 包装,仍需 await 拆包。Go、Lua、Ruby 靠 goroutine/协程/fiber 挂起整条线程,同步与异步的区分因此消失。C# 若改用线程同样可避开。适合关心并发模型与语言设计的工程师。

journal.stuffwithstuff.com · 20 min · Concurrency · Essay · JavaScript · Programming Languages
06:00

效率的滑块:AI 造得出有用之物,造不出意义

The Value of Things: Utility, Meaning, and Generative AI

编程语言设计师 Bob Nystrom 用两个自己的故事——为岳母手织的围巾、为弟弟写的短片剧本——把「价值」拆成两半:utility(效用)来自物品能做的事,meaning(意义)来自制作者为他人花费的、不可回收的时间,且不可转让。生成式 AI 能把前者放大,却无法生成后者:ChatGPT 或许能在十分之一的时间里写出更好的剧本,但给弟弟的意义也只剩十分之一。作者由此提出一个粗糙模型——效率是滑块,决定成品中效用与意义的配比——并给出选择标准:只需要「能用的东西」时放手用(他引用华盛顿州生态部的招聘启事,其中明确鼓励用 AI 写样板代码、生成测试、做安全重构);涉及人与人的连接时,尽量少让机器介入。他同时承认模型的两个漏洞:刻意加大难度不会线性地增加意义,而制作过程本身也能带来快乐。全文只看个人层面的使用,未涉及 AI 的全局外部性。

journal.stuffwithstuff.com · 16 min · AI · Critical Thinking · Essay · Software Engineering
06:00

标识符过长也是病:四个删词规则砍掉名字里的水分

Long Names Are Long

Bob Nystrom 在 Google 做 Dart 的 readability 代码审查,见过超过 60 字符的标识符。他给出四条删词规则:类型已由静态类型或参数列表说明,就不该再写进名字(nameString → name,holidayDateList → holidays);对每个限定词追问“去掉它名字还成立吗”,recentlyUpdatedAnnualSalesBid 就这样逐词落马;类名和方法名已经提供了上下文,AnnualHolidaySale.promote 不必再叫 promoteHolidaySale;manager、data、state、engine 这类词不传递任何图像,可以直接删。文末用一个反面例子,把 DeliciousBelgianWaffleObject.garnishDeliciousBelgianWaffleWithStrawberryList 一步步砍成 Waffle.garnish,演示四条规则如何叠加生效。适合每天在 code review 里跟命名较劲的工程师。

journal.stuffwithstuff.com · 9 min · Code · Code Review · Programming Languages · Software Engineering