跳至主要内容

依賴

· 閱讀時間約 4 分鐘

我們每天都在依賴別人的產品和服務:

  • 🍜 想吃一碗烏龍麵時:我們不會從頭去學如何種小麥、磨麵粉、做麵條;我們會直接買現成的麵條來煮,或是去餐廳點一碗。
  • 💊 生病時:我們不會自己研發藥物、進行人體實驗;我們會直接依賴醫生的判斷和藥廠的成果。
  • 🎵 做音樂時:我們也依賴別人發明的樂器、音色庫、記譜法樂理、調律系統和編曲軟體。

寫程式時也是一樣。幾乎沒有人會想要從零開始自己寫所有功能,所以我們會匯入別人已經寫好的函式庫。但問題是,當有太多外部依賴時,程式會變得很肥,還會受制於他人;更糟的是,我們可能會漸漸失去對自己程式運作原理的理解。

不囉唆的節拍器

好幾年前,在好和弦的官網 NiceChord.com 上面,我寫了一個「不囉唆的節拍器」程式。

之前的版本是用 tone.js 這個函式庫做的1,最後完成的程式檔案大小大約 362 KB,看起來已經很小了對吧?但前幾天我用單純的 JavaScript 重做,完全不依賴外部函式庫,結果檔案大小驚人地縮減到只有 2.1 KB──原本的 172 分之一!

現在這個節拍器程式,已經小到可以被放在一個 QR Code 裡面!以下的 QR Code 不是下載連結喔,而是「整個程式」本身!只要掃描它,把內容文字存成 .html 檔就可以直接使用。

(這可能是網路上唯一一個可以印在便條紙上的節拍器了。)

減低依賴

說到減低生活上的依賴,我最愛的例子應該是離開 Evernote 這件事。

我曾經有很長一段時間使用 Evernote 在作筆記,但 Evernote 的依賴超多:

  • 需要使用特定的專有 App 才能編輯筆記
  • 筆記的儲存空間需要每個月持續付費
  • 要同步筆記,需要依賴單一廠商的雲端服務
  • 雲端服務需要依賴持續的網路連線
  • App 本身也需要依賴新版的 macOS 和 Windows 系統運作
  • 而要更新到新版的 macOS 和 Windows,都依賴你擁有特定的硬體或網路帳號

要使用 Evernote 作筆記,我就得要滿足這些依賴性。再加上,如果 Evernote 突然改變介面、大幅漲價,或者最糟的情況──倒閉,我的筆記就像被綁架的人質一樣,付了贖金都不見得拿得回來。

我現在已經改用 Markdown 檔案來做筆記,Markdown 可以被幾乎任何文字編輯器開啟,不依賴任何特定 App 或作業系統,也可以很輕易地配合任何形式的雲端同步服務。

更低依賴性的作法是使用鉛筆和筆記本,這樣的話連電腦和電力都不依賴,永遠都不會遇到系統更新或格式不相容的問題。當然,你得要小心別把咖啡打翻在上面(紙張對液體的相容性仍然有待改進)。

這個網站的依賴性很低

你現在所在的 Wiwi.Blog 網站也不依賴複雜的科技。它只是很單純的靜態網頁,不需要高速的電腦也能流暢瀏覽,甚至連「現代」的瀏覽器都不是必要條件。就算是用超極簡的 Dillo,或者終端機裡的純文字瀏覽器如 w3m,都還是可以順利閱讀內容。

(Wiwi.Blog 在超低科技極簡瀏覽器 Dillo 也可以正常運作)

健康的依賴關係

檢查自己生活和工作中的「依賴鏈」,看看其中是否有環節是被單一公司壟斷的。如果有的話,考慮調整工作方式,或至少準備一套備用方案。這樣當這個脆弱的環節出問題時(它一定會出問題的),我們才不會手忙腳亂。

我們雖然無法避免所有的依賴,但至少可以避免那些「今天不更新就無法使用」的 Apps。謹慎地挑選依賴對象吧!

Footnotes

  1. 它就是一些別人寫好的,讓你在網頁中可以發出聲音的程式碼。
    https://tonejs.github.io/