Erlang/Elixir 对象设计的重用性,Joe Armstrong (Erlang 發明人)

chenge · March 30, 2014 · 2585 hits

物件導向與函數式程式設計

Joe Armstrong (Erlang 發明人) 在“Coders At work”談論過物件導向程式設計的重用性:

“我認為缺少重用性是物件導向語言造成的,而不是函數式語言。物件導向語言的問題是,它們帶著語言執行環境的所有隱含資訊四處亂竄。你想要的是香蕉,但看到的卻是香蕉拿在大猩猩手裡,而大猩猩的後面是整個叢林”

公平點說,我的看法是這不是物件導向程式設計的本質問題。你可以寫出函數式的物件導向程式,但確定的是:

  • 典型的 OOP 傾向強調改變物件的狀態。
  • 典型的 OOP 傾向層與層之間緊密的耦合。
  • 典型的 OOP 將同一性 (identity) 與狀態的概念搞混了。
  • 資料與程式碼的混合物,導致了概念與實際的問題產生。

Rich Hickey,Clojure 的發明人(一個給 JVM 用的函數式 Lisp 方言),在這場出色的演講裡談論了狀態、數值以及同一性。

Ruby 函數式程式設計 by Arnau Sanchez

No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.