跳至主要内容

長期支援(LTS)

· 閱讀時間約 5 分鐘

最近看到自由軟體資料庫工具 SQLite 的「長期支援政策」網頁。在這個連手機 App 都能一夜消失、社群帳號說封就封的年代,SQLite 居然霸氣地說要支援他們的軟體到 2050 年(至少,他們嘗試要這麼做)。

官網上寫:

The intent of the developers is to support SQLite through the year 2050.

(開發者們的目標是支援 SQLite 到 2050 年。)

At this writing, 2050 is still 25 years in the future. Nobody knows what will happen in that time, and we cannot absolutely promise that SQLite will be viable or useful that far out. But we can promise this: we plan as if we will be supporting SQLite until 2050. That long-term outlook affects our decisions in important ways.

(在寫這篇文章的時候,距離 2050 年還有 25 年。沒人知道在這段時間內會發生什麼,我們無法完全保證 SQLite 真的能在那麼遠的未來仍然可用且有用。但是,我們可以承諾的是,我們打算像是要支援 SQLite 到 2050 年那樣子去規劃。這個長期的目標對我們的決策有著重要的影響。)

—— https://www.sqlite.org/lts.html

資訊

許多軟體都會有長期支援(Long Term Support, LTS)版本,就是開發者會承諾在一段時間內持續更新和修復問題,讓你可以不用急著更新到下一版,有點像你買東西會有保固期一樣。

通常這種支援能維持五年就算是很「長期」了,但 SQLite 打算支援 25 年,直到 2050 年。

SQLite 的長期支援策略

SQLite 在官網上列出了幾項達成長期支援的策略,我覺得根本可以當作「人生經營指南」來用:

🌍 跨平台相容性:SQLite 在任何有 C 語言編譯器的地方(也就是幾乎所有作業系統)都能跑。這就像是一個人在「任何有網路的地方」就能工作一樣。想想看:自己有沒有過度依賴某個特定平台、工具或環境?如果明天要搬到另一個城市或國家,還能靠現有技能維生嗎?

🧱 穩定的檔案格式:SQLite 的資料庫檔案不只可以在不同平台間無痛搬移,並且還有「向後相容性」,30 年後的版本依然能讀取今天建立的檔案(而不會像我用 Flash 做的《WiwiStudio 音樂能力測驗》一樣被強迫淘汰)。想想看:自己最愛的社群媒體平台能經營到 2050 年嗎?作品集檔案在 2050 年還能被打開、被理解嗎?

✈️ 航空級測試:SQLite 的程式碼會在多個平台、多種編譯器下反覆測試。不只是為了穩定性,更是為了當以後想加入新功能時,只要能通過既有的測試,就可以確定不會破壞原有的基礎。想想看:自己有沒有建立「核心價值」,當新的情況出現時,能夠依循它來確定自己不會走偏?

📝 詳盡文件、大量註解:SQLite 有詳盡、公開的說明文件,程式碼中有 35% 是註解,讓後代的人能夠完整了解它的運作模式,進而能夠維護它。想想看:自己的經驗和知識,能夠有效地傳承給別人嗎?當朋友詢問建議時,如果能有個 blog 連結能丟給對方說「我之前寫過這個問題」該有多好?

🛟 災難規劃:SQLite 的程式碼分散在全球各地的伺服器上,開發者住在世界各地,就算發生「洲等級的災難」,SQLite 也能存活。想想看:自己的收入來源夠不夠分散?遇到災難(失業、生病、市場崩盤)時有足夠的緊急預備金嗎?

🕰️ 老派:這是我最愛的一點。SQLite 不追隨最新潮流,只專注在打造經得起時間考驗的程式碼。想想看:自己是在建立長期資產,還是在隨著潮流奔波、白忙一場?今天關注的熱門話題,在 2050 年時還會有人 care 嗎?

林迪效應的預言

SQLite 的第一版發布於 2000 年 8 月 17 號,已經即將要 25 年了。根據林迪效應(Lindy Effect),一項科技的預期剩餘壽命差不多等於它已經存在的時間長度;既然 SQLite 已經活了 25 年,那麼它再活 25 年到 2050 年的機率應該是相當高的。

額外的溫馨提醒:今天就下載你的社群媒體帳號備份,把重要內容搬到自己的網站上,不要再拖了!否則到了 2050 年,你就只能跟孫子說:「爺爺/奶奶當年的創作都消失在一個叫做 Instagram 的遠古平台上了,呵呵,想當年我還有一萬多個追蹤者呢!」)