個(gè)人建議學(xué)習(xí)Golang,主要原因如下:
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、鎮(zhèn)賚網(wǎng)站維護(hù)、網(wǎng)站推廣。
Erlang的硬傷在于代碼的可讀性、表現(xiàn)力。為什么說(shuō)是硬傷? 因?yàn)閷?duì)一門語(yǔ)言來(lái)說(shuō),語(yǔ)法是不大可能會(huì)大幅度變更的, 而且不會(huì)出現(xiàn)大的變化;
Erlang的軟肋在于高質(zhì)量的庫(kù)少。盡管有不少殺手級(jí)應(yīng)用, 同樣Go在這方面也是軟肋, 這一點(diǎn)對(duì)于一個(gè)不到五年的語(yǔ)言有情可原, 但對(duì)于一個(gè)20多年的語(yǔ)言是不是有點(diǎn)說(shuō)不過(guò)去;
Erlang不合群。 這主要體現(xiàn)在跟其他語(yǔ)言的交互性上, 當(dāng)然這也有深層次的原因, Erlang本身有自己的哲學(xué), 如出錯(cuò)恢復(fù)機(jī)制, 你融入一個(gè)其他語(yǔ)言的東西進(jìn)去, 這帳就不好算,就好比你硬要讓一個(gè)喝咖啡的跟一個(gè)吃大蒜的坐在一起, 總之你寫一個(gè)Erlang的port遠(yuǎn)遠(yuǎn)比Go復(fù)雜, 甚至比Python/Java還要復(fù)雜, 這就造成了Erlang在底層編程上效果不是很好, 沒(méi)法利用linux已有的很多優(yōu)秀成果,我一直認(rèn)為Erlang的什么的mysql/pg/oracle驅(qū)動(dòng)都沒(méi)有必要存在, Erlang一定是一個(gè)self-container應(yīng)用, 你只要用到了其他東西, 根據(jù)木桶理論, 你就不敢號(hào)稱9個(gè)9,以系統(tǒng)的眼光看問(wèn)題, 我覺(jué)得一個(gè)系統(tǒng)的魯棒性不能依賴于某一組件, 這也是為什么愛(ài)立信本身的Erlang應(yīng)用并不廣泛;
Erlang的的報(bào)錯(cuò)信息太讓人糾結(jié)了。在Erlang中一切都是并行的, 所以它根本不care是物理哪一行出錯(cuò), 只跟Actor綁定, 然后告訴你Actor的ID和出錯(cuò)代號(hào)。這一點(diǎn)Golang就做了很好的折中, 不需要并行的時(shí)候你老老實(shí)實(shí)的寫串行代碼, 需要并行的時(shí)候也有較復(fù)雜的機(jī)制來(lái)應(yīng)對(duì), 合乎情理。
Go語(yǔ)言主要用作服務(wù)器端開(kāi)發(fā)。
其定位是用來(lái)開(kāi)發(fā)“大型軟件”的,適合于需要很多程序員一起開(kāi)發(fā),并且開(kāi)發(fā)周期較長(zhǎng)的大型軟件和支持云計(jì)算的網(wǎng)絡(luò)服務(wù)。
Go語(yǔ)言融合了傳統(tǒng)編譯型語(yǔ)言的高效性和腳本語(yǔ)言的易用性和富于表達(dá)性,不僅提高了項(xiàng)目的開(kāi)發(fā)速度,而且后期維護(hù)起來(lái)也非常輕松。
編譯器
當(dāng)前有兩個(gè)Go編譯器分支,分別為官方編譯器gc和gccgo。官方編譯器在初期使用C寫成,后用Go重寫從而實(shí)現(xiàn)自舉。Gccgo是一個(gè)使用標(biāo)準(zhǔn)GCC作為后端的Go編譯器。
官方編譯器支持跨平臺(tái)編譯(但不支持CGO),允許將源代碼編譯為可在目標(biāo)系統(tǒng)、架構(gòu)上執(zhí)行的二進(jìn)制文件。
go語(yǔ)言之所以能成為我國(guó)最火的語(yǔ)言,是因?yàn)榫帉懛?wù)端高并發(fā)程序的優(yōu)勢(shì)。我大中華區(qū)但凡pv,日活高點(diǎn)的網(wǎng)站,應(yīng)用,誰(shuí)沒(méi)點(diǎn)這個(gè)需求。
這個(gè)領(lǐng)域中最優(yōu)的幾個(gè):golang,erlang,rust。日常生活中人類社交是當(dāng)今社會(huì)上的必然性,人們也伴隨著科技時(shí)代的發(fā)展,智能電子產(chǎn)品的使用中也必然少不了語(yǔ)言輸入,文字的編輯,語(yǔ)言轉(zhuǎn)換的便利都均可來(lái)源于go語(yǔ)音輸入法。
好轉(zhuǎn)。
因?yàn)?云巴系統(tǒng)對(duì)高并發(fā)、低延遲的需求,我們對(duì)各個(gè)語(yǔ)言、平臺(tái)做了很多的調(diào)研比較工作。這自然就包括致力于開(kāi)發(fā)高并發(fā)應(yīng)用的 Go 和 Erlang。Go 對(duì)高并發(fā)的支持通過(guò) goroutine 實(shí)現(xiàn)。goroutine 可以理解為輕量級(jí)的 線程(thread)。
同一個(gè) Go 應(yīng)用創(chuàng)建的 goroutine 共享地址空間。Erlang 的高并發(fā)通過(guò)輕量級(jí) 進(jìn)程(process)實(shí)現(xiàn),每一個(gè)進(jìn)程都有獨(dú)立的狀態(tài)記錄。另外,使用 goroutine 要注意,goroutine 運(yùn)行完畢后,占用的內(nèi)存放回內(nèi)存池備用,不會(huì)釋放。對(duì)于每一個(gè)任務(wù)都需要有獨(dú)立狀態(tài)的場(chǎng)景,Erlang 的 process 更有優(yōu)勢(shì)。
區(qū)別很大。
- 語(yǔ)法區(qū)別很大。 golang是類C語(yǔ)言
- 運(yùn)行機(jī)制不同。 golang直接生成二進(jìn)制可運(yùn)行文件, Erlang是運(yùn)行在erlang虛擬機(jī)上。
...
許大牛別天天光cerl這個(gè)那個(gè)模型了,都7年時(shí)間了,不開(kāi)源代碼,不講數(shù)據(jù),還把它拉到erlang和go層面比較。從我對(duì)erlang和go語(yǔ)言實(shí)現(xiàn)層面的理解,cerl實(shí)在不在一個(gè)層上,甚至難聽(tīng)點(diǎn)就是一坨狗屎。輸了我余字倒著寫。理由是erlang單進(jìn)程調(diào)度實(shí)現(xiàn)至少有二萬(wàn)行c代碼,從第一版發(fā)布到現(xiàn)在超過(guò)9年,還在大規(guī)模完善調(diào)整,時(shí)不時(shí)還爆出bug。我自己早年也做了很多這樣的狗屎,深有體會(huì)做類似基礎(chǔ)框架的難度。
大家做技術(shù)的,show me the code 才是最真的,一堆云里霧里東西確實(shí)沒(méi)看懂,從文章對(duì)Erlang消息和調(diào)度工作原理的表述離譜到到想糾正都不知道從何入手,照理說(shuō)許大牛不應(yīng)該犯這種錯(cuò)誤的。
再,語(yǔ)言和系統(tǒng)存在的目的是為了解決問(wèn)題,都可以找到最適合自己的場(chǎng)景。erlang存在20多年繼續(xù)往前持續(xù)改進(jìn),有自己鮮明的特點(diǎn),會(huì)走他自己的路。我們能做的是在路上一起完善系統(tǒng),而不是費(fèi)時(shí)在這口水。事實(shí)上我們很多工具類的系統(tǒng)也是用go實(shí)現(xiàn)的。
網(wǎng)站標(biāo)題:erlang和go語(yǔ)言 golang err
分享鏈接:http://jinyejixie.com/article28/dochecp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷、軟件開(kāi)發(fā)、外貿(mào)建站、自適應(yīng)網(wǎng)站、網(wǎng)站排名、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)