Robert Harper 不支持Haskell 的理由是?
01-28
Modules Matter Most
ML family的module system我不熟悉,所以這點不作評論;Harper認為Haskell的type class機制只是module system的一個受限的個例;Lazy-by-default
這一點。。我部分同意。Haskell的lazy-by-default的語義雖然增加了語言的表達能力,但實際使用中容易造成space leak等各種問題,最後區分strict和non-strict使用會增加程序員思維負擔。Managing side-effects via monads
這一點上他有所讓步;他同意將副作用反映到類型系統里是一件有意義的事情,至於怎樣做,除了Haskell的monadic IO以外,還有其他方法,比如新近的algebraic effect handler,等等。。這一點上沒有太多異議。Cost model
Harper:Haskell怎麼算時間和空間複雜度啊?我(小聲地):我們有deepseq。。這一局算我輸。。Parallelism
Harper:Haskell precludes parallelism, because blah blah blah
我:But GHC *does* support multi-core parallelism! And to my best knowledge, SML/NJ does not...Harper楞一秒,換了話題。。Separate compilation
Harper:Haskell不支持separate compilation,因為blah blah blah因為他太激動,語速太快,所以沒辦法插嘴。。您老人家真的寫過Haskell嗎。。
unsafePerformIO is a necessary evil
這個我的確啞口無言。。======
以上從草稿紙整理得到,不保證完整性和準確性。。
Harper在寫完這個以後憤憤的說了一句,「你們見過的幾乎所有的語言都是這麼設計的,(咽一口氣),除了Haskell」。看起來他對lazy的意見還真挺大的呢╮(╯_╰)╭Bob 嘲諷過的東西有兩個,Dijkstra和除了SML的所有編程語言。
推薦閱讀:
※Haskell 最有代表性的一段程序是什麼?
※國內有哪些公司用Haskell做網站後端的?
※Haskell 有哪些威力十足的庫?
※有沒有比較實用、成熟的 Haskell 應用?