为什么每个程序员都会给自己做一个 todo list
这几乎是一种成人礼。在 hello world 之后、在那个烂尾的创业点子之前,每个程序员都会给自己写一个 todo app。不是照着教程写,是真的给自己用。我自己数了数,写过五个。
现在我大概想明白我们为什么总在写它了。todo app 是能表达一种信念的最小程序,这个信念大多数程序员都有,只是不说出口:我的人生是一个系统,而系统是可以调试的。 错过 deadline、忘了纪念日、浑浑噩噩一个月,程序员的脑子会说:这是状态管理问题。于是我们动手写一个最小状态管理器。
我那五个的死法一模一样。自己写的 app、精心搭的 Notion、带自创语法的纯文本文件,每一个都撑了三周左右,然后沦为一片让我心虚的过期任务坟场。
很多年里我以为问题出在自律,或者只是还没找到对的系统。第六次动手的时候,我才发现问题出在数据模型上。
todo list 存错了东西
看看一个 todo app 到底持久化了什么:一个任务,一个布尔值。没了。勾上的那一刻,这行数据就死了,死数据往下滚出屏幕。一个月后,十个咬牙完成的勾和一个躺平浪费的下午,在数据上没有任何区别——都只是过去。
todo list 记录的是「做了什么」,却完全不存「你因此变成了谁」。你可以老老实实跟着它过一年,它对这一年把你磨成了什么样毫无看法。零累积。勾选框每天清零,你好像也跟着清零了。
这很奇怪,因为累积才是我们做事的全部理由。没有人是为了今天这一次跑步而跑步,我们跑,是为了五十次跑步会变成的那个东西。而这恰恰是 todo list 丢掉的那个数。
游戏几十年前就把这件事做对了。没有人因为练级慢而弃坑 RPG,因为 RPG 里的进度看得见:经验条在动,属性面板在长,那个数字刚才是 12,因为你做的事变成了 13。游戏对累积是诚实的,现实生活把它埋了。
于是我的第六个 todo app 长出了不一样的输出
这就是 Hotari:进来的时候像个 todo list,出去的时候完全是另一个东西。你把今天做的事记成任务,晚上,一个叫「史官」的 AI 读完你的一天,写一小段你如何成长的叙事,再给五个人生属性加点:智慧、体魄、心力、事业、关系。反复做的事会觉醒成技能,技能还能融合出新技能。

用一个任务就能看清区别。「跑了 5 公里」在 todo app 里:这行关闭,再见。在 Hotari 里:体魄涨了一点,「跑步」技能攒了一截经验,史官还记了一笔——下雨天你又把自己拽出了门。同一个勾选框,留下的东西完全不同。
也把丑话说清楚:Hotari 替代不了你的工作管理工具。它没有指派人、没有到期日焦虑、没有任何甘特图。它是一面照生活的镜子,不是项目管理器。工作上的 todo 工具,你该用还得用。
todo list 没有错
它只是在回答一个更小的问题。「我今天该做什么」值得回答,todo list 答得也不差。真正一次次杀死我那些系统的,是它们都碰不到的那个问题:这一切,到底有没有在累积成什么?
五个 todo app 都答不了,所以第六个不再是 todo app。
建它的那两个半月写在发布文章里。Hotari 在 hotari.app,七天免费,不用绑卡。如果你也是一个身后躺着一排效率系统坟场的程序员,我真的很想听听:杀死你那些系统的,是什么?