国产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ā)的應(yīng)用程序

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。

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

Erlang :函數(shù)式思想、基礎(chǔ)設(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應(yīng)用,通常會這么來構(gòu)建:


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

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

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

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


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


在服務(wù)器端:

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

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

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

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


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

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


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

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

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


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

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

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

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


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

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ā)布,本平臺僅提供信息存儲服務(wù)。

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)推薦
熱點推薦
李湘前夫李厚霖被刑拘,被抓原因曝光,與秦海璐多個女星談過戀愛

李湘前夫李厚霖被刑拘,被抓原因曝光,與秦海璐多個女星談過戀愛

寒士之言本尊
2025-12-22 13:22:18
2026元旦起,60歲以上憑身份證享所有優(yōu)待!老年證不用辦了

2026元旦起,60歲以上憑身份證享所有優(yōu)待!老年證不用辦了

復轉(zhuǎn)這些年
2025-12-24 00:09:02
8人墜塘幼兒園園長死前照流出,丈夫已被控制,閨蜜披露大量隱情

8人墜塘幼兒園園長死前照流出,丈夫已被控制,閨蜜披露大量隱情

博士觀察
2025-12-24 22:10:31
地下捐精有多亂!女的被約到賓館,捐精者:直接懷孕只收800元

地下捐精有多亂!女的被約到賓館,捐精者:直接懷孕只收800元

雍親王府
2025-11-14 14:50:03
德雷克海峽:地球上最兇險的航道,為何連現(xiàn)代巨輪都不敢掉以輕心

德雷克海峽:地球上最兇險的航道,為何連現(xiàn)代巨輪都不敢掉以輕心

半解智士
2025-12-23 21:43:57
張?zhí)m一家過冬至!汪小菲滿臉煩躁太尷尬,馬筱梅去臺北產(chǎn)子選對了

張?zhí)m一家過冬至!汪小菲滿臉煩躁太尷尬,馬筱梅去臺北產(chǎn)子選對了

心靜物娛
2025-12-23 09:59:47
正在逐漸找到自己的位置,快船鋒線新援的作用也是越來越明顯了?

正在逐漸找到自己的位置,快船鋒線新援的作用也是越來越明顯了?

稻谷與小麥
2025-12-25 00:06:33
羅馬諾丨通過體檢,將身披9號

羅馬諾丨通過體檢,將身披9號

米蘭圈
2025-12-24 09:13:00
當下收臺灣不是最重要的,只要俄羅斯不敗,中國將迎百年大變局。

當下收臺灣不是最重要的,只要俄羅斯不敗,中國將迎百年大變局。

百態(tài)人間
2025-11-29 16:34:45
守護光明,獻給所有人的“光之圣誕樹”:致敬烏克蘭電力工作者

守護光明,獻給所有人的“光之圣誕樹”:致敬烏克蘭電力工作者

鷹眼Defence
2025-12-24 16:27:36
剛剛,浙江下大雪了!這里已經(jīng)白茫茫,越下越大

剛剛,浙江下大雪了!這里已經(jīng)白茫茫,越下越大

臺州交通廣播
2025-12-24 22:44:52
亮相南京,錢天一正式上任,亮相新崗位,正牌男友曝光

亮相南京,錢天一正式上任,亮相新崗位,正牌男友曝光

樂聊球
2025-12-24 11:11:39
慘烈!俄羅斯許多精銳部隊建制被打殘,只剩下一面團旗

慘烈!俄羅斯許多精銳部隊建制被打殘,只剩下一面團旗

娛宙觀
2025-11-29 14:44:29
摔跤模特被仙姑針對了?賈乃亮賣假貨被停播?紀凌塵嘲諷闞清子孩子夭折?孫丞瀟金莎求婚?姨太問答

摔跤模特被仙姑針對了?賈乃亮賣假貨被停播?紀凌塵嘲諷闞清子孩子夭折?孫丞瀟金莎求婚?姨太問答

毒舌扒姨太
2025-12-24 22:51:24
中共中央紀委印發(fā)《關(guān)于做好2026年元旦春節(jié)期間正風肅紀工作的通知》

中共中央紀委印發(fā)《關(guān)于做好2026年元旦春節(jié)期間正風肅紀工作的通知》

新京報
2025-12-24 16:09:07
除了演員,他還是年收55億公司的CEO!

除了演員,他還是年收55億公司的CEO!

章眽八卦
2025-12-24 13:23:28
中央組織部決定:王子超履新

中央組織部決定:王子超履新

上觀新聞
2025-12-24 12:42:07
劉亦菲在家玩自拍!不料被鏡子“出賣”了,網(wǎng)友直呼:好女人啊!

劉亦菲在家玩自拍!不料被鏡子“出賣”了,網(wǎng)友直呼:好女人??!

小欣欣聊體育
2025-12-18 20:44:37
黎筍之子黎堅誠坦言:父親選擇同中國開戰(zhàn),是其畢生最大的失策

黎筍之子黎堅誠坦言:父親選擇同中國開戰(zhàn),是其畢生最大的失策

磊子講史
2025-12-24 11:04:05
做婆婆最大的悲哀,不是兒不孝,而是做了兩件事

做婆婆最大的悲哀,不是兒不孝,而是做了兩件事

游戲收藏指南
2025-12-25 01:08:40
2025-12-25 02:00:49
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術(shù)文章
211文章數(shù) 599關(guān)注度
往期回顧 全部

科技要聞

智譜和MiniMax拿出了“血淋淋”的賬本

頭條要聞

幼兒園8人遇難學生家屬:女兒4歲 今年9月才入讀

頭條要聞

幼兒園8人遇難學生家屬:女兒4歲 今年9月才入讀

體育要聞

26歲廣西球王,在質(zhì)疑聲中成為本土得分王

娛樂要聞

懷孕增重30斤!闞清子驚傳誕一女夭折?

財經(jīng)要聞

北京進一步放松限購 滬深是否會跟進?

汽車要聞

“運動版庫里南”一月份亮相???或命名極氪9S

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

時尚
家居
本地
教育
軍事航空

對不起周柯宇,是陳靖可先來的

家居要聞

法式大平層 智能家居添彩

本地新聞

云游安徽|一川江水潤安慶,一塔一戲一城史

教育要聞

掏空家底全力托舉子女,這是父母最大的悲哀

軍事要聞

軍事專家:"特朗普級"戰(zhàn)艦設(shè)計疑大量借鑒中國055大驅(qū)

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