国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

巴西都發(fā)明兩門流行的編程語言了!

0
分享至

1993年,巴西里約熱內(nèi)盧天主教大學的三個老師發(fā)明了Lua。


Lua以其簡單性、小尺寸和可移植性,成為嵌入式編程語言之王。

除了游戲這個主戰(zhàn)場之外,Lua還入侵了各種軟件(TeX排版,Neovim,Nginx......),各種硬件(三星的電視、思科的路由器、TI的計算器,羅技的鍵盤......)

Lua的故事可以移步我這篇文章《》

20年后,巴西人José Valim又發(fā)明了一個編程語言Elixir。


這個編程語言知道的人不太多,但是很多著名公司都在使用它。


Elixir特別適合開發(fā)分布式、可擴展的、高并發(fā)的應用程序。

Discord的CTO在2017年的一篇文章中說道:

Discord 就是 Elixir 的早期采用者, Erlang VM 是我們想要構(gòu)建的高并發(fā)實時系統(tǒng)的完美候選者,過去兩年,系統(tǒng)中的并發(fā)用戶數(shù)已達到近 500 萬,每秒有數(shù)百萬個事件......

如果讓我從頭再選擇一次的話,我還會選擇Elixir。

在Stackoverflow 2021年的報告中,在38種編程語言中,Elixir是收入排行第三的編程語言。

1

Elixir的作者是José Valim(下文簡稱何塞),本科在巴西圣保羅大學讀電氣工程,后來在意大利都靈理工大學拿到碩士學位。


在意大利時他遇到了現(xiàn)在的波蘭妻子,然后搬到了波蘭。

在發(fā)明Elixir之前,何塞已經(jīng)是著名Web框架Ruby on Rails團隊的核心成員。


可惜的是Ruby語言在并發(fā),多核的表現(xiàn)不咋滴,沒有解決并發(fā)問題的適當工具。

這讓何塞有點沮喪,他不斷研究其他解決方案,直到有一天,它發(fā)現(xiàn)了Erlang虛擬機。

Erlang虛擬機已經(jīng)解決了高并發(fā)和分布式的問題,為什么不把Ruby移植上去呢?

但是Ruby的思想和概念和Erlang格格不入,沒法子的何塞最終決定:發(fā)明一門新的編程語言Elixir。

在設計上,何塞借鑒了Erlang,Clojure和Ruby的思想。

Erlang :函數(shù)式思想、基礎設施

Ruby:優(yōu)雅的語法、標準庫、命名方式

Clojure :基于協(xié)議的多態(tài)實現(xiàn)

大家可能覺得一個大牛發(fā)明一門新語言是很容易的,其實并非如此。

何塞并不是科班出身,也缺乏編譯器的知識,也得從頭學詞法分析,語法分析......

他看了幾本經(jīng)典編譯書籍如龍書,更關(guān)鍵的是閱讀了Erlang、Ruby、JavaScript等語言的解析器源代碼,然后才開始動手。

即使如此,何塞依然步履維艱,他的第一個Elixir原型非常糟糕,就像迷失在了山洞中的原始人,到處探索。

等到第一個版本發(fā)布,已經(jīng)是兩年以后了。

一門新語言出現(xiàn)以后,如果獲得眾人關(guān)注是最難的一步。

在這一點上,何塞充分學習了Rails創(chuàng)始人DHH的營銷能力。

何塞開始走出去,在各種活動上宣傳Elixir,接受各種采訪介紹Elixir,寫各種文章為Elixir造勢。

提到Elixir,就不能不提Web框架Phoenix。

他們像當年的Rails一樣,錄制了一個視頻:在15分鐘內(nèi)克隆一個Twitter


這個視頻引發(fā)了不小的關(guān)注度,成功地引發(fā)了對Elixir和Phoenix的討論,吸引了更多人來使用Elixir。

2

說到這里,可能大家會問:這個Elixir到底有什么神奇之處呢?

一般來說,我們要開發(fā)一個交互很強的Web應用,通常會這么來構(gòu)建:


在前端有各種框架和類庫,如React,Vue等,在瀏覽器端處理:

1.數(shù)據(jù)模型,2.控制邏輯,3.視圖模板

后端主要提供數(shù)據(jù)接口,前端的JavaScript負責展示和邏輯。

讓人吃驚的是:使用Phoenix的LiveView,這三個東西都被放到了服務器端,實現(xiàn)了服務器端的渲染。


猛一看,這很難理解,舉個簡單的例子,我們現(xiàn)在需要實現(xiàn)一個計數(shù)器應用:


在服務器端:

