首先我承認我不是函數式語言高手,甚至談不上高手。但是我有一點想問那些比較精通函數式語言的人,在提供了相同功能的情況下,函數式語言比起命令式語言有什么優點?
1、更有效率?
這個肯定不好說
2、更符合問題模型?
這個也未必吧。表的遞規和函數表達之類的東西,用函數式語言比較“直觀”。甚至有的時候看著Haskell的代碼會有看見了課本的錯覺。
3、更能幫助你進行模塊化?
我不覺得我看過的函數式語言中提出了什么超越了主流OO語言的模塊化功能。這個需要大家多多指導。
4、更好上手?
至少從人力資源的角度,用haskell用O'caml肯定要進行人員培訓的(國內),而用C多少大家都會一點。
5、相關支持完善?
不少paper是研究語言和編譯原理的,研究想管調試,錯誤處理等周邊支持的paper是很少的。學院派的東西就是這樣的,無法支持工業強度的應用。雖然erlang和lisp幾個是例外,但是既便是這些佼佼者,我看和java和C#還是沒得比的。
6、我承認一點是對個人來說,學習函數式語言來開拓思維是非常好的,可以讓你看看窗外的世界。但是我并沒有看到用函數式語言來寫產品代碼有什么好處。至少維護就是一個麻煩。而且在我看來,除了lisp這樣的語言,很多函數式語言就是歐洲一小撮學院一小群人在玩。我們能在其中看到一些不同的思想,但是僅此而已了。
1、更有效率?
這個肯定不好說
2、更符合問題模型?
這個也未必吧。表的遞規和函數表達之類的東西,用函數式語言比較“直觀”。甚至有的時候看著Haskell的代碼會有看見了課本的錯覺。
3、更能幫助你進行模塊化?
我不覺得我看過的函數式語言中提出了什么超越了主流OO語言的模塊化功能。這個需要大家多多指導。
4、更好上手?
至少從人力資源的角度,用haskell用O'caml肯定要進行人員培訓的(國內),而用C多少大家都會一點。
5、相關支持完善?
不少paper是研究語言和編譯原理的,研究想管調試,錯誤處理等周邊支持的paper是很少的。學院派的東西就是這樣的,無法支持工業強度的應用。雖然erlang和lisp幾個是例外,但是既便是這些佼佼者,我看和java和C#還是沒得比的。
6、我承認一點是對個人來說,學習函數式語言來開拓思維是非常好的,可以讓你看看窗外的世界。但是我并沒有看到用函數式語言來寫產品代碼有什么好處。至少維護就是一個麻煩。而且在我看來,除了lisp這樣的語言,很多函數式語言就是歐洲一小撮學院一小群人在玩。我們能在其中看到一些不同的思想,但是僅此而已了。
浙公網安備 33010602011771號