2021哪門編程語言掙得最多?答案并不是Python。
今年6月,O'Reilly對來自英國和美國的3136名受訪者進(jìn)行了調(diào)查,以了解數(shù)據(jù)和人工智能行業(yè)的薪酬?duì)顩r、職業(yè)機(jī)會和挑戰(zhàn)。
報(bào)告顯示,從編程語言的薪水來看,使用Rust 的程序員的平均薪水最高,超過18萬美元;其次是Go(17.9萬美元)和Scala(17.8萬美元)。
雖然Python用戶在調(diào)查受訪者中是主要群體,但報(bào)告中使用Python的程序員平均收入約為15萬美元。
最近,StackOverflow又放出了他們的開發(fā)者年度調(diào)查,薪資最高的語言變成了Clojure,中位數(shù)年薪比第二名的F#足足高出了1.4萬美元。
82914名受訪者表示,對于未掌握的語言來說,程序員最想學(xué)習(xí)的語言是Python,其次是TypeScript,JavaScript,Go,Rust。
最受程序員喜愛的語言是Rust,喜愛比例達(dá)到了86.98%,第二名Clojure 的喜愛比例為81.12%。
在過去的幾年里,Rust的受歡迎程度一直在穩(wěn)步增長。它具有許多優(yōu)勢,如速度快,內(nèi)存高效:沒有運(yùn)行時(shí)或垃圾收集器,它可以提供高性能的關(guān)鍵服務(wù),在嵌入式設(shè)備上運(yùn)行,并且很容易與其他語言集成。
Rust豐富的類型系統(tǒng)和所有權(quán)模型保證了內(nèi)存安全和線程安全,使編程人員能夠在編譯時(shí)消除許多類錯(cuò)誤。
簡直是太方便了!
Rust還有優(yōu)秀的文檔、友好的編譯器和有用的錯(cuò)誤消息,以及集成包管理器和構(gòu)建工具形式的上層工具、支持自動完成和類型檢查的智能多編輯器、自動格式化器等。
2021年,Rust開發(fā)者的高薪收入也是來之不易,O'Reilly報(bào)告的作者M(jìn)ike Loukides在接受采訪時(shí)對Rust工資超越Python解釋道:
雖然Python程序員的需求很大,但供應(yīng)量也很大。Python已經(jīng)是大學(xué)課程中的標(biāo)準(zhǔn)語言,也是科學(xué)計(jì)算中常用于數(shù)據(jù)分析的兩種語言之一。對于Rust和Go來說,雖然需求量較小,但供應(yīng)也要少得多。
Rust 能做的事也很多,在Jobbio data上也有Rust相關(guān)崗位的工資情況統(tǒng)計(jì)。
游戲引擎工程師的平均年薪是34830英鎊,主要負(fù)責(zé)在引擎中創(chuàng)建新的功能,并重寫現(xiàn)有系統(tǒng),使其盡可能高效。當(dāng)開發(fā)了新游戲時(shí),引擎程序員將指出如何為特定游戲創(chuàng)建最佳的游戲引擎并處理任何技術(shù)問題。
軟件工程師的平均年薪是43886英鎊,主要負(fù)責(zé)編寫計(jì)算機(jī)操作系統(tǒng)和內(nèi)部運(yùn)行的軟件。這個(gè)職位實(shí)際上也涵蓋了從系統(tǒng)開發(fā)人員到軟件架構(gòu)師的多種角色。這是一項(xiàng)高度專業(yè)化的工作,需要良好的技術(shù)背景,對軟硬件有透徹的了解,并能很好地掌握數(shù)學(xué)推理和編碼語言。
后端工程師的平均年薪是55856英鎊,主要負(fù)責(zé)設(shè)計(jì)、構(gòu)建和維護(hù)Web應(yīng)用程序的服務(wù)器端。換句話說,后端工程師的主要職責(zé)是構(gòu)建軟件應(yīng)用程序的結(jié)構(gòu),為軟件團(tuán)隊(duì)建立了實(shí)現(xiàn)主要目標(biāo)所需的基礎(chǔ)。這意味著,軟件開發(fā)團(tuán)隊(duì)中后端工程師的主要功能之一是編寫業(yè)務(wù)邏輯、服務(wù)器腳本和API,供其他開發(fā)人員和團(tuán)隊(duì)成員使用。
區(qū)塊鏈工程師的平均年薪為55232英鎊,專門為使用獨(dú)特技術(shù)的組織創(chuàng)建和實(shí)施數(shù)字解決方案。區(qū)塊鏈技術(shù)允許信息在不被復(fù)制的情況下通過互聯(lián)網(wǎng)公開分發(fā)和共享。信息不存儲在中心位置。工作職責(zé)可能包括開發(fā)和實(shí)施加速器和資產(chǎn)等項(xiàng)目,協(xié)助組織使用技術(shù)的基礎(chǔ)設(shè)施設(shè)置,并確保應(yīng)用程序的安全。
作為新興的開發(fā)語言,Rust在函數(shù)式編程、網(wǎng)絡(luò)編程、多線程、消息同步、鎖、測試代碼、異常處理等方面都有不俗表現(xiàn)。
Rust包含了長期軟件工程中對于高頻Bug的經(jīng)驗(yàn)總結(jié),從而開創(chuàng)性的提出了大量的全新編程理念。不同于很多新式語言給予開發(fā)者更多的便利和自由,Rust更苛刻的對待程序員的開發(fā)工作。盡管在易用方面Rust也下了不少的功夫,但相對于繁復(fù)的規(guī)則,這些努力很容易被忽視。
而這些代價(jià)保證了更高品質(zhì)的開發(fā)輸出。
但Rust也有缺陷,對于初學(xué)者來說太不友好。雖然學(xué)習(xí)Rust能訓(xùn)練良好的編程習(xí)慣,從長遠(yuǎn)看對提高學(xué)習(xí)者的開發(fā)素養(yǎng)極具價(jià)值。但短期的大量付出很容易讓初學(xué)者難以應(yīng)付。并且盡管官方文檔并不欠缺,但學(xué)習(xí)資料對于初學(xué)者來講仍然是遠(yuǎn)遠(yuǎn)不夠的,所以比較而言,得不償失,所以C/Java/Python/Js都是更好的入門選擇。
對于有一定經(jīng)驗(yàn)的軟件工程師,他們已經(jīng)有了一段時(shí)間的開發(fā)工作實(shí)踐,對于軟件開發(fā)的現(xiàn)狀、發(fā)展都已經(jīng)形成了自己的世界觀。如果感覺并不很喜歡這個(gè)行業(yè),希望將來轉(zhuǎn)行管理崗位或者產(chǎn)品崗位。那當(dāng)前應(yīng)當(dāng)做的更多是傾向業(yè)務(wù)領(lǐng)域,了解業(yè)務(wù)和技術(shù)的銜接和互動,完全不需要學(xué)習(xí)Rust。
而如果醉心于技術(shù),并從中獲得了自己的樂趣,希望逐步提高自己的技術(shù)水平。那么Rust會是一個(gè)很好的橋梁,哪怕僅僅學(xué)習(xí)Rust而并不將其應(yīng)用于工作,也能讓開發(fā)者從中獲取大量的有益習(xí)慣和軟件底層經(jīng)驗(yàn),從而形成自己良好的代碼風(fēng)格。
對于資深工程師,即便并不從事底層系統(tǒng)級的開發(fā)工作,Rust也是一門很優(yōu)秀的語言。它能彌補(bǔ)當(dāng)前多種開發(fā)語言的不足,形成良好的開發(fā)哲學(xué)和思想導(dǎo)向,幫助開發(fā)者交付高質(zhì)量的軟件產(chǎn)品。
在大學(xué)還學(xué)習(xí)C++ 的今天,盡早學(xué)習(xí)并應(yīng)用Rust也非常有價(jià)值。
知乎網(wǎng)友也表示,Rust目前沒有廣泛應(yīng)用更多是個(gè)歷史問題,C/C++仍然有大量合格的人才,大公司在C++的工具鏈上深耕多年積累深厚。而且不少人對C++有宗教式的偏執(zhí),很多場景比如web完全可以用其他成本更低的語言解決(Go,Java),還是會用C++來做,Rust在某些地方也還沒有C++強(qiáng)大。