目录
1880 字
9 分钟
程序员与咖啡因:续命水的一百种喝法

程序员圈子里流传最广的一句自嘲是:程序员是一台把咖啡转换成代码的机器。这个接口说明比任何架构文档都清晰——一杯下去,晚一点睡,多几十行提交。

玩笑归玩笑,这句话里其实混着三个都能查证的问题:为什么偏偏是咖啡、咖啡因到底在人身体里干了什么、以及它能撑多久。而这三个问题,恰好各自都挺好笑。

一、唯一一门用饮料命名的语言#

先说个冷知识:Java 差点叫别的。

它最早的名字是 Oak,因为 James Gosling 办公室窗外有一棵橡树。名字很文艺,法务很头疼——Oak 这个商标已经被别的公司占了。于是 Sun 把十几个人关进会议室搞头脑风暴。据当年的圆桌访谈,候选名单长得能写满一块白板:Silk、Lyric、DNA、Pepper、Neon、WebRunner……最后 Java、DNA、Silk 三个通过了法务审查。

至于「Java」是谁先说的,当事人自己都记不清。Frank Yellin 的原话是「没人记得是谁第一个想出这个名字」;Arthur van Hoff 觉得是 Chris Warth 喝着 Peet’s 的 Java 咖啡时顺口说的;Chris Warth 本人则说可能是他,也可能是别人;而 Kim Polese 公开宣称「是我命名的」。

整件事里最诚实的一句总结来自 Chris Warth:「我们最后用这个名字,是因为选项用完了,而我们想赶紧把产品发出去。」

所以严格说,Java 的命名不是一次灵光乍现,而是一次 deadline 驱动的随机采样。这也解释了为什么它没叫 Lyric——那是 Gosling 自己最喜欢的名字,可惜没过法务那关。程序员第一次对「名字没那么重要,能发版才重要」产生共鸣,大概就是从这里开始的。

顺带一提,咖啡杯 logo、JavaBeans、NetBeans——一门语言把咖啡元素用了个遍,以至于很多人真的相信不喝就写不出来。

二、咖啡因不生产清醒,它只是挪用了清醒#

咖啡提神,不是因为咖啡因给了你能量,而是因为它占住了腺苷的受体。

腺苷是白天在你脑子里持续累积的「困意存款」,浓度越高越困。咖啡因的分子形状和它足够像,于是抢先把受体坐满——你感觉不到困,但困意本身一分没少,只是排队等着。等咖啡因被代谢掉,积压的腺苷一次性涌上来,就是你熟悉的下午三点崩盘。

翻译成人话:咖啡因不是提神,是向你身体的未来借精力,而且利息按小时算。

三、剂量表:400 毫克到底有多长#

FDA 给的参考线是:对大多数健康成年人,每天 400 毫克咖啡因通常不伴随负面效应,大约相当于 2 到 3 杯 8 盎司(237 毫升)的咖啡。

问题在于,这个数字在日常语境里几乎不出现。真正被喝掉的是这些(数据来自 Mayo Clinic 整理的常见饮品表):

饮品一份咖啡因
滤泡咖啡8 oz (237 ml)约 96 mg
意式浓缩1 oz (30 ml)约 64 mg
红茶8 oz约 47 mg
绿茶8 oz约 28 mg
可乐8 oz约 22 mg
能量饮料8 oz约 72 mg
能量 shot2 oz (60 ml)约 215 mg

于是「一天一杯」和「一天一杯」之间,可以差出一个数量级:有人的一杯是 30 毫升的浓缩,有人的一杯是 700 毫升的冰美式——后者一杯就接近整天的额度。

最后一行尤其值得单独看:**2 盎司(约 60 毫升)的能量 shot,咖啡因接近两杯咖啡。**它的卖点是「一口见效」,翻译过来就是「一口到位」。

FDA 还专门警告过粉末与液体咖啡因:一茶匙纯咖啡因粉末约等于 28 杯咖啡,剂量高到可造成严重健康问题甚至死亡。把提神做成粉末,等于把「续命」做成「猝死」。

四、半衰期:下午三点那杯,午夜还在值班#

CDC/NIOSH 给的数据是:咖啡因约 30 分钟起效,半衰期 5 到 6 小时——每过 5 到 6 小时,体内剩下的咖啡因减半。

半衰期的残酷之处在于它是指数衰减:你永远不会遇到「刚好喝完就睡」,只会遇到「还剩一点,刚好够你睡不着」。

拿代码算一下:

// CDC/NIOSH 给的半衰期是 5–6 小时,这里取中值
const HALF_LIFE = 5.5;
/** 喝下 mg 毫克咖啡因、过了 hours 小时后,体内还剩多少 */
const caffeineLeft = (mg, hours) => mg * 0.5 ** (hours / HALF_LIFE);
// 下午 3 点一杯 96mg 的咖啡,到晚上 11 点还剩多少?
console.log(caffeineLeft(96, 8).toFixed(1)); // 35.0
// 大概还是一罐 12oz 可乐的量(FDA 给的区间是 30–40mg)

一杯下午三点的咖啡,八小时后身体里还留着接近一罐可乐的咖啡因。你以为你在睡觉,其实你在跑一个带咖啡因的多线程后台任务。

这也是为什么「睡前八小时不碰咖啡因」听起来像养生号标题,实际上有明确的药代动力学依据。

五、续命水的一百种喝法#

真实世界的喝法清单比上面那张表精彩得多,基本可以按时间轴排班:

  • 早上第一杯:开机自检。这杯没喝完,不算上班。
  • 午饭后那杯:热补丁。不是需要提神,是需要一个离开工位的正当理由。
  • 下午三点那杯:紧急回滚。前一晚熬夜欠下的账,当场到期。
  • Deadline 前的浓缩:force push。不解决问题,只是拒绝接收现状。
  • 提测前的能量饮料:临时扩容。CPU 立刻跑满,风扇也立刻开始响。
  • 晚上那杯「就写一会儿」:递归调用。它会自己调用下一个自己。

喝到后来还会形成流派,争论激烈程度不亚于 tabs 还是 spaces:手冲派、冷萃派、防弹咖啡派,以及宣称「我只喝茶」但一天四杯奶茶的隐形咖啡因派——奶茶的咖啡因往往不比咖啡少,只是它长得不像。

至于「咖啡因驱动开发」(Caffeine-Driven Development),它的特征是:迭代速度与心率正相关,代码质量与咖啡因余量呈倒 U 形,而技术债刚好在最清醒的那个瞬间被写下来。

结语#

把段子拆开看,结论其实很朴素:咖啡因调节的是你的感受,不是你的睡眠。它能让你感觉不到困,但不能替你还上睡眠这笔债。

所以「下午三点后不喝咖啡」和「周五不部署」是同一类规矩——真正危险的不是咖啡因,也不是星期几,而是在状态最好的错觉里,做了不可回滚的操作。

400 毫克是上限,不是配额;半衰期是 5 到 6 小时,不是 5 到 6 分钟。至于那一百种喝法,最好的那一种,大概是明天早上再喝。

参考来源#

程序员与咖啡因:续命水的一百种喝法
https://www.hehonglei.cn/posts/programmer-and-caffeine/
作者
Honglei He
发布于
2026-10-03
许可协议
CC BY-NC-SA 4.0