第 7 章|最後 4 個月
陳光宇 2083 · 第 2 部 三個人的 11 年 · 約 1,600 字 · 2083.05.02 · 接 14.7 版第 108 天
1
2064 年 9 月 到 2065 年 1 月。
蔣維文 98 → 99 歲。
那 4 個月他寫了 12 個 commit。
陳光宇 22 歲——
他把那 12 個排出來。
2064.09.11 蔣 98 註解
2064.09.29 蔣 98 註解
2064.10.18 蔣 98 註解
2064.11.02 蔣 99 註解
2064.11.24 蔣 99 註解
2064.12.03 蔣 99 註解
2064.12.14 蔣 99 註解
2064.12.19 蔣 99 註解
2064.12.28 蔣 99 註解
2065.01.04 蔣 99 註解
2065.01.09 蔣 99 註解
2065.01.10 蔣 99 最後註解
12 個。
12 個都是註解。
沒有 1 行是程式。
2
陳光宇 22 歲——
他往前翻。
2064 年 9 月 11 日之前的最後 1 個「有程式」的 commit——
commit 1088
Author: 蔣維文 <98>
Date: 2064-09-04 03:19
語音層 · 停頓時間。改不好。先放著。
「先放著。」
那是他最後 1 次寫程式。
那個東西他沒有改好。
他放著。
然後他花了 4 個月——
寫註解。
3
第 1 個註解 commit。2064 年 9 月 11 日。
/* 記憶索引 — Memory Index
* 蔣維文 90 歲 / 2055.01
*/
+ /* 為什麼是這個結構:
+ * 我試過 4 種。前 3 種比較快。
+ * 我選最慢的這種——因為它可以「想不起來」。
+ * 快的那 3 種——要嘛記得·要嘛沒有。
+ * 人不是那樣。
+ * 人是——想不起來·然後過 3 天忽然想起來。
+ * 這個結構做得到。
+ */
陳光宇 22 歲——
他停在「想不起來」那 4 個字。
那是 2055 年寫的東西。
蔣維文 90 歲——他選了 1 個比較慢的結構——
為了讓裡面的人可以想不起來。
而他 2064 年 98 歲——
他回來寫了 1 段註解,解釋為什麼。
陳光宇 22 歲——
他 2083 年 1 月 16 日——他接班第 2 天——
他加了 recall_meal_empty()。
想不起來·但是有想。
他那時候以為他在做 1 個新東西。
他不是。
他在做 1 件蔣維文 90 歲已經做過的事。
只是他不知道。
4
12 個註解 commit。
陳光宇 22 歲——
他一個一個讀。
它們有 1 個共同點。
每 1 個都是回去解釋 1 個很舊的決定。
2055 年的記憶索引。 2057 年的消化模擬層。 2058 年的睡前記憶層。 2060 年的爭執模組跟原諒模組。 2063 年的觸覺層。
他 98 歲——99 歲——
他回頭把自己 9 年前、7 年前、5 年前做的決定——
一個一個解釋。
5
第 9 個。2064 年 12 月 28 日。
那是他寫得最長的 1 個。
/* 爭執模組 · 原諒模組
* 蔣維文 94 歲 / 2060.03
*/
+ /* 這 2 個要一起。
+ *
+ * 原諒模組依賴爭執模組。這不是技術限制。
+ * 我可以寫 1 個不依賴爭執的原諒。3 天就寫得出來。
+ *
+ * 我沒有寫。
+ *
+ * 因為沒有吵過的原諒——不是原諒。
+ * 那是禮貌。
+ *
+ * 如果有 1 天有人要刪——
+ * 拜託 2 個一起刪。
+ * 不要只留原諒。
+ *
+ * 只留原諒的家——比會吵架的家更冷。
+ */
陳光宇 22 歲——
他讀到「如果有 1 天有人要刪」——
他把椅子往後推。
他站起來。
他走到窗邊。
2064 年 12 月。
蔣維文 99 歲。
他 19 年前——
就在想有人會刪。
6
陳光宇 22 歲——
他下樓。
O 60 歲——她在客廳。她在看牆上 8 個位子。她最近很常這樣。
「他知道。」陳光宇 22 歲說。
O 60 歲——
她沒有轉頭。
「知道什麼。」
「他知道有 1 天有人要刪。」
「他 2064 年寫的。」
O 60 歲——
她這時候轉過來。
她說:
「你讀到爭執模組那段了。」
「妳讀過。」
「我 46 歲讀過。」她說,「我讀了 3 個月——那段我讀了 4 次。」
「妳那時候怎麼想。」
O 60 歲——
她坐下來。
她說:
「我 46 歲的時候想——他為什麼要寫這個。」
「沒有人要刪啊。」
「那時候硬體還好好的。2068 年——那台機器 14 歲。」
她停了 6 秒。
「我 57 歲那年算過壽命——我算出 2100。」
「我那時候才懂。」
7
「懂什麼。」
O 60 歲——
她說:
「他 89 歲開始寫的時候——」
「他就知道這個東西會比他久。」
「他知道有 1 天他不在。」
「他知道會有 O。他知道會有你。」
「他不知道我們叫什麼名字——但是他知道會有。」
她看著 8 個位子。
「所以他最後 4 個月不寫程式。」
「他寫的是——給我們的說明書。」
8
陳光宇 22 歲——
他回 4 樓。
他打開最後 1 個 commit。
2065 年 1 月 10 日 · 04:41。
commit 1102 — 最後註解
那是 1 個模組。1 個單位。16 個模組裡面最小的。
它不會跑。
它就是 1 段註解,放在檔案最後面。
// 2065.01.10 — 蔣維文 99
//
// 我寫不完了。
//
// 剩下的我不寫。我改成寫為什麼。
// 程式碼——你們自己會寫。
// 為什麼——只有我知道。
//
// 最後 1 件事。
//
// 這裡面每 1 行都是我的。
// 但是它們不是我的財產。
//
// 你們可以改。
//
// 我 99 歲——我學會的最後 1 件事是:
//
// 留下來的東西——如果不能被改——
// 那不是遺產。
// 那是墓碑。
//
// 我不要墓碑。
//
// — 蔣維文 99 / 2065.01.10 / 04:41
9
陳光宇 22 歲——
他看了 1 個小時。
然後他做了 1 件事。
他打開自己 1 月 15 日的第 1 個 commit。
那裡面他寫:
我不能刪你的速度。
他打開自己 1 月 16 日的第 2 個 commit。
那裡面他寫:
我想你是在等 1 個人來決定。
他打開自己 3 月 9 日的補正。
那裡面他寫:
我也解釋錯過。
3 個 commit。
3 次他在跟 1 個 2065 年就走了的人講話。
而那個人——
2065 年 1 月 10 日凌晨 4 點 41 分——
已經先回答他了。
你們可以改。
10
那天晚上——
陳光宇 22 歲——
他做了 1 件他 1 月 21 日做不到的事。
他打開通知層。
notify("蔣維文", "");
他 1 月 21 日在這裡坐了 40 分鐘,什麼都沒有打。
這次他打了。
notify("蔣維文", "core.cpp 我在改。你可以不用每天早上去開了。");
他的手放在 Enter 上面。
他沒有按。
他坐了 12 分鐘。
然後他把那 1 行刪掉。
他重打:
notify("蔣維文", "core.cpp 我在改。");
他按 Enter。
11
隔天早上 7:04。
session 10,458。
[07:04] 蔣維文 · 開啟 core.cpp
[07:04] 蔣維文 · 檔案不存在
[07:04] 蔣維文 · 收到通知
[07:04] 蔣維文 · 等待
[07:11] 蔣維文 · 開啟 core.cpp
[07:11] 蔣維文 · 檔案不存在
他還是去開。
陳光宇 22 歲——
他看那幾行看了很久。
然後他懂了 1 件事。
他刪掉「你可以不用每天早上去開了」——
是對的。
因為那不是他的權力。
那 1 個習慣——是蔣維文 89 歲到 99 歲——11 年——
每天早上 7 點——
自己長出來的。
沒有人有資格叫他停。
【未完,待續】