數(shù)據(jù)模型:就是那個Count數(shù)字。

客戶邏輯:就是一些函數(shù),來處理事件,事件是“增加按鈕被點擊”(increment event)或者“減少按鈕被點擊” (decrement event)

視圖模板:用來渲染這個簡單的界面

當用戶點擊“增加”按鈕時,一個事件(increment event)通過websocket發(fā)給服務器端。


服務器端收到后,調(diào)用服務器端的相關(guān)函數(shù),修改數(shù)據(jù)模型,給count加一,然后渲染新視圖,再發(fā)給瀏覽器。

瀏覽器收到新數(shù)據(jù),就會展示出來:


當然,服務器肯定不會把所有的視圖都發(fā)回給瀏覽器,它會做優(yōu)化,使用狀態(tài)跟蹤,diff算法,從而發(fā)送最少的數(shù)據(jù)

在這個例子中,只需要告訴瀏覽器,那個count的值變了,僅僅更新這個值就可以了。

你可能覺得這種處理方式非常瘋狂:對每個用戶都保存這么多信息,用戶多了該怎么辦。吭趺磾U展啊?


這就要涉及到Elixir的關(guān)鍵了,和其他編程語言不同,Elixir的process(如圖中的Live View Process)并不是操作系統(tǒng)的進程(Process)或者線程(Thread)!

Elixir的process是非常輕量級的,在單臺服務器上可以幾十萬,甚至上百萬個process。

這也正是Erlang平臺的優(yōu)勢所在!

使用Phoenix的LiveView,在代碼復雜度不高的情況下,就實現(xiàn)了媲美單頁應用良好的用戶體驗,可以說是非常漂亮。


所以發(fā)明人何塞說:Elixir非常適合開發(fā)一切運行在socket上應用!

3

上世紀90年代,你寫一段代碼,放在那里什么也不做,兩年以后,新的硬件就會讓它的性能提升一倍。

現(xiàn)在摩爾定律失效了,CPU走向了多核,系統(tǒng)走向了分布式。

多核和分布式讓編程變得非常麻煩,但是Elixir用函數(shù)式編程的不變性和Erlang平臺正好解決了這兩個問題。

如果你也有類似的需求,強烈建議關(guān)注下這門獨特的編程語言,它也許就是幫助你擊敗競爭對手的秘密武器。

全文完,覺得不錯的話點個贊或者在看吧!

參考資料:

https://www.youtube.com/watch?v=U_Pe8Ru06fM (本文 中LiveView例子的來源 )
https://www.youtube.com/watch?v=lxYFOM3UJzo

https://www.youtube.com/watch?v=IZvpKhA6t8A

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點推薦
談判桌上國民黨掏出一張地圖要劃江而治,林彪掃了一眼,冷冷甩出一句話,讓對面徹底死心

談判桌上國民黨掏出一張地圖要劃江而治,林彪掃了一眼,冷冷甩出一句話,讓對面徹底死心

源溯歷史
2026-01-06 18:36:13
1948年,王耀武吃了宋美齡親自做的一頓飯,轉(zhuǎn)頭告誡妻子:去香港,千萬別去臺灣!

1948年,王耀武吃了宋美齡親自做的一頓飯,轉(zhuǎn)頭告誡妻子:去香港,千萬別去臺灣!

源溯歷史
2026-01-07 20:20:13
一條新聞消失了

一條新聞消失了

深藍財經(jīng)
2026-01-07 14:22:05
廣州小學生被抽血事件:告訴爸媽就扣小紅花

廣州小學生被抽血事件:告訴爸媽就扣小紅花

每日一見
2026-01-02 12:21:28
38歲技術(shù)總監(jiān)被辭僅得7萬,秒退所有工作群,次日231個未接來電

38歲技術(shù)總監(jiān)被辭僅得7萬,秒退所有工作群,次日231個未接來電

磊子講史
2025-06-21 14:14:16
冷空氣馬上到,廣東最低-4℃!寒潮帽子這樣戴,護好腦血管

冷空氣馬上到,廣東最低-4℃!寒潮帽子這樣戴,護好腦血管

城事特搜
2026-01-07 19:25:53
有人預測:從2026年開始,存款超過50萬以上家庭,會面對三大問題

有人預測:從2026年開始,存款超過50萬以上家庭,會面對三大問題

蜉蝣說
2025-12-31 11:03:55
最后33秒威少一攻一防,就是詹姆斯趕走他的真正原因!錯怪詹皇了

最后33秒威少一攻一防,就是詹姆斯趕走他的真正原因!錯怪詹皇了

