我寫軟體的時間越長,我對「令人印象深刻」的定義就越發改變。如今真正讓我驚嘆的不是現代技術,而是那些古老的系統——以及建造它們的人。
以 Windows 95 為例。這是一款近 30 年前的完整作業系統。它擁有圖形使用者介面、驅動程式、多工處理、多媒體、進程和執行緒管理等功能。所有這些功能都只佔用磁碟上大約 50 MB 的空間,並且只需要 4-8 MB 的記憶體即可執行。
現在對比一下今天的情況。我用來輸入這段文字的瀏覽器標籤頁目前佔用了超過1GB的記憶體。我沒有編譯任何東西,也沒有渲染影片,我只是在編輯文字。
光是這個數字就足以讓 1980 年代的工程師感到震驚——他們當年在只有 2MB 記憶體和 20MB 硬碟的機器上執行完整的多用戶 Unix 環境。整個開發工作流程——編輯器、編譯器、網路、使用者——都能夠在如今看來幾乎不可能的限制條件下運作。
如今,即使是微不足道的小事也讓人感覺負擔沉重。啟動虛擬環境後,一個簡單的「Hello, World」程式就可能在實際邏輯運作之前就載入數十兆位元組的庫檔案。這並非因為問題本身複雜,而是因為圍繞它所建構的生態系統過於複雜。

正在消失的學科
令我驚訝的並非硬體速度的提升,這本是必然的。真正令我驚訝的是,物質的富足改變了我們的行為。我們失去了軟體使用方面的禮儀。
資源稀缺的限制曾經促成了不成文的行為準則:
記憶彌足珍貴-你會自覺地收拾自己的東西。
每一次循環都至關重要——循環前都要深思熟慮。
依賴關係是靠實力贏得的-你不會為了瑣碎的任務而引入函式庫。
抽象概念很容易理解——你知道底層發生了什麼事。
舊系統並非神奇,而是受限的──正是這種限制迫使人們自律。我們為了便利而放棄了這種自律。
職業悖論
接下來才是真正令人痛苦的地方:現在的製度獎勵浪費。

如果你不使用執行時會消耗資源(和現金)的大量函式庫、雲端 SDK 和抽象層,你就有可能被不在乎這些的開發者 B 搶走。開發者 B 是「交付者」-他們交付速度快,後果什麼的根本不管!
各項指標都對精湛的工藝不利:
速度 > 效率
已發布功能 > 資源消耗
上市時間 > 技術債考慮
框架熟悉度 > 基本原理理解
我們創造了一個這樣的世界:最「高效」的開發者往往是那些不斷堆砌抽象、依賴,直到整個結構變得臃腫不堪,以至於需要升級硬體才能維持效能,並推高雲端成本的人。

缺乏禮貌的代價
這不僅是懷舊的問題,其後果是真實存在的:
環境影響:我們消耗大量電力來執行低效率的軟體,而這些軟體只能完成一些簡單的任務。
無障礙功能受損:需要最新硬體的軟體會將使用舊裝置的使用者排除在外。
安全脆弱性:層層依賴關係造成了我們無法理解的攻擊面。
創新停滯:當我們所有的精力都用於維持臃腫的現狀時,我們幾乎沒有剩餘的精力來進行真正的突破。
在2MB記憶體的PDP-11處理器上編寫C++的工程師們不僅才華橫溢,而且考慮周全。他們顧及硬體、後續程式設計師以及用戶的資源。這種周全考慮正是他們的職業道德。
重新學習禮儀
是的,我們正在喪失禮貌。但禮貌是可以重新學習的。它始於一些小小的體貼之舉:
質疑依賴關係:“對於一個簡單的任務,我真的需要這個 50 MB 的庫嗎?”
持續進行程式碼分析:了解你的程式碼實際上執行了什麼,而不是你認為它執行了什麼。
深入理解一層:了解你的抽象思維之下究竟發生了什麼
倡導效率至上:將性能視為功能,而不是事後考慮。
最令人印象深刻的軟體並非消耗最多資源的軟體,而是以最少的資源實現最大功能的軟體。這種嚴謹的態度、這種周全的考慮、這種對機器和使用者的專業禮儀——正是我們需要重新拾起的。
歸根究底,軟體開發不僅是讓電腦執行任務,它還關乎我們如何在資源有限的世界中生存。而事實證明,良好的禮儀在程式碼中與在生活中一樣重要。
原文出處:https://dev.to/adiozdaniel/are-we-losing-our-manners-in-software-development-1c55