如何理解《黑客與畫家》中的格林斯潘第十定律?

時間 2021-05-07 23:13:27

1樓:Angry Bugs

我的理解是:

任何足夠複雜的系統都會變成乙個通用系統,幷包含乙個用於配置的 DSL。

我把這個稱為「Angry Bugs 第一定律」。和格林斯潘第十定律的區別在於:

任何系統都會有這種演化趨勢,不在於是不是 C 寫的,Python 或者 Lisp 寫的也一樣。

包含的 DSL 不一定是 Lisp。Lisp 可以很好地充當 DSL,但是現實情況是 Yaml 或者 Json 更多一些。Yaml 和 Json 其實也是不夠動態的,所以會有 Jsonnet 和 Cue 這種更加動態的配置語言被發明出來。

系統中包含的 DSL 不一定是「臨時特設的、不合規範的、充滿程式錯誤的、執行速度很慢的」。DSL 也很可能實現地很優雅。只要我們通過規範的形式定義這種 DSL,這個問題一般來說是比較 clean room 的。

任何系統在開始的時候可能都是作為解決某項特定任務的程式出現的,如果在發展的過程中還有同型別的任務需要執行的話,那麼:

第一步,人們會傾向於在這個系統上不斷改進,並把有不同引數的地方留出配置的介面,也就是系統的可配置化;

第二步,單純的配置已經不能表達一些特定的邏輯,於是還是有了一些條件或者迴圈之類的控制語句,最終成了乙個完整的 DSL。雖然這個 DSL 的表現形式可能依然是 Yaml 等圖靈不完備的東西,但是實際上這個 Yaml 所表達的可能是乙個解析後的 AST 的形式。既然實際上 Lisp 本身也是語法樹的一種表現形式,那實際上基本是等價的。

現實世界的乙個很好的例子就是 kubernetes。

如何評價《黑客與畫家》?

黑客與畫家其中有些關於畫畫的言論是錯的,比如畫彩色畫的顏色比例是靠感覺的,而不是靠科學研究去分配比例的 他上面好像說顏料可以做科學研究的 其中最重要的思想還是跨界,因為現在很多行業都是相關聯的,比如網際網路 一切,你只做網際網路 只會程式設計 不關注其他行業 不關注業務是沒有大發展的,技術本身是為人...

有哪些類似《黑客與畫家》 《禪與電單車維修藝術》的哲學通俗讀物?

思淳t 僧侶與哲學家 藏傳僧侶與法國哲學家,父子在喜瑪拉雅山中關於佛教 哲學 生命意義及宇宙萬物的心靈對談 程式設計之道 豆瓣 邏輯的引擎 豆瓣 科技史相關 科技想要什麼 豆瓣 技術元素 豆瓣 失控 豆瓣 科學與偽科學 複雜科學等 對偽心理學說不 豆瓣 黑天鵝 豆瓣 複雜 豆瓣 演化論 槍炮 病菌與...

如何看待畫家與鞋匠的故事?

山藥菌 一 文中畫家把畫擺在街口公開徵求意見,他接受並修改了鞋匠提出的問題,目的只不過是讓自己的畫更 像 罷了。而畫畫的人都清楚,把畫畫得像,是很淺的追求了。按照這個邏輯試想一下 1 來一位服裝設計師 你這款式太舊了,今年流行白村衫配窄腿褲。畫家要改嗎?2 來一位髮型師 耳朵都被擋住了,一點都不精神...