<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Rust,程序員創(chuàng)業(yè)的最佳選擇?

          共 3227字,需瀏覽 7分鐘

           ·

          2022-07-24 19:29

          閱讀本文大概需要 5 分鐘。


          【CSDN 編者按】創(chuàng)業(yè)公司在選擇編程語言時往往壓力很大,尤其在考慮選擇相對小眾的新語言時。不僅需要考慮編程語言本身的語法、性能,還需要關(guān)注其對人才的吸引力。然而,這家創(chuàng)業(yè)公司最終的選擇是Rust??靵砜纯此麄兊氖褂皿w驗吧!

          文鏈接:https://dailyedit.com/blog/why-rust-is-a-great-choice-for-startups/

          聲明:本文為 CSDN 翻譯,轉(zhuǎn)載請注明來源。


          譯者 | 彎月    責(zé)編 | 彭慧中
          出品 | CSDN(ID:CSDNnews)

          我們是一支短小精悍的團隊,每周都會發(fā)布一些新東西。雖然我們?nèi)绱烁咝У脑蛴泻芏?,但其中之一便是我們在技術(shù)上的選擇給予了很大的幫助。我們會盡可能使用Rust,因為這種編程語言能夠讓我們快速而自信地完成公司的使命。

          想當初,這個項目剛啟動的時候,我們只有三個成員。我是團隊中唯一的工程師,因此我可以自由地選擇語言和工具。雖然聽起來很不錯,但其實我的壓力很大。除了機器學(xué)習(xí)部分明顯應(yīng)該選擇Python之外,其他一切都懸而未決。我們應(yīng)該選擇平庸的Java?還是應(yīng)該選擇擁有強大社區(qū)的Python?還是應(yīng)該使用JavaScript,因為這種語言幾乎可以編寫一切軟件?

          每個備選項都有一定的利弊,所以我一直在原地打轉(zhuǎn)。打破無限循環(huán)的是一個簡單的問題:選擇哪種編程語言會吸引優(yōu)秀的人才,讓我們更自信、更頻繁地發(fā)布產(chǎn)品?

          于是,我們選擇了Rust,如今雖然我們的項目已走向成熟,但Rust仍然是我們成長和成功的驅(qū)動力。


          1

          背景介紹


          在職業(yè)生涯的發(fā)展過程中,我曾涉足過很多編程語言、編輯器、工具以及方法論。1994年,我開始嘗試QBasic和MS-DOS自帶的游戲Gorillas。后來很快接觸到C,并開始在Unix平臺上工作。后來又陸續(xù)學(xué)習(xí)了 C++、Python、PHP、Ruby,當然還有 JavaScript。其中一些只是為了好玩,尤其是在年輕的時候,喜歡嘗試各種編程語言。

          2015年,我聽說了Rust,然后開始嘗試。朋友一直說Rust的語法非常出色,但我表示懷疑,因為我像許多其他人一樣,認為C才是最好的系統(tǒng)語言,因為它是如此簡單和易于推理。

          直到我開始使用 Rust。

          很快我的懷疑就消失了,實際上我在使用C語言的時候犯了很多錯誤,比如內(nèi)存泄漏、內(nèi)存釋放之后再使用等,當用C語言構(gòu)建小程序的時候,感覺不到太大問題,但是當你開始使用庫,將指針傳遞給其他黑盒子時,一切都會變得混亂起來。Rust讓我認識到,我的編程水平并沒有想象中那么高。編譯器就像一個頑固的模擬器教練,無論你做得多么好,都得不到它的認可。我在“borrow checker”的階段陷入了苦戰(zhàn),就好像腳趾踢到了墻角,痛徹心肺。

          但這種感覺很快就過去了。

          我前后花了大約3個月的時候,就適應(yīng)了Rust。后來,我開始使用Rust編寫更復(fù)雜的系統(tǒng),例如具有異步行為的分布式作業(yè)隊列,與 FPGA 接口的嵌入式系統(tǒng),逐漸地我開始感受到Rust的強大之處。使用Rust就像健身一樣,你必須勤加努力才能感受到效果。在這些項目之后,我并沒有遇到太多煩人的編譯器,而且代碼的組織在任何項目的早期就能看得很清晰。這就是Rust,雖然有點不討喜,但確實能幫助你構(gòu)建優(yōu)秀的架構(gòu)。

          但Rust最大的優(yōu)勢還不在于此。

          最大的優(yōu)勢是,在構(gòu)建龐大而復(fù)雜的系統(tǒng),同時順利通過編譯器后,得到的二進制文件就能正常工作,而且能保證一直正常。Rust項目所需的調(diào)試量比我在其他任何地方看到的要少一個數(shù)量級。你可以使用帶有標記的聯(lián)合體(Rust 的枚舉)之類的功能,編寫清晰的代碼。這讓我對部署的信心大增。其次,任何項目都有定期的更改和維護。通常,新進公司的工程師都需要花費大量時間,深入研究代碼。然而,熟悉Rust的代碼非常容易,如果新來的工程師以奇怪的方式修改現(xiàn)有代碼,編譯器就會指出來。


          2

          吸引人才


          如今Rust的發(fā)展已步入全盛時期,很多博客文章都點名表揚,當然也有很多博客文章揭露了它的缺點。這是一個很好的現(xiàn)象,這意味著使用Rust的人很多。雖然我很喜歡Rust,但其他工程師呢?我們選擇Rust這樣相對小眾的語言,最大的憂慮在于人才庫的規(guī)??赡芴 J澜珥敿壍娜瞬潘麄?nèi)绾慰创齊ust,他們會選用哪種工具?

          這個問題就像小馬過河,需要親身實踐。于是,我們聯(lián)系了Rust的新聞郵件,并發(fā)布了招聘啟事。我們是一家遠程辦公的公司,我們不在乎工程師選擇住在哪里。幸運的是,Jack Dorsey在推特上寫道:“Rust 是一種完美的編程語言”。

          在接下來的八周里,我收到了近四千名申請人的電子郵件。四千!其實,很多人并沒有Rust的經(jīng)驗,只不過他們都對Rust感興趣。突然之間,我感覺自己擁有一支世界級的工程團隊。

          看來我們對 Rust 人才庫的擔(dān)憂是不必要的。這是一種對程序員有很大吸引力的編程語言。


          3

          實際使用Rust


          我們決定盡可能在一切地方使用Rust?,F(xiàn)在我們的 Web 后端是用 Rust 構(gòu)建的,后臺任務(wù)處理器也是用Rust編寫的,就連分析引擎的調(diào)度程序也是Rust。但有些地方?jīng)]有使用Rust,因為這些領(lǐng)域有很多偉大的庫,但Rust生態(tài)系統(tǒng)尚不存在。還有移動應(yīng)用,我們使用的是Flutter。

          人們常說,Rust 的缺點之一是語法過于冗長,閱讀和編寫都需要很長時間。這話雖然沒錯,但有一些也不過是夸大其詞。例如,在我們的整個代碼庫中,手動寫注釋的情況也就十幾次。這種情況在應(yīng)用程序代碼中并不常見。

          使用Rust,前期的準備工作更多。你需要克服編譯器的一堆約束。然而,雖然經(jīng)驗的增加,編寫代碼的速度會越來越快。我們在短短幾周的時間里,就取得了很大進步,工作的速度也越來越快。我們團隊一致認為理解Rust代碼的難度遠低于許多其他語言。Rust代碼中的疑惑與模糊性很少,只需閱讀代碼,你就能確切地知道程序?qū)⒁鍪裁础?/span>

          我們的工程師團隊非常給力,代碼的迭代速度非???。我們決定使用Rust代碼重新編寫一個完整又復(fù)雜的模塊,而且我們確信通過編譯后就能正常工作。有時我們的邏輯會出錯,或者我們對問題的理解不完全正確,但這些是無論使用何種語言都會遇到的問題,但如果是需要投入生產(chǎn)的任務(wù),則使用Rust可以讓我們更快地完成工作。

          使用Rust編寫代碼,不僅需要的工程師更少,而且發(fā)展更為長遠。


          4

          性能


          Rust的速度非常快,甚至比Python、Ruby、JavaScript 和 Java 快幾個數(shù)量級。

          對于創(chuàng)業(yè)公司而言,高性能意味著所需的服務(wù)器更少,相應(yīng)的運營開銷也更低。作為一家創(chuàng)業(yè)公司,如果你需要花錢構(gòu)建每秒只能支持幾百個請求的Web服務(wù)器,那么很快你的資金就會枯竭。

          也許有人會反駁說,“工程師時間比計算機時間更珍貴”,話雖沒錯,但使用Rust還可以節(jié)省工程師的時間,一舉兩得何樂而不為。


          5

          創(chuàng)業(yè)公司是否都應(yīng)該使用Rust?


          我不是創(chuàng)業(yè)公司的顧問。

          正如本文開頭的介紹,為創(chuàng)業(yè)公司選擇編程語言的壓力很大,尤其是選擇一種相對比較小眾的新語言,我也是誠惶誠恐。不過,根據(jù)迄今為止使用 Rust 的經(jīng)驗來看,我們不想再嘗試其他任何語言。雖然Rust的入門有點難度,但回報也非常豐厚。

          而在經(jīng)驗豐富的團隊手中,Rust就會變成一種超能力。



          往期推薦


          我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網(wǎng)!著有《Go語言編程之旅》、開源圖書《Go語言標準庫》等。


          堅持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長!也歡迎加我微信好友交流:gopherstudio

          瀏覽 32
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品伦理一区 | 国产成人精品在线 | 国产精品视频播放豆花网站 | 人人摸人人操人人摸 | 成人丁香婷婷 |