依賴
我們每天都在依賴別人的產品和服務:
- 🍜 想吃一碗烏龍麵時:我們不會從頭去學如何種小麥、磨麵粉、做麵條;我們會直接買現成的麵條來煮,或是去餐廳點一碗。
- 💊 生病時:我們不會自己研發藥物、進行人體實驗;我們會直接依賴醫生的判斷和藥廠的成果。
- 🎵 做音樂時:我們也依賴別人發明的樂器、音色庫、記譜法、樂理、調律系統和編曲軟體。
寫程式時也是一樣。幾乎沒有人會想要從零開始自己寫所有功能,所以我們會匯入別人已經寫好的函式庫。但問題是,當有太多外部依賴時,程式會變得很肥,還會受制於他人;更糟的是,我們可能會漸漸失去對自己程式運作原理的理解。
不囉唆的節拍器
好幾年前,在好和弦的官網 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
-
它就是一些別人寫好的,讓你在網頁中可以發出聲音的程式碼。
https://tonejs.github.io/ ↩