幽默:函數語言程式設計只是少數人的消遣? - Mike Hadlow
不同的程式設計範例需要不同水平的學習投入。隨著投資水平的提高,您會迅速失去人才。這就是為什麼函數語言程式設計儘管在許多方面都有所改進,但將永遠是少數人的消遣。
這就是為什麼Haskell,F#等永遠不會成為主流語言的原因。也是為什麼Python,Javascript等如此成功的原因,因為它們提供了簡單的命令式入口。
也許更簡單的表述是,您需要他們學習的每個額外概念都會使您損失一半的人才。因此,靜態型別的語言不如動態型別的語言流行。一旦您瞭解了Applicative Functors,您已經損失了99%:D
眾說紛紜:
不同意你的排列順序,我發現(並且仍然發現)OOP比FP難做得多。我發現使用FP可以更自然地進行時間建模。
回覆:我並不是說這些語言哪些“做得更好(或更難)”。我同意你的觀點,我認為FP比OO容易做得好,而OO比Imperative容易做得好。我強調的是,每當您要求他們學習額外的概念時,您就會失去一定數量的人。
我完全不同意FP的投資要求。我的團隊使用Clojure,我們會定期聘請缺乏程式設計經驗的大學合作學生。他們平均在幾周內就可以提高工作效率。
回覆:我的經驗是,困難來自於已經學習命令式/ OO風格的人的現有習慣。一旦有人開發出解決問題的模式,他們就很難放棄這些問題並學習新的問題。
我不同意。如果您是精通C#的開發人員,那麼無論如何您已經在使用許多FP範例,因此,如果要切換到F#,更改思維方式和學習新語法的時間應該不超過1-2周。基於我自己的經驗。
回覆:因此,“如果您是精通C#的開發人員,那麼您已經在使用許多FP範例”。當然,這證明了我的意思,只有在掌握了大部分方法之後,您才打算使用FP語言。對於“熟練的C#開發人員”來說,這是一個很高的標準。
我在兩個層面上不同意:(1)函數語言程式設計已經有些主流了,但還不是純粹而一致的形式。例如,FRP(例如Redux)越來越流行,主流語言已經轉向功能範例(甚至Java也支援lamda函式)。(2)在語言學中,很久以前就一直在爭論哪種語言最容易作為第二語言學習。事實證明,它更多地取決於您的母語,而不是第二語言的屬性。例如,芬蘭語對大多數人來說很難,但對愛沙尼亞人來說卻很容易。
相關文章
- 函數語言程式設計函數程式設計
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- RAC的函數語言程式設計函數程式設計
- 函數語言程式設計,真香函數程式設計
- Java 函數語言程式設計Java函數程式設計
- javascript函數語言程式設計JavaScript函數程式設計
- 初探函數語言程式設計函數程式設計
- 函數語言程式設計初探函數程式設計
- JavaScript 函數語言程式設計JavaScript函數程式設計
- JavaScript中的函數語言程式設計JavaScript函數程式設計
- C++的函數語言程式設計C++函數程式設計
- python的函數語言程式設計Python函數程式設計
- JavaScript 中的函數語言程式設計JavaScript函數程式設計
- 幽默圖:升級到Java 8使用函數語言程式設計以後Java函數程式設計
- 函數語言程式設計雜談函數程式設計
- 初見函數語言程式設計函數程式設計
- JavaScript 函數語言程式設計(二)JavaScript函數程式設計
- 函數語言程式設計前菜函數程式設計
- JavaScript 函數語言程式設計(一)JavaScript函數程式設計
- JavaScript 函數語言程式設計(三)JavaScript函數程式設計
- python函數語言程式設計Python函數程式設計
- JavaScript函數語言程式設計(二)JavaScript函數程式設計
- JavaScript函數語言程式設計(一)JavaScript函數程式設計
- JavaScript函數語言程式設計(三)JavaScript函數程式設計
- 函數語言程式設計初探一函數程式設計
- iOS 與 函數語言程式設計iOS函數程式設計
- 函數語言程式設計簡介函數程式設計
- 函數語言程式設計入門函數程式設計
- C#函數語言程式設計C#函數程式設計
- Swift の 函數語言程式設計Swift函數程式設計
- Scala函式與函數語言程式設計函式函數程式設計
- Java 函數語言程式設計的前生今世Java函數程式設計
- Java8的函數語言程式設計Java函數程式設計
- 我對函數語言程式設計的理解函數程式設計
- Js中函數語言程式設計的理解JS函數程式設計
- 理解函數語言程式設計的本質函數程式設計
- 函數語言程式設計下的Iterator模式函數程式設計模式
- 我眼中的 JavaScript 函數語言程式設計JavaScript函數程式設計