簡潔性是種優點,但很遺憾複雜性賣得更好
為什麼複雜性賣得更好?
複雜性象徵精通
複雜性象徵更多功能
「複雜性偏誤」:我們給予複雜的想法和系統過多讚譽,並偏好它們,而非較簡單的方案
為什麼簡潔性是種優點?
簡單系統的營運成本較低
獎勵複雜性有什麼問題?
這會讓人們把事情不必要地變得複雜
人們會為了回報而玩弄制度,最簡單的解法反而被棄置一旁
複雜性會滋生更多複雜性,最後使系統變得無法維護
這會助長「非我發明不可」的心態
不幸的是,多數升遷制度都過度強調成果的複雜性
機器學習論文投稿也是如此
我們應該如何看待複雜性?
目標:用盡可能簡單的解法,解決複雜的問題
與其關注解法本身的複雜度,不如關注問題的複雜度
與其打造一個包山包海的複雜解法,不如考慮多個聚焦的解法
一條龍方案會比想像更不靈活和難以複用,容易高度耦合、需要更多協調來規劃和移轉 單一用途的系統更容易運作──容易在必要時被淘汰
值得為複雜性付出代價嗎?
問問你自己,承擔複雜性的成本後,這樣真的值得嗎?
補充
有些問題本質上就很複雜,存在著無法消除的必要複雜性
沒有持續成長的函式庫,常被認為是「死掉的」,人們會轉向更活躍的套件
這同樣是複雜性偏誤的症狀
我們必須小心,不要助長任何一邊的偏誤