成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么大家都覺得函數式編程將會流行?

原創
開發 后端
函數式編程真的會流行么?有不少開發者,尤其是Web應用開發人員對于函數式編程對他們而言的價值一直心有存疑,而本文將解答為什么函數式編程將成為所有程序員所無法忽視的一道風景。

【51CTO精選譯文】這幾年來,函數式編程似乎忽然紅火了起來,但事實上,函數式編程卻是個已經存在了四十余年但長期只活躍于學術領域而非商業開發領域的一個編程方式。那么,為什么大家會認為函數式編程將流行?有一位從事電子商務Web應用開發的程序員在stackoverflow上提出了自己的疑問,而這個疑問也普遍存在于很多程序員的腦中。讓我們先看看這位程序員是怎樣說的:

51CTO編輯推薦:Scala編程語言專題

jjnguy:

不管什么時候去 stackoverflow 或 reddit 這樣的網站,總會遇到一群 Haskell / Scala / F# 語言的粉絲,頑固地堅持函數式編程將是下一個“大事件”。不可否認,有一些問題的確適合使用函數式編程的方式來解決,但是我過往的經驗告訴我:

◆普通的公司程序員,比如和我一起工作的大多數同事,并不懂函數式編程,并且多數工作環境也不會讓你使用它來編程。

◆實際上,大學不教函數式編程這門課(或者現在大學有這門課?)

◆大多數應用程序足夠簡單,使用普通的面向對象方式就可以解決。

函數式編程真的有必要嗎?或者只不過是一個很酷的玩具?我不是想要貶低它,我只是真的不確定:如果在我的日常工作(編寫電子商務 web 應用程序)中使用函數式編程的幾率接近零,我是否還應該去學習這種編程?
 

而對函數式編程充滿信心的程序員們往往不會默默認同這樣的觀點,而他們大多數也不是第一次遇到這樣的疑問。51CTO編者選取了以下幾個比較有代表性的回答進行了編譯:

#t#joel.neely:

我覺得,對于函數式編程會流行這一話題沒有任何疑問,因為作為一種編程方式,它都用了大約四十年了。面向對象的程序員,每當為了編寫干凈簡潔的代碼而使用了不可變對象時(immutable object),這都是借用了函數式編程的概念。

不過,強制性的函數式編程語言最近這些日子里的確獲得了很多文章的關注,而這些語言是否將主宰未來的編程語言還是一個懸而未決的問題。我自己的推測是,那種混合型、多范式的語言,比如 Scala 或 OCaml ,很可能會超過那些“純正的”函數式語言,正如純正的面向對象語言(Smalltalk、Beta 等):他們影響了主流編程但并未最終成為使用最多的語言。

最后,我要實在忍無可忍地指出,你那些有關函數式編程的評論和不久前我從過程式編程程序員聽到的論述高度相似:

◆“傳說中的”“普通”程序員不懂它。

◆沒有大范圍內教授這種語言。

◆用它編寫的任何程序都可以使用當前的技術完成。

圖像用戶界面和“作為商業模型的代碼”這些概念讓面向對象受到更多好評,同樣,我相信對不可變性的使用逐步增加以及更為簡單的(大規模)并行操作將讓更多程序員看到函數式編程所具有的優點。雖然在過去 50 年左右的時間里(這個時間構成了數字化計算機編程的整個歷史)我們經歷了很多,但我認為仍然有很多東西需要學習。

從今日起,二十年后,程序員回頭再看,看到我們當下所用的那些工具是如此原始,其中包括現在流行的面向對象和函數式編程語言,他們將會大吃一驚。 

Greg Hewgill:

對我來說,主要的加分處在于它固有的并行操作性,尤其是現在更高頻率的CPU正在轉變為更多內核。

我認為,函數式編程不會成為下一個編程范式并完全替代面向對象類型的方式。但我的確認為,如下說法非常正點:我們或者需要使用函數式語言編寫某些代碼,或者那些通用的語言將逐漸包含更多函數式構造。 

stbuton:

即使你在工作中從不會用到函數式語言,理解函數式編程將能夠讓你成為一個更優秀的開發人員。總的來講,對于代碼和編程,它將給予你一個新的視角。

讓我說,沒有理由不去學它。

我認為,那些能夠將函數式和命令式這兩種風格很好地混合在一起的語言將是最有趣的,并且最可能獲得成功。 

Norman Ramsey:

我可以告訴你人們為什么因函數式編程而興奮:很多很多程序員在使用函數式編程時都有一種“信仰改變”的體驗:生產力提升了一倍(或者十倍),而產出的代碼更加容易改寫,bug也更加的少。這些人把函數式編程看作是秘密武器。一個很好的例子是Paul Graham的《Beating the Averages》(擊敗平均值)。而你知道他的應用是什么?電子商務Web應用。

========

我們來總結一下上面這些答案。綜上所述,函數式編程的優勢主要針對兩點:

1. 不可變性(immutability)

2. 并行操作性(parallelism)

