幽默:函數語言程式設計只是少數人的消遣? - Mike Hadlow

banq發表於2019-12-24

不同的程式設計範例需要不同水平的學習投入。隨著投資水平的提高,您會迅速失去人才。這就是為什麼函數語言程式設計儘管在許多方面都有所改進,但將永遠是少數人的消遣。

幽默:函數語言程式設計只是少數人的消遣? - 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)在語言學中,很久以前就一直在爭論哪種語言最容易作為第二語言學習。事實證明,它更多地取決於您的母語,而不是第二語言的屬性。例如,芬蘭語對大多數人來說很難,但對愛沙尼亞人來說卻很容易。

 

相關文章