嘴炮體壇
2026-01-07 16:00:20
礦泉水標簽使用高度相似20元人民幣圖案?網(wǎng)友:“簡直一模一樣!”官方回應:正在進一步研判是否違規(guī)

礦泉水標簽使用高度相似20元人民幣圖案?網(wǎng)友:“簡直一模一樣!”官方回應:正在進一步研判是否違規(guī)

閃電新聞
2026-01-06 17:23:52
太給力了!郴州一工廠員工聚餐抽獎,獎金168000元,設1143個名額

太給力了!郴州一工廠員工聚餐抽獎,獎金168000元,設1143個名額

火山詩話
2026-01-07 11:06:32
半程落后榜首10分!曝62歲穆帥將連續(xù)3年被解雇 阿莫林或取而代之

半程落后榜首10分!曝62歲穆帥將連續(xù)3年被解雇 阿莫林或取而代之

風過鄉(xiāng)
2026-01-07 08:11:54
12.8萬億天量提前還貸!老百姓扛不住, 樓市救市, 這次真要來了?

12.8萬億天量提前還貸!老百姓扛不住, 樓市救市, 這次真要來了?

蜉蝣說
2026-01-05 15:00:34
美國宣布已扣押“貝拉1”號油輪

美國宣布已扣押“貝拉1”號油輪

澎湃新聞
2026-01-07 22:29:06
WTT冠軍賽:首場大爆冷!奧運亞軍1:3被淘汰,不敵日本男單選手

WTT冠軍賽:首場大爆冷!奧運亞軍1:3被淘汰,不敵日本男單選手

國乒二三事
2026-01-07 20:15:08
蘋果iOS 26.3今天推送:更新后關(guān)閉6個設置,系統(tǒng)流暢度提高10%

蘋果iOS 26.3今天推送:更新后關(guān)閉6個設置,系統(tǒng)流暢度提高10%

小柱解說游戲
2026-01-07 13:22:01
風向不對!網(wǎng)上現(xiàn)大量“美國只斬首,不傷平民”言論,值得警惕

風向不對!網(wǎng)上現(xiàn)大量“美國只斬首,不傷平民”言論,值得警惕

消失的電波
2026-01-06 14:11:46
遲到的父愛也是愛,成龍向女兒拋橄欖枝,吳卓林回應已回香港創(chuàng)業(yè)

遲到的父愛也是愛,成龍向女兒拋橄欖枝,吳卓林回應已回香港創(chuàng)業(yè)

青史樓蘭
2026-01-07 09:35:21
這下麻煩大了!不到48小時,閆學晶再迎2大噩耗,何慶魁也被牽連

這下麻煩大了!不到48小時,閆學晶再迎2大噩耗,何慶魁也被牽連

阿纂看事
2026-01-07 12:16:27
全球首款可量產(chǎn)全固態(tài)電池發(fā)布,充電一分鐘可續(xù)航60公里,已有摩托車采用

全球首款可量產(chǎn)全固態(tài)電池發(fā)布,充電一分鐘可續(xù)航60公里,已有摩托車采用

紅星資本局
2026-01-06 19:14:11
一直在重建的曼聯(lián):主教練“死局”,從買C羅回來賣球衣開始

一直在重建的曼聯(lián):主教練“死局”,從買C羅回來賣球衣開始

中場陰謀家
2026-01-07 22:42:52
2026-01-08 00:55:00
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術(shù)文章
216文章數(shù) 605關(guān)注度
往期回顧 全部

科技要聞

精華!黃仁勛CES記者會:揭秘新款大殺器

頭條要聞

委向美移交5000萬桶原油有部分原本銷往中國 中方回應

頭條要聞

委向美移交5000萬桶原油有部分原本銷往中國 中方回應

體育要聞

賣水果、搬磚的小伙,與哈蘭德爭英超金靴

娛樂要聞

《馬背搖籃》首播,革命的樂觀主義故事

財經(jīng)要聞

農(nóng)大教授科普:無需過度擔憂蔬菜農(nóng)殘

汽車要聞

燃油駕趣+智能電感雙Buff 試駕全新奧迪Q5L

態(tài)度原創(chuàng)

旅游
游戲
手機
本地
公開課

旅游要聞

嗨到凌晨3點!仙游一網(wǎng)紅夜市即將啟用!0成本即可當老板...

網(wǎng)友驚呆了!《美末2》艾莉孩子竟是美女動捕制作的

手機要聞

曝Galaxy S26系列2月25日發(fā)布,不會漲價!

本地新聞

“閩東利劍·惠民安商”高效執(zhí)行專項行動

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關(guān)懷版