2020年TOP7的程式語言和框架,它們至少還能風靡全球5年以上

京東科技開發者發表於2020-08-04

在本文中,我們將看一看由我推薦的程式語言和框架列表,我相信在接下來的5年至10年中,對於開發者來說,這份列表中的語言和框架仍然會有用。同時考慮到我不希望該列表僅是另一個備受好評的程式語言推薦,儘管這過程由於每個人的偏好不同而帶來困難,我仍然會 精心挑選,收窄範圍。同時,為了應對日新月異的程式發展,在記下想法時,我也 不斷思考程式設計正規化和創新是如何隨著時間演變的。



回顧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。



    結論


    請您細想,其實所有的程式語言和框架都可以構建複雜而強大的功能。因此選擇解決現實世界中緊迫問題的應用程式吧!沒有一種語言是適合所有人的,因此總是傾向於一種特定的語言幾乎是不可能的,因為 每種語言和框架都有其優點,也有其缺點,我們只能使用它有意義或不合理的地方。始終牢記並記住,任何程式語言或框架的目標都是完成工作,選擇最適合您的口味的技術


    ?原文連結:



    以上資訊來源於網路,由“京東智聯雲開發者”公眾號編輯整理,

    不代表京東智聯雲立場

    來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2708980/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章