5月18日,星期日。封校第二十六天。
凌晨一點,A302隻剩下林遠那台顯示器的光。
他在重構音匠的音頻引擎。
不是必須做的事——現有的引擎完全夠用,做demo綽綽有餘。但他用著用著發現幾個問題:實時效果預聽的延遲還是偏高,加載大型工程文件時內存占用在膨脹,虛擬樂器插件的接口設計不夠優雅。
這些問題普通用戶感覺不到,但他自己用著不舒服。
"小艾,把VST插件框架的接口文檔調出來。"
"好的,宿主。當前版本有十七個接口,需要優化哪些?"
"全部。重新設計。"
核心思路他知道——非破壞性編輯加實時效果預聽的低延遲架構,這套方案比2003年的Cubase和FL Studio至少領先五年。小艾按照他的方向生成了新架構的代碼,林遠逐行審核,改掉了三處過度優化和一處不必要的抽象層。
產品不能太超前。必須看起來像一個天才團隊花半年做出來的,而不是從二十年後的未來直接搬過來的。
這個分寸,他每次都卡得很緊。
第二天上午,林遠自己把自己逼急了。
他在同時寫三個項目的代碼——WatchGuard的漏洞庫模塊、音匠的VST插件框架、北達簡訊的搜索索引優化。三個項目,三套代碼,三種語言,三個文件夾。
他用的編輯器是EditPlus——2003年最主流的輕量編輯器之一。能用,但不好用。
多文件切換全靠窗口列表,沒有標籤頁。代碼摺疊形同虛設。語法高亮對C++模板嵌套經常識別錯。自動補全?不存在的。
每天十幾個小時在這上面敲代碼。這把"武器",不夠稱手。
"小艾。"
"在,宿主。"
"你覺得現在市面上的代碼編輯器,最大的問題是什麼?"
小艾沉默了一秒——這是她在"思考"的標誌。
"慢。不夠智能。不能擴展。"
"對。"林遠站起來,走到白板前,擦掉一塊空白的區域,"如果我做一個新的——"
他在白板上寫下三個關鍵詞:快、聰明、能裝插件。
蘇明遠正好端水進來,看到白板上那三個詞,愣了一下。
"這是什麼?"
"代碼編輯器。"林遠說,"EditPlus太笨,UltraEdit太重,vim學習成本太高。我要做一個又快又聰明、還能裝插件的東西。"
蘇明遠不太懂代碼編輯器有什麼了不起的。
"這東西有人用嗎?"
"每一個寫代碼的人都需要編輯器。"林遠說,"全中國幾百萬程式設計師,全世界上千萬——誰寫代碼誰就得用編輯器。現在市面上的選擇,要麼貴要麼笨。我要做一個免費的,夠用,好用,夠快。"
他給這個編輯器起了個名字:墨鋒。
墨,是筆墨的墨——代碼就是程式設計師的筆墨。鋒,是鋒利的鋒——寫代碼的武器,必須夠快夠利。
下午,他開始搭墨鋒的核心框架。
小艾負責底層——高性能文本渲染引擎、多標籤頁架構、語法高亮的詞法分析器。林遠負責上層設計——插件系統的接口規範、代碼摺疊的算法、自動補全的觸發邏輯。
核心定位他已經想清楚了:不做大而全的IDE,做輕而快的編輯器。啟動速度要在一秒以內,打開十萬行代碼不能卡頓,插件生態要開放——任何人都能寫插件擴展功能。
2003年的代碼編輯器市場,EditPlus和UltraEdit各占一隅,vim和emacs靠信仰撐著。沒有一個產品同時做到"快、聰明、可擴展"。VS Code要到十二年後才出現。
這十二年,就是墨鋒的窗口。
"宿主,文本渲染引擎用GDI還是DirectWrite?"
"GDI。2003年DirectWrite不成熟,先做出來再做好。插件接口用自定義協議——COM太重,而且綁定Windows。墨鋒將來要跨平台。"
蘇明遠坐在旁邊聽了一會兒,雖然聽不太懂技術細節,但他注意到一件事——林遠說"將來要跨平台"的時候,語氣非常篤定。就好像他已經看到了這個編輯器三年後、五年後的樣子。
"好的,宿主。核心模塊預計三天出原型。"
"兩天。先把文本引擎和語法高亮做出來,插件接口後面補。"
"……明白。"
傍晚,郵箱提示音響了。
不是百都,不是騰迅。
發件人:周明哲。
中科院軟體所,信息安全國家重點實驗室。
周明哲是導師李教授的老朋友,四月中旬看到林遠那篇ECC優化論文預印本後主動聯繫上來。非典封校之後,兩個人的郵件往來反而更頻繁了——出不了門,正好做學問。
郵件不長:
"林遠同學:上次你提到的橢圓曲線在受限硬體環境下的實現優化,我讓組裡的博士生試了一下你提的預計算表方案,效果出乎意料的好。但有個新問題想討論——在8位單片機上做ECC標量乘法,存儲資源極度受限,你的思路是什麼?另外,我們實驗室在做國產密碼算法的性能評估,你有沒有興趣參與一些非涉密的學術討論?"
林遠看完,花了四十分鐘寫回信。
他沒有把答案全盤托出——不是藏私,是節奏問題。一次給太多,周明哲會起疑。一個十七歲的本科生對ECC在嵌入式環境下的理解,不能超過"天才但合理"的邊界。
他寫了一個"思路"——用預計算表分級加載,按可用內存動態調整窗口大小,既省存儲又不犧牲太多性能。措辭謙虛,但每一個技術點都精準到位。
發出去不到兩個小時,周明哲回了。
"你的窗口動態調整方案我之前沒想到。我們組做了三周才意識到固定窗口的局限性,你居然用動態調整繞過去了。這個思路如果成立,對我們在嵌入式場景下的算法選型幫助很大。另外,你對ECC在受限硬體上的理解,坦率說——比我的博士生深。有興趣來實驗室坐坐嗎?等SARS緩解之後。"
林遠看著這封回信,嘴角微微上揚。
周明哲是國內ECC領域的權威之一。能讓他說出"比博士生深"這種評價,說明這條學術線的種子已經紮下根了。等SARS結束,去軟體所當面拜訪,再展示一下自己在協議優化上的思路——863課題的門票,基本就到手了。
"小艾,記錄。中科院軟體所周明哲,學術交流持續中。下次回復注意控制深度——不能讓他覺得太容易,也不能讓他覺得我在藏。"
"宿主,他為什麼說您比博士生深?"
"因為我不是在做研究。"林遠輕聲說,"我是在回憶。"
2026年的橢圓曲線密碼學已經被研究了三十年。物聯網設備上的ECC優化,是所有安全工程師的基礎功課。他不是在做前沿探索——他是在複述二十年後的標準答案。
但周明哲不知道這些。他只知道:這個本科生有一種異常的方向直覺,提出的思路往往需要幾個月才能驗證,但最終總是對的。
這條線的價值,不比百都低。
周明哲是國產密碼體系論證的核心成員。他的認可是通往863課題的門票,是通往中科院軟體所信息安全國重實驗室的敲門磚——也是將來接觸軍方項目的跳板。
一步一棋,棋棋相連。
晚上,趙強在旁邊嘀咕:"今天北京新增多少?"
"十四。"林遠沒抬頭。
"還在降。"
"嗯。"
"你說什麼時候能解封?"
"六月初。"
趙強吹了聲口哨:"快了。"
快了。但林遠知道,"快了"這兩個字不能告訴任何人。他只知道6月24日WHO會把北京從疫區名單上刪除——那一天才是真正的終點。
他在白板上更新數據,然後在已有的待辦下面又加了兩行:
音匠引擎重構 已完成。墨鋒代碼編輯器開發中,目標兩天出核心模塊。
周明哲:SARS後訪問軟體所信息安全國重實驗室。
蘇明遠看著白板上越來越密的條目,猶豫了一下:"你什麼時候寫歌?"
"昨晚發郵件之前寫了半首。"
"……半首?"
"靈感來了就寫兩句。"
蘇明遠決定不再追問了。
林遠關上燈。
封校第二十六天。
棋盤上的子越來越多了——音樂、安全、網文、軟體、學術。五條線,同時推進。
以前是三條腿走路,現在是五條腿。
忙嗎?忙。
但每一條線都在他腦子裡,每一步都在計劃中。
這種感覺——棋盤完全在掌控中的感覺——讓他覺得充實。
窗外校園安靜得像另一個世界。但安靜不會持續太久。
等SARS過去,等校門打開——這些子,會同時發出聲響。