在本文中,咱們將看一看由我推薦的編程語言和框架列表,我相信在接下來的5年至10年中,對於開發者來講,這份列表中的語言和框架仍然會有用。同時考慮到我不但願該列表僅是另外一個備受好評的編程語言推薦,儘管這過程因爲每一個人的偏好不一樣而帶來困難,我仍然會 精心挑選,收窄範圍。同時,爲了應對突飛猛進的程序發展,在記下想法時,我也不斷思考編程範式和創新是如何隨着時間演變的。前端
回顧python
回顧2020年,過去的五年咱們發生了不少變化,諸如區塊鏈,機器學習、深度學習和量子計算等新趨勢正在涌現。對於剛開始學習編程甚至是經驗豐富的開發人員的人,最好是反思一下本身的位置和想要作的事情,以便在這個瞬息萬變的動態領域保持專業。過期是一個永恆的現實,一直潛伏在咱們的肩膀上。所以立刻出發,開始新的知識之旅並習得新技術而後添加到您的工具欄中。程序員
爲何對開發者來講,選擇並學習正確的語言或框架很重要?數據庫
雖然,學習新的語言和框架對您而言是一筆很多的時間投入,不管是金錢仍是工做時間,您都沒法從中直接得到回報。但幾乎每年技術老是在變化,因此與時俱進的想法是很重要的,而選擇正確的語言和框架甚至能改善生活,完全改變您的業務方式,而且會極大地幫助開發及長期戰鬥能力。所以,您天然但願您所選擇的語言和框架,是有價值而且不會過期的事物。編程
1後端
_Rust_安全
Rust是一種系統編程語言,旨在替代C和C ++開發。Rust具有了C和C ++的性能,能夠更有效地幫助開發人員。對於那些使用C / C ++進行編程的人來講,必定能明白我這句話的意思。進入這個領域的新開發人員已經至關多。 **Rust具備不斷增加的用戶基礎。如今,有數百家公司將Rust用於開發語言** ,例如Dropbox,Yelp和Cloudflare。像Amazon最近宣佈的虛擬化技術Firecracker之類的產品都是用Rust建立的,在StackOverflow的2016年開發者調查中,Rust也被評爲「最受歡迎的」技術(這意味着它擁有最多的用戶但願繼續使用它)。服務器
儘管與幾十年來的其餘語言相比,它相對較新,但使人驚訝的是,它具備大量可用庫的清單,可用於加快開發工做。您能夠在crates.io或GitHub上找到大部分您想要的內容。網絡
Rust的一些關鍵功能:數據結構
速度和內存效率 :因爲它沒有runtime或garbage collector,它能夠全力爲關鍵性能服務提供支持,也能夠在嵌入式設備上運行,而且能夠輕鬆地與其餘語言集成。將來的5年和10年,由於咱們將遇到硬件的限制,而Rust語言將更快,內存佔用更少,能提升速度和響應能力,能使咱們編寫更節能的代碼。
可靠性 :Rust的豐富類型系統和全部權模型可確保內存安全性和線程安全性,並使您可以在編譯時消除許多類的錯誤。
生產率 :Rust擁有出色的文檔,用戶友好的編譯器提醒哪裏出錯了。相較之下,衆所周知,C ++代碼的編譯器消息很難解密。Rust的編譯器更好,更有用。若是您想學習系統編程,以「 rustc」編譯器做爲指南將使您沒必要擔憂存儲器安全性之外的其餘問題。
2
_Python_
這些年來,Python的流行度一直在穩步上升,尤爲是在過去10年中, 急速躍升了Tiobe Index的前5名 。Python用途普遍,它是一種很是實用的語言,很是適合許多實際場景。對於初學者來講,它是一種腳本語言,這意味着入門很是迅速,沒有像Java這樣麻煩的編譯運行週期。本質上就是面向對象的語言,也就是說,您選擇以面向對象的方式編程。 **Python已取代Java,成爲在大學許多學術課程中默認的首選語言** 。對於初學者來講,開始安裝python 解釋器運行很是容易:
$ print (‘hello world this is my. First program’)
就是這樣,您的第一個程序是用Python編寫的。
Python爲將來鋪平了道路。所以,它在將來5年或之後的意義必然是重大的。Python裏配備諸如TensorFlow,Scikit-Learn,Dask等成熟庫,這些庫中有大量代碼關於機器學習,深度學習,人工智能,大數據等新技術。可見, **Python已經成爲互聯網上全部流行的數據科學中的世界編程語言** 。此外,Python還能實現分佈式數據科學的大型可擴展計算,這能夠用於量子計算。
Python已在企業和初創企業中廣受好評。這些巨大的進步是在過去5年中取得的,所以,Python如今比以往任什麼時候候都更增強大。同時,咱們如今擁有普遍的平臺,例如Reddit,創建在Python之上的Google庫。我我的也常使用Python來編寫腳本並快速自動執行許多平凡的任務,它是快速完成自由項目的寶貴語言。
若是您會使用Python,那就足夠了。由於Python能夠訪問Django等網絡框架,該框架是構建Web前端和後端應用程序的最好框架。其遵循DRY原理,以不多的代碼和不多的編程經驗便可快速構建應用程序。
3
_Ruby_
Ruby是另外一種功能強大的高級編程語言,它可使您輕鬆輕鬆地構建應用程序。Ruby做爲一種面向對象的編程語言,對於那些有Python經驗的人來講,Ruby語法看起來與Python很是類似。 該語言還配備了構建複雜應用程序所需的全部工具 。
許多硅谷初創公司已經在Ruby之上創建了本身的業務,其中包括Airbnb,Twitch,GitHub和Twitter。運行Ruby的全棧Web應用程序框架Ruby on Rails進一步鞏固了其流行性。
Ruby的一些關鍵功能 :
* Ruby提供了強大又簡單的代碼庫
* 有助於快速進行開發原型設計
* 因爲學習難度低,新程序員能夠輕鬆地上手
* 它是一種面向對象的編程語言,所以您能夠在該範式的學習中一定會受益不淺
4
_Golang_
Go(Golang)是Google所開發的一種相對較新的編程語言。最近它已經愈來愈流行。Go爲多線程提供了出色的支持,因爲,許多公司極度依賴於分佈式系統,所以正在普遍地使用它。Go的設計旨在解決Google面臨的緊迫問題。Google還將Go用做新項目的主要語言,並用Go替代其餘語言。因爲google與咱們的平常生活息息相關,所以咱們不可可否認它,由於它在可預見的將來仍將繼續存在。
我十分贊成Go是一門漂亮的語言,帶有使人愉悅的語法。 它做爲動態類型語言及解釋型語言,其在專業的易用性、性能、類型安全性與內存安全性之間取得了平衡 。
Go的一些關鍵功能:
* Go的主要功能之一是經過Goroutine和Channels。因爲Go在設計上具備併發性,所以使您能夠有效地使用CPU功能,擅長於雲系統開發中的分佈式系統,微服務。
* 輕量級,快速執行和快速開發,
* 較小的內存佔用空間和較小的二進制文件大小
* 自動的Garbage collection
* 沒有異常,Go自行處理錯誤。
等一下,您沒看錯。這對您意味着什麼?與其拋出大量的try-catch異常並變得懶惰,不如讓Go處理這些錯誤。考慮一下吧
有趣的事實
1. 全球Go開發人員平均工資:每一年109,483美圓。在美國,使用這種頂級編程語言的平均年薪爲$ 136K;
2. 在2019年Stack Overflow開發者調查中,Go是全球收入第三高的語言;
3. Go編程語言是GitHub上第四活躍的語言。
5
_GraphQL_
當咱們回顧過去,與今天相比,Web API設計相對簡單,由於當時有REST表示狀態傳輸標準,可從服務器檢索數據,該標準經過URL訪問數據。因爲愈來愈多的移動設備使用,API變得更加複雜且由數據驅動,所以必須設計新方法以實現更好的數據檢索。GraphQL數據不是靜態數據以前的樣子,因此建立這樣的 **GraphQL會更加動態** 。GraphQL是基於REST的體系結構的現代替代方案,旨在解決其缺點。與REST不一樣, **GraphQL容許請求客戶端所需的特定數據,這與固定數據結構方法比起來更好** 。 它的核心是從客戶端應用程序查詢數據庫的語言 。
在後端,GraphQL向API指定如何將數據呈現給客戶端。GraphQL從新定義了開發人員使用API的工做,這些API提供了更大的靈活性並能夠投放市場。它使前者可以發出精確的數據請求,並得到更多更多的數據,從而改善了客戶端與服務器之間的交互。GraphQL最初由Facebook於2012年建立,經過其特定的數據提取功能在內部用於其移動應用程序,以減小網絡內存的使用量。從那時起,GraphQL規範成爲開源的。如今,主要的編程語言(例如Python,Java,C,Node.js等)都支持它。因爲生態系統的迅速擴展,這使其成爲在可預見的將來中,具備重要意義及獨特的技術之一,GraphQL憑藉其不斷擴展的庫和強大的工具(如Apollo,GraphiQL和GraphQL Explorer)成爲有用的語言。
GraphQL的一些關鍵功能 :
1. GraphQL速度更快,只須要選擇要查詢的字段就能完成任務
2. 經過在其API後面集成多個系統,很是適合複雜的系統和微服務
3. GraphQL很是適合構建微服務架構,可將多個位置的數據聚合到單個API中,並經過單個API調用來獲取數據
4. 沒有over -fetching和under -fetching的問題
5. 即套即用的驗證和類型檢查
6. 自動生成的API文檔使您無需擔憂Swagger並能夠直接到Github找出問題,尋找有關如何使用該規範的線索
7. 沒有版本控制的API演變是REST的常見問題,由於API的更新迫使您要麼建立新的API要麼在URL上加上版本前綴,而且常彈出不能刪除的提示。經過使用GraphQL,您能夠擁有一個不斷自更新的版本,這使您的應用程序能夠連續訪問新功能並一直使用更乾淨,更可維護的服務器代碼。
GraphQL並不是試圖取代REST,而是試圖解決不一樣類型問題的兩種不一樣方式。隨着咱們向大數據邁進,花一些時間來學習Graphql是頗有意義的。
6
_Angular_
Angular是用於軟件開發的TypeScript完整框架,是用於構建Web和移動應用程序的著名開源框架之一。
由Google開發。Angular是AngularJS徹底重寫的新版本。雖然從angularJS剛發佈開始,它的地位一些動搖,但現在, **Angular已發展成爲一個全面的開發框架,其中包括構建Web和移動應用程序所需的全部工具和組件。該框架的優勢在於它遵循清晰的路線圖** ,每六個月發佈一次新的主要版本Angular,若是您對長期使用有所瞭解,便會知道這確實很重要。
Angular的一些關鍵功能 :
下面,我僅介紹Angular 9中已解決的功能,這些功能可能會解決您對性能的某些擔心。
1. Google爲該框架提供了長期支持並不斷對其進行改進。同時常常進行常規改進,以代表該框架具備強大的後盾,而且Google真的但願看到其成功。所以,瞭解Google對其進行的支持以及投資,就能知道該框架將在可預見的將來保持專業性和可用性
2. Angular 9的另外一個主要功能是經過Ivy Compiler減小了大文件包,從而減少了佔用空間。經過減少JavaScript包的大小,對於試圖加速應用程序啓動的開發人員來講,Ivy成爲使人欣喜的改進
3. Angular9支持多種語言的應用程序,所以其國際化程度更高
7
_JavaScript_
Javascript是我真誠地向你推薦的語言,毫無疑問,這種語言將在將來幾年依舊流行。所以,投資時間在這種語言將在將來獲得回報。 **JavaScript不只僅是一種客戶端腳本語言,有了諸如Node JS,Angular和React之類的框架和庫,您就能夠在服務器端使用JavaScript以及進行用戶界面開發** 。
JavaScript是Netflix,Facebook,Google等許多大型科技公司的心臟。所以,JavaScript做爲一種語言與任何其餘編程語言同樣兼容。2020年是開始學習的一年,快使用您的業餘時間學習JavaScript。不信的話您如今想想,是否是幾乎全部的網站都在某種程度上利用了JavaScript。
結論
請您細想,其實全部的編程語言和框架均可以構建複雜而強大的功能。所以選擇解決現實世界中緊迫問題的應用程序吧!沒有一種語言是適合全部人的,所以老是傾向於一種特定的語言幾乎是不可能的,由於 每種語言和框架都有其優勢,也有其缺點,咱們只能使用它有意義或不合理的地方。始終牢記並記住,任何編程語言或框架的目標都是完成工做,選擇最適合您的口味的技術 。
🔗原文連接:
以上信息來源於網絡,由「京東智聯雲開發者」公衆號編輯整理,
不表明京東智聯雲立場