云生第一次獨立完成航空軌跡模擬程序時,特意回了趟達州。航空博物館的玻璃柜前,他對著《航空知識》里的笑臉看了很久,指尖在手機屏幕上滑動——那是他用林薇薇奶奶的飛行日志數據,生成的三維航線圖,每一條亮線都標注著日期和天氣,像串在空中展開的珍珠項鏈。
“陳爺爺的代碼邏輯,能讓這些航線‘活’起來?!痹粕鷮χv解員說,他的聲音和父親很像,帶著程序員特有的沉穩(wěn)。他調出自己開發(fā)的交互程序,屏幕上,陳默留下的代碼片段像群銀色的魚,游進林薇薇的航線圖,原本規(guī)整的線條突然有了波動,像被風吹動的云絮。
“這是模擬了當時的風速和氣壓,”云生指著某段突然上揚的航線,“對應陳爺爺的日志里寫著‘今晚有暴雨,擔心她的航班’。”講解員湊近屏幕,看見代碼與航線交匯的地方,彈出個小小的對話框,是云生根據兩人性格設定的虛擬對話:
“航線有點抖?”
“代碼幫你穩(wěn)住了。”
孩子們圍過來看熱鬧,指著屏幕上閃爍的光點喊:“是林奶奶和陳爺爺在聊天!”云生笑著調整參數,讓光點聚成當年那個笨拙的笑臉。他想起父母說的,302的衣柜里藏著的舊鐵盒,想起那支沒送出去的口紅和沒遞出去的借條——原來有些遺憾,能用數據補成圓滿的形狀。
博物館的修復室里,工作人員正在處理陳默的舊電腦。硬盤里的代碼大多已損壞,只有一個文件夾完好無損,命名為“云的備份”。云生試著用現代技術恢復,屏幕上跳出段音頻,是鍵盤聲和隱約的咳嗽聲,背景里還有高跟鞋敲擊地面的輕響——像極了302樓道里的某個夜晚。
“這是……他們的聲音?”年輕的修復師睜大了眼睛。云生把音頻導入聲紋分析軟件,發(fā)現鍵盤聲的節(jié)奏,竟與林薇薇某次飛行的引擎頻率高度吻合。“就像兩架飛機,在不同的頻道,卻踩著同一個節(jié)拍。”他輕聲說,突然明白有些共鳴,從來不需要語言。
村小的編程課上,云生教孩子們用簡易代碼畫云。穿紅裙子的小姑娘總把云畫成飛機的形狀,說:“陳爺爺的代碼里,云就該會飛?!痹粕肫鹱约盒r候,父親指著天空說:“你看那片云,走的是林奶奶當年飛過的路。”
有個扎羊角辮的小女孩,舉著平板跑過來,屏幕上是她用代碼寫的小詩:
“云是天上的霧,
霧是地上的云,
代碼是他們的信,
航線是郵差的腳印。”
云生把這首詩輸入交互程序,林薇薇的航線圖突然散開,化作漫天光點,陳默的代碼則變成霧靄,溫柔地托住那些光。在孩子們的驚呼聲中,光點與霧靄交織成302的輪廓,窗口亮著燈,像有人剛剛敲下最后一行代碼,又像有人剛回到家,正把絲巾掛在玄關。
離開達州的前一晚,云生住在航空博物館的值班房。深夜的雨敲打著穹頂,像在重復當年的節(jié)奏。他打開程序,讓林薇薇的最后一條航線,與陳默的最后一段代碼在屏幕上相遇。沒有驚天動地的效果,只是航線的終點,剛好落在代碼的最后一個字符上——那是個句號,被光染成了溫暖的橙黃色。
云生忽然想起父母說的,302的新窗簾總在風里飄動,像在模仿當年某個人窗前的剪影。他望著窗外的雨霧,覺得那些看不見的東西——比如遺憾,比如思念,比如未說出口的牽掛——其實都化作了數據,藏在云里,藏在霧里,藏在每個抬頭看天的人的呼吸里。
第二天清晨,雨停了。云生在停機坪上放起無人機,機身上載著微型硬盤,存著所有交互程序的數據。無人機升入云層的瞬間,他仿佛看見林薇薇奶奶穿著灰色沖鋒衣,站在舷窗前微笑,而陳默爺爺蹲在地上,指尖在云層上敲出代碼,像在給天空寫一封長長的回信。
302的燈光在晨光里亮了起來,新住戶的孩子正趴在窗臺上,用蠟筆在玻璃上畫飛機。樓下的快遞車駛過,留下串輕快的喇叭聲,像在說:有些對話,永遠不會結束。