這兩個概念其實與編程范式或編程語言無關。比如,Java也有不可變對象,只是需要通過自己編寫實現方法來實現;而并行編程,近日在TechED大會上頻頻露臉的Visual Studio 2010就以并行編程為一大亮點。對于函數式編程在這兩個方面的優勢,我們有現成的論據可以引用。先看看這篇Scala語言的簡介(這篇文章來自《Scala編程》一書,而這本書的聯合作者之一就是Scala創始人)。文中有這樣的一句話:“不可變數據結構是函數式語言的一塊基石。”而這篇《哪種語言將統治多核時代 再看函數式語言特性》一文中,則十分詳細的描述了函數式語言天生的并行操作性:“函數式語言已經在簡化并行開發中證明了它的作用, 這得益于它既不用共享內存,也不會產生副作用(side effect)的函數。”可以說,函數式編程在這兩個方面上的優勢是毫無疑問的。

事實上,這兩個優勢是同進同退的,因為良好的不可變性的使用才能確保不會成為并行操作時性能的瓶頸。而這個優勢的重要性,前面的答案中已經很明顯的給出來了:如今的CPU在增高頻率上已經遇到了瓶頸,多核CPU成為趨勢,因此能夠充分發揮多核性能的應用程序將越來越重要。

技術領域的改變是極快的,因此,“大多數程序員不了解它”或者“沒有大范圍教授這種語言”都是十分無力的論證(比如說,OO編程并非從一開始就流行)。種種發展趨勢都指向了函數式編程,而那些在編程范式上“兼容”的多范式編程(如Scala語言同時支持函數式和命令式的風格,雖然它的使用者很可能最終會傾心于函數式)將必然會流行。

編者一直在推薦Scala編程語言,因為這個基于JVM的多范式編程語言無論怎么看都有很好的發展前景。如果你有Java開發的經驗,那么51CTO的Scala編程語言專題中收集的一系列針對Java程序員的教程文章相信一定會對你有所助益。

做為程序員,沒有理由不去學習任何一門編程相關的技術,更不用說那些很可能會影響到自己未來幾年飯碗的技術。編者一直相信對于一位程序員,沒有“與我無關的語言”或者“與我無關的編程方法”,因為編程有著共通的哲學。沒有哪個優秀的程序員會自稱“Java程序員”,“.NET程序員”,“PHP程序員”。他們的唯一稱呼就是“程序員”。因此,如果你還沒有開始學習函數式編程,那么現在就開始吧。

責任編輯:yangsai 來源: 51CTO.com
相關推薦

2021-03-23 10:08:02

編程互聯網數據科學

2013-07-09 09:43:04

函數式思維函數式編程編程

2023-03-01 11:52:23

RedCap5G

2014-12-23 09:34:47

動態語言

2013-11-26 10:14:15

面向對象函數式

2011-11-08 09:18:42

云計算開源OpenStack

2023-08-28 09:05:46

LinuxJVM開源

2014-01-17 14:39:18

12306 搶票

2019-04-03 15:46:55

中國編程語言

2022-09-02 14:46:45

區塊鏈編程語言開發

2012-04-09 13:35:10

Instagram

2018-12-04 15:12:07

NFV網絡功能虛擬化網絡

2009-09-18 13:39:35

Peter CoopeBeginning R

2023-06-07 19:22:21

2015-06-11 13:47:13

編程語言變成女孩子

2012-06-11 09:07:39

Windows 8微軟

2021-04-14 14:07:36

云計算云原生SaaS

2022-03-09 10:00:00

數字藏品區塊鏈

2013-03-18 09:30:18

Lisp

2024-06-05 09:26:07

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费成人在线网站 | 亚洲男女视频在线观看 | 久久久青草婷婷精品综合日韩 | 热久久999 | 午夜精品久久久久久久久久久久久 | 亚洲精品乱码久久久久v最新版 | 色av一区二区三区 | 男女羞羞视频在线观看 | 久久精品一区二区视频 | 国产欧美日韩综合精品一区二区 | 欧美一区二区三区在线看 | 91天堂网 | 午夜精品一区二区三区在线视 | 天天宗合网 | 99久久婷婷国产综合精品首页 | 日韩欧美三级电影在线观看 | 日韩在线一区二区三区 | 伊人久久大香线 | 在线观看av网站 | 亚洲三级av| 一区二区三区在线播放视频 | 亚洲精品女人久久久 | 日韩欧美一区二区三区四区 | 艹逼网 | 亚洲不卡在线观看 | 羞羞网站免费观看 | 国产精品久久久久久久久久久久久久 | 国产丝袜一区二区三区免费视频 | 日韩欧美手机在线 | 精品一区二区在线观看 | 日日干夜夜操天天操 | 青青草网| 二区三区av | 成人一区二区在线 | av在线一区二区 | 一级全黄少妇性色生活免费看 | 日韩在线观看一区 | 国产精品久久久久久中文字 | 一区二区在线 | 亚洲国产中文字幕 | 黄色一级大片在线免费看产 |