自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

開發(fā)人員的困境:選擇Go還是Rust?

譯文
開發(fā) 后端
如果讓你列出過去十年出現(xiàn)的重要編程語言,幾乎可以肯定Go和Rust榜上有名。如果你難以決定到底是Go還是Rust更適合開發(fā)需求,繼續(xù)讀下去。此文比較了Go和Rust,解釋了兩者的相似和不同之處以及各自能為你做什么。

[[279405]]

【51CTO.com快譯】如果讓你列出過去十年出現(xiàn)的重要編程語言,幾乎可以肯定Go和Rust榜上有名。

同樣,如果讓你坐下來想想如今哪種編程語言最適合開發(fā)對微服務(wù)友好且安全的框架或應(yīng)用程序,你可能發(fā)覺在Go和Rust之間難以決定。

如果你難以決定到底是Go還是Rust更適合開發(fā)需求,繼續(xù)讀下去。此文比較了Go和Rust,解釋了兩者的相似和不同之處以及各自能為你做什么。

Go編程語言

Go(又叫Golang)于2009年向公眾推出,它由谷歌工程師(包括以Unix成名的Ken Thompson)設(shè)計(jì)。開發(fā)Go出于諸多動機(jī),但是開發(fā)人員的目標(biāo)也許可以用此來概括:他們只是想要一種提供C++的效率,但經(jīng)過優(yōu)化后更容易在多核CPU上編寫、閱讀和部署的語言。

為此,Go的獨(dú)特功能之一是goroutine,它使人們很容易定義作為不同子進(jìn)程運(yùn)行的函數(shù)。如果充分利用goroutine,開發(fā)人員可以用Go輕松構(gòu)建同時在多個CPU核心上部署工作負(fù)載以充分發(fā)揮并發(fā)性的應(yīng)用程序。

并發(fā)性和優(yōu)化是強(qiáng)大的功能。這就是我們選擇用Go開發(fā)Twistlock的原因之一。

Rust編程語言

Rust的歷史在很多方面與Go的歷史頗為相似。Rust起初是Mozilla一名工程師的個人項(xiàng)目,誕生于2000年代中期。該語言于2010年公開發(fā)布。

與Go一樣,Rust的部分動機(jī)是希望改進(jìn)C++的約定,包括使其更易于實(shí)現(xiàn)并發(fā)性。同時又不降低安全性也是一個主要的考量因素。為此,Rust使開發(fā)人員很難將可能導(dǎo)致緩沖區(qū)溢出或其他內(nèi)存相關(guān)漏洞的缺陷引入代碼中。

Go和Rust的共同點(diǎn)

Go和Rust在許多方面很相似。它們都是如今廣泛使用的新興編程語言之一。當(dāng)今大多數(shù)其他流行語言的歷史久得多,比如C、Java和Python。

Go和Rust都是經(jīng)過編譯的語言,開源,針對面向微服務(wù)的現(xiàn)代并行計(jì)算環(huán)境而設(shè)計(jì)的。

如果你已經(jīng)了解C ++,它們都很容易學(xué)習(xí)。

Go vs. Rust

這可能讓你不由得發(fā)問:“我該使用Go還是Rust來開發(fā)下一個應(yīng)用程序?”

可以從多個方面來回答這個問題,但建議從正在構(gòu)建的應(yīng)用程序的類型來考慮。在我看來,Go適合更廣泛的使用場景,而且更靈活一點(diǎn)。Go讓人們很容易構(gòu)建這種很好地分解的應(yīng)用程序:可以充分發(fā)揮并發(fā)性,又可以作為一組微服務(wù)加以部署。

Rust也可以做那些事情,不過要難一點(diǎn)。從某些方面來說,Rust專注于防止與內(nèi)存有關(guān)的安全漏洞,這意味著程序員必須竭盡全力執(zhí)行的任務(wù)換成其他語言(包括Go)要來得更簡單。

請注意:順便說一下,這并不意味著Go不安全。Go與其他任何現(xiàn)代編程語言一樣安全。它只是不像Rust那樣關(guān)注安全性或者任由安全性優(yōu)先于更廣泛的功能。

簡而言之:Rust較難使用,更加關(guān)注構(gòu)建范圍較狹窄的應(yīng)用程序(安全是唯一重要的方面)。相比之下,Go很適合構(gòu)建你不僅關(guān)注安全性,還關(guān)注其他諸多因素的應(yīng)用程序——如果你是旨在構(gòu)建靈活可擴(kuò)展的應(yīng)用程序或框架的DevOps團(tuán)隊(duì),這可能是你的目標(biāo)。

同樣值得一提的是,Go在當(dāng)今的開發(fā)人員中更受歡迎。TIOBE Index將Go列在最流行編程語言排行榜上的第15位,而Rust排在第34位。我知道你不應(yīng)該隨大流,但在編程界,選擇更流行的語言確實(shí)有好處。其他程序員更可能了解它們,這使得共享代碼或?yàn)閳F(tuán)隊(duì)添加成員變得更容易。流行語言還往往有更好的社區(qū)支持、文檔和插件。

我無法在使用Go還是Rust方面給出明確的建議,那是由于兩種語言都是很棒的現(xiàn)代語言,你在決定如何構(gòu)建新應(yīng)用程序時最好兩者都考慮一下。

話雖如此,與大多數(shù)程序員一樣,我往往對Go更傾向一點(diǎn),因?yàn)樗m合更廣泛的使用場景,同時仍提供很高的安全性和性能。

原文標(biāo)題:The developer’s dilemma: Choosing between Go and Rust,作者:Sonya Koptyev

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2020-06-22 07:18:21

Java語言開發(fā)

2021-02-16 16:44:40

RustJavaScript開發(fā)

2009-07-20 16:11:41

JRuby Swing

2010-08-09 16:09:25

2009-11-23 20:07:51

ibmdw開發(fā)

2021-02-19 09:33:01

kubernetesJAVA服務(wù)

2009-12-11 14:50:14

Visual Basi

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業(yè)開發(fā)人員提供商

2020-08-14 10:54:56

NodejsGolang開發(fā)

2022-01-06 16:15:58

自測測試開發(fā)人員

2020-11-30 15:22:40

開發(fā)軟件初創(chuàng)公司

2012-12-14 08:55:45

開發(fā)人員產(chǎn)品經(jīng)理

2010-08-16 09:21:35

Windows Pho

2021-12-10 23:48:19

Java開發(fā)技術(shù)

2023-02-17 15:01:15

2019-11-27 18:54:07

物聯(lián)網(wǎng)數(shù)字孿生機(jī)器學(xué)習(xí)

2009-05-31 08:31:07

GoogleWaveTechCrunch

2011-09-05 14:21:29

webOS

2023-08-14 15:23:37

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號