Rust,程式設計師創業的最佳選擇?

創業公司在選擇程式語言時往往壓力很大,尤其在考慮選擇相對小眾的新語言時。不僅需要考慮程式語言本身的語法、性能,還需要關注其對人才的吸引力。然而,這家創業公司最終的選擇是Rust。快來看看他們的使用體驗吧!

我們是一支短小精悍的團隊,每週都會發布一些新東西。雖然我們如此高效的原因有很多,但其中之一便是我們在技術上的選擇給予了很大的幫助。我們會盡可能使用Rust,因為這種程式語言能夠讓我們快速而自信地完成公司的使命。

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

每個備選項都有一定的利弊,所以我一直在原地打轉。打破無限循環的是一個簡單的問題:選擇哪種程式語言會吸引優秀的人才,讓我們更自信、更頻繁地發佈產品?

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

背景介紹

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

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

直到我開始使用 Rust。

很快我的懷疑就消失了,實際上我在使用C語言的時候犯了很多錯誤,比如記憶體洩漏、記憶體釋放之後再使用等,當用C語言構建小程序的時候,感覺不到太大問題,但是當你開始使用庫,將指針傳遞給其他黑盒子時,一切都會變得混亂起來。Rust讓我認識到,我的程式設計水平並沒有想象中那麼高。編譯器就像一個頑固的模擬器教練,無論你做得多麼好,都得不到它的認可。我在「borrow checker」的階段陷入了苦戰,就好像腳趾踢到了牆角,痛徹心肺。

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

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

但Rust最大的優勢還不在於此。

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

吸引人才

如今Rust的發展已步入全盛時期,很多部落格文章都點名表揚,當然也有很多部落格文章揭露了它的缺點。這是一個很好的現象,這意味著使用Rust的人很多。雖然我很喜歡Rust,但其他工程師呢?我們選擇Rust這樣相對小眾的語言,最大的憂慮在於人才庫的規模可能太小。世界頂級的人才他們如何看待Rust,他們會選用哪種工具?

這個問題就像小馬過河,需要親身實踐。於是,我們聯繫了Rust的新聞郵件,併發布了招聘啟事。我們是一家遠端辦公的公司,我們不在乎工程師選擇住在哪裡。幸運的是,Jack Dorsey在Twitter上寫道:「Rust 是一種完美的程式語言」。

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

看來我們對 Rust 人才庫的擔憂是不必要的。這是一種對程式設計師有很大吸引力的程式語言。

實際使用Rust

我們決定儘可能在一切地方使用Rust。現在我們的 Web 後端是用 Rust 構建的,後臺任務處理器也是用Rust編寫的,就連分析引擎的排程程序也是Rust。但有些地方沒有使用Rust,因為這些領域有很多偉大的庫,但Rust生態系統尚不存在。還有移動應用,我們使用的是Flutter。

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

使用Rust,前期的準備工作更多。你需要克服編譯器的一堆約束。然而,雖然經驗的增加,編寫程式碼的速度會越來越快。我們在短短几周的時間裡,就取得了很大進步,工作的速度也越來越快。我們團隊一致認為理解Rust程式碼的難度遠低於許多其他語言。Rust程式碼中的疑惑與模糊性很少,只需閱讀程式碼,你就能確切地知道程序將要做什麼。

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

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

性能

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

對於創業公司而言,高性能意味著所需的伺服器更少,相應的運營開銷也更低。作為一家創業公司,如果你需要花錢構建每秒只能支持幾百個請求的Web伺服器,那麼很快你的資金就會枯竭。

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

創業公司是否都應該使用Rust?

我不是創業公司的顧問。

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

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

原文連結:https://dailyedit.com/blog/why-rust-is-a-great-choice-for-startups/

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

相關文章

Rust vs Go,到底該怎麼選?

Rust vs Go,到底該怎麼選?

【CSDN 編者按】擁有 40 多年程式設計經驗的知名 Go 開發者與作家 John Arundel 在其個人部落格分享了《Rust vs ...

「聽我說,創業公司選擇 Rust 需謹慎」

「聽我說,創業公司選擇 Rust 需謹慎」

摘要:近年來,Rust 絕對是一門成長速度飛快的程式語言,許多國內外大廠都開始關注這門年輕的語言,但本文作者表示,對於創業公司而言,Rust...

C、C++ 將退休,Rust 欲上位?

C、C++ 將退休,Rust 欲上位?

整理 | 蘇宓 Rust 這把火在微軟Azure CTO Mark Russinovich的助力下,似乎越燒越旺。而每當波及程式語言時,紛爭...

我用 Rust 程式設計的這兩年

我用 Rust 程式設計的這兩年

摘要:近年來,Rust 被越來越多大廠投入使用,如微軟的 VS Code、Visual Studio 等工具已提供對 Rust 的良好支持,...