1. <track id="gwa1g"></track>
  2. <p id="gwa1g"></p>
    <tr id="gwa1g"><label id="gwa1g"></label></tr>
    <pre id="gwa1g"></pre>

    建站技術

    Erlang 二十年,為何在編程語言中占據一席之地?

    點擊次數:    更新時間:2019/7/29 9:27:01  【打印此頁】  【關閉

    1998 年節制支出公布的 Erlang 項目,在環球范圍內僅僅個一小部分人編程語言。按照 TIOBE 最新發布的語言排行榜,Erlang 僅排名在第 65 位,市場份額領有小于 0.1%。但是作為一門函數編程語言,它擁有著強大的并行統治氣力和容錯有機體的構造,輕便好用且易學。最起初,Erlang 之父 Joe Armstrong 編寫的初衷針對的是類似于電話交換機那個樣子的高可用性、高可靠性系統,但后來卻成就了可靠性及 99.9999999% 的目前人世間最攙雜的 ATM 開關!須臾二十載,如今的Erlang 項目依舊煥發著活力,并在技術淘汰中穩穩站住了腳根。那么 Erlang 在這些年中歷經了哪些發展階段?Erlang 說話的見聞門路如何感染了對它的采用?Erlang 及其社區異日的發展方向是怎樣的?......下面就讓咱們一探究竟。聲明:本文已獲作文的人Fred T-H翻譯授權。以下為譯文:大抵在 10 年前,我插手了Erlang社區,其時正值Erlang說話的第一個炒作階段。咱們都被告知,Erlang說話代表著并發性和并行性開發的未來,因為它能夠以最輕松和最快速的方式實現開發。你還可能獲取免費的Erlang分發出承包任務,因為它仍然變成了一個節制支出軟件。在那個年代,一切都開始變得不可思議。虛擬機也剛才獲得了SMP支持,而在此之前,要想確實應用同一臺計算機上的一切CPU,你需要在那臺機器運行多個虛擬機。在這篇著作中,我想先花點時候對這十年的大部分時候作個反思。然后我會介紹極少這期間派生在Erlang上的事情,比方炒作階段對Erlang的影響?Erlang說話的見聞門路為何感染了對它的采用?以及我在Erlang社區的十年中親自發生了甚么奇化?最終,我將商量一下我認為Erlang及其社區的導源方向。炒作段落炒作周期(或技術成熟度曲線)在一個產物或技能的生命周期中引導向一個方向發展了“階段”這個觀點。這是一個營銷觀點,而不是一個知識概念,但是用它來描述事情的發展經常會很有用。而我最感興趣的部分是“炒作段落”,它就像一股派生在編程社區的淘金熱。你可以見過一個或多個如許的炒作階段,通常他們似乎都依傍于某個殺手級應用程序,吸引著每個人蜂擁而至。我能想到的“炒作”的例子有:炒作Ruby on Rails的“如何在 15 分鐘內建立一個博客引擎”的視頻(https://www.youtube.com/embed/Gzj723LkRJY,個中的“看看我無可匹及做的所有體制!”依舊是一句有趣的話),炒作Kubernetes 的“在Kubernetes下任用Go語言”的文章(Kubernetes在此往常仍然有了大量任用,但在那之后恰當進入了一個爆發期)。在某種程度上,對Elixir和Phoenix的炒作或許也可能參加這個名單。在如許的一個炒作段落,大量的新來者蜂擁而至,都想來看看能撈點甚么好處。有些人會留下,但多數人會很快走開。大多數人的延擱時候可能只是幾個月或幾年,能真正地安頓下來而且努力幾十年的人異常少見。絕大多數人都是一些接連不斷的先期采用者,他們從一個技術沖浪到另一個技術,嗅探最好的機會,企圖先實行采用某種聯結而成的結構、語言或工具包,來獲取一定的競爭上風。所以每每的想法是,帶頭你要具有一個真正的殺手級應用程序,然后人們就會涌入你的生態系統。殺手級應用程序會驅動這股人潮,只消你把它構造出來,人們就會蜂擁而至。如果你能留住他們中的小部分并保持他們的活躍度,那么在可能預感的異日,你將會具有一個活躍的社區。這用一種可疑的方式,讓我想起了“雨隨犁至”這個理論:天主加速犁地的速率!@是奇妙的“人類主宰自然”的理論處理,天上的云會分配取之不盡的雨水…而[犁]是讓野蠻變成文化的對象;能把沙漠變成農場或花圃!蛟S更簡潔的表達,就是“雨隨犁至”。這一結論的基本條件是,通過人類的定居和漁業等收獲的成果行徑可以影響天旱和半干旱地區氣候的永久變化,放縱這些地區加上潮潤。這一理論在 19 世紀 70 年代被普遍推廣,作為美國大平原(曾被叫做“美國大沙漠”)墾荒定居的理由。這也被用來證明南澳大利亞在同一時期的邊防土地上小麥種植的勢力是合理的。如果咱們能讓一個大項目連續進行,勃發職員就會露出,而后它就會自我維系下去。我認為這種概念顯然是悖謬的,由于任憑Erlang在其最熱的炒作段落擁有了數十個殺手級應用程序,但是,它的社區依舊維持在很小的范疇。下面,就讓咱們看看在那個時代,Erlang都有哪些殺手級應用程序:ejabberd(出生于 2002 年,第一個結實版式發布于 2005 年):它是迄今為止最具可擴展性的主機吹牛服務器之一(盡管不是之最)。Ejabberd從前是一個巨大的成功,在某種程度上來說目前依舊是。到目前停止,在StackOverflow上依舊能看到關于它的模塊的提問。在 2011 年左右,它衍生出了MongooseIM分支,目前這兩個解決方案仍然處在維護中。CouchDB(2005):是按照CAP定理,用Erlang編寫的第一個流行數據庫,也是當時新潮的多主文檔存儲解決方案之一。雖然目前MongoDB是該領域的王者,但CouchDB在存儲引擎目標仍然有其精神繼承者,最著名的是BarrelDB,它目前還在維護中。RabbitMQ(2007):幾乎霸占一切AMQP市場的一個動靜隊列軟件,它目前仍在用并且很有價格。在流式處事負載目標,它慣常被和Kafka一起接洽,盡管它們具備顯著不同的特點和用例。Facebook Chat(2008):Facebook Chat的初始版本是用Erlang編寫的。由于諸多內部因素,如體系穩定性的過問,和內部C++工程師的強勢地位,以及已經有了C++落實的一套解決方案等等,厥后它用C++全部根據原著進行改編。WhatsApp( 2009 年, 2014 年被收購):在Facebook的聊天系統脫節了Erlang說話后,他們終極購買了WhatsApp這個大家都知道的的只用了 50 個工程師勃發的辦事于 9 億用戶的跨平臺應用程序。它今天仍在使用,事實上,WhatsApp的開發者決策比往常更加深入地關心Erlang和Elixir社區中。Riak(2009):是分布式系統世界映現自己優勢的最好例子之一。Riak是一個確實可靠的分布式鍵值數據庫店,它是Basho Technology公司勃發的一個當前仍在醫療保健體系和另外關鍵基礎設施中運行的NoSQL數據庫產物。在Basho Technology境況財政危急并被迫停業時(這在很大水準上是因為公司背離了信托責任,趕快走向了衰落),Bet365 買下了它的一切知識產權,并典雅地將其開放源代碼,現在Riak數據庫依舊在節制支出世界中運行,盡管它的支持力度和過去最佳的時代比稍微不如。以上提到的殺手級理應步伐,繁多都是在喬·阿姆斯特朗的《Erlang編程》一書問世的時刻露出的。它們建造了一場對Erlang成批采納的完美風暴,同時也為Erlang引誘了大量的旁觀者,甚至對黑客新聞網站都產生了明顯的影響,以至于它強制要求在某整天一切討論都必須是關于Erlang的里頭有機體的構造。然而,喧囂之后,留下來的人很少。我當作,目前的殺手級應用程序的露出和過去相反,它是超出人們想在起先的炒作階段分一杯羹的貪婪。任何應用程序,總有一個弱小的、前期的階段,有杰出的人物嗅出了它技能的有趣之處,決定喜歡它,而且將它構建出來,如果碰勁它成了一個殺手級的應用程序,那么就會進去一個更大的炒作階段。人人都盼望從天上掉餡餅,一個凱旋的故事會造就更進一步的模仿者。另一個多見的外表是“重塑全國”階段,每個人都花時候從頭實現現有的一切,因此你會看到繁多繁多“與語言無關”的文書。但是殺手級的應用程序原形向來就不能夠落實節制支出說話的自我結合。其中一個趣味的結果是,像RabbitMQ和Ejabberd如許的產品,盡管很受歡迎,但其用戶社區比貢獻者社區要大得多。數量很多的公司使用他們的產品,但他們不必然會參與到Erlang社區中來。毫無疑問,部分來源在于Erlang的大多數殺手級應用程序都在專門的基礎設施中:你創造了一個其他人都可能使用的高可靠性黑盒組件,譬如它處事得足夠好,他們就不需要查看盒子里頭。目前好了,幾十個勃發人員已經為數千種其他產品和服務提供了基礎設施。而根據定義,專業化的基礎設施是一個不需要成批職員就可以產生巨大影響的國內。所以它們的貢獻者個體和社區總是比靠近最終產品的個體和社區要小得多。比方,擁有數不清的網頁開發職員的Web勃發聯結而成的結構,或者更通用的基礎設施,都可能把它們用到小規模的部署項目上,因為任何企業都可能看見它們的用途。不過,即使沒有這些身分,也很容易讓人感覺,Erlang錯過了一個偉大的機會,那就是它在炒作段落無可匹及獲得更大的蛋糕份額。知識階梯我不想用諸如“從前可以發生或許理應派生”如許的描述來做反事實推理;ギ,我想挖掘我在Erlang社區多年的傳授和寫作中所見到的常見學習狀態。這些也是我目前正在Elixir社區中看到的模式,我感覺這可能是預示著Elixir可以有著猶如未來的一種跡象。我最鐘愛的一個結論是,像編程語言(及其生態系統)如許的技能重心具有多層復雜性,供給學習和創造各式概念。我頭一回開始表達這種結論是在Learn You Some Erlang的網站上,用一個我稱之為Erlang第九圈的圖表。我認為練習一項技術并不是無休止的憂慮(最少,它不應該如許),這話是否說得有點假心假意,我只是喜歡雙關語。但輕便地說,對任何新技術的學習,通常有一個更“核心”的重心門路或頭緒,這樣就有了“見聞階梯”這樣的物件,在這個知識門路上,越有價格的知識/概念被放得越高,也越難到達,所以實際情況是,到了某一地點或階段越高的地方的人會越來越少。對Erlang來說, 我認為它的“見聞階梯”可能是如許的:函數式編程;斷絕進程和并發性;可靠的并發性(links, monitors, timeouts);OTP舉止狀態和另外體系空洞;如何建立OTP體系;如何建立公布版式并處理其生命周期;如何維持系統始終在線,以及為何運作。如果你是第一次接觸Erlang,并且從一本初學者的書開始練習,你可能會在第一級門路上開銷大量的時候:與函數式編程、不可變性、遞歸和近似的觀點交伴侶。早晚,你會碰撞到并發性和并行性、一段程序的執行過程和動靜傳遞。在那之后,你開始練習links和monitors進程監控,錯誤處理,以及Erlang的里頭有機體的構造。在Erlang的大炒作段落,第二級和第三級門路成了最讓旁觀者驚嘆的賣點。如果你需要學會一些在未來的項目中必備之見聞,那即是個中之一。另外的梯之階級會在在時間上偏后的跟進,特別是OTP(第 4 級階梯),但前提是你努力實現編程這一階梯。OTP被視為Erlang的確實價值所在——并發性和函數式編程恰當不錯,但是OTP代表的普通開發框架是你必須努力和任用的真正特有的東西。很多人同意任用這些聯結而成的結構,精通它們所做的美好的抽象,不過對待為何正確地構建每件體制可能會知到有點疑心。根據客觀事實來說,像Ejabberd如許的應用程序的大部分開發幾乎沒有打破第四級門路。當時的生態系統有點像蠻荒的西部,對待愛立信的員工和最有動力的自學者來說, OTP知識也就是那末一回事。大多數人只有在有值得投身生產的東西露出問題、并且想尋求更好的辦理方法時,才有可以到達第五級。直到 2015 年或 2016 年,當Relx的露出開始讓整個刊行體味變得更易時,第 6 級才被側重。第 7 級幾乎從未到達,事實上,很多人都感覺不理應熱升班一個節點,理想情況下,你也不會在臨盆情況中任用SSH命令行進行調試操作。在試驗中,并非每個人都會根據一樣的順序來練習所有這些知識,有的書會顛倒它們的次序(這讓我想到了Erlang and OTP in Action這本書)。我感覺這些次序都不是題目,“門路”用在這里僅僅為了注釋題目。社區波浪式向前導源。炒作段落會使一個社區的規模增加十倍乃至百倍,大多數人會奇怪地看一眼而后走開,所以一個社區中的大多數用戶傾向于延擱在第一個梯級。少部門人會到達高一級門路,更少部門的人會到達更高一級,依此類推,直到你具有到達最高階梯的內部行家圈為止。對于Erlang來說,我當作前三個梯級可以是最容易到達的。第四個門路花了幾年的時間來勃發,終極被認為是有價格的。第五個階梯非常攙雜。Erlang欠缺對象和生態系統,Erlang社區留下來的都是親自挑剔的,同意容忍這種貧乏環境的人,因此對新來者的絕境不敏銳。為著一定的目的保持這篇著作簡潔(好吧,長而不是荒謬的長),我就不在此贅述了。在任何情況下,譬如你是一個Elixir的用戶,你可能會看到你在這個硬性界說的階梯上的位置,你可以感覺到一個社區中的派系每每都在那里。很多人,可以他們僅僅在Phoenix上做得很好,很少能打破第四門路,而且在可預見的將來,他們中的許多會一直停留在第三階梯或如下。在許多情況下,這些情景都是對的。這邊咱們僅僅觀賞,不作辨別。行為一個穿越了繁多見聞門路的人(可以在這類情況中,我的頭上另有一些知識門路,譬如“修補虛擬機”之類的),他們坊鑣錯過了很多見聞階梯,但直爽地說,那些物件對他們可以永遠不會有效。但一切這些都是說:行為一個社區,咱們可能會讓人們很難突出根基水平,從而放縱咱們親自陷入困境。履歷教訓的學習是不可能一蹴而就的,在某種程度上,Erlang社區是盲人在引誘瞽者,因為它真實太小了,無可匹及足夠的人來分享所有需要的經驗。今天的情形比較隨便,如果你在一個炒作的周期之外,你很可能會找到好的幫助,由于很少有人同時提出具體愿望或條件所有的幫助。我想抒發的是,如果明天Erlang有第二個炒作階段,我們會比上一個炒作段落出來得更好。希望這些經驗,加之Erlang和Elixir社區之間更好的協同,讓我們才能接觸到更進一步的受眾,讓咱們凱旋的時機加倍。


    本文鏈接:http://www.yizheng.net.cn/content/?501.html
    上一條:腹地與環球網頁設計:為何碰撞到正確的受眾?    下一條:百度近期算法調整,“未能抓取成功”不收錄怎么辦?

     

    欧美va在线高清天天看,超碰天天做天天爱,天天影视涩香欲综合网迷情校园,天天射综合影视