詳解區塊鏈編程語言:致雄心勃勃的開發人員

詳解區塊鏈編程語言:致雄心勃勃的開發人員

程序猿過渡到 Web3,​Solidity 、Go、Haskell 、Rust,該側重哪種語言?

1. 寫在前面

元宇宙、NFT等詞雖已耳熟能詳,但對於身處該行業的人來說,仍然可以時刻感受到Web3 依然在早期階段,全新的方案、商業模式、概念或想法層出不窮。同時,這個勢不可擋的行業浪頭創造了巨大的人才需求,區塊開發人員就是眾人追捧的香餑餑之一。

2021 年,加入 Web3 的開發人員比以往任何時候都多,全年有超過 34,000 人加入該行業。與傳統金融領域的情況類似,區塊鏈領域的就業人數同樣處於歷史最高水平。

詳解區塊鏈編程語言:致雄心勃勃的開發人員

【如圖】2017年比特幣價格飆升后,招聘數量同比攀升;Covid-19期間,比特幣價格持續上漲,招聘也一直維持這個趨勢。

傳統互聯網開發人員已經掌握了許多像Python 、C++、Truffle 、Javascript 、Golang等語言,因此具備 Web2 開發技術的人過渡到Web3 還是很容易的。

目前最受開發人員歡迎的區塊鏈除了以太坊,還有 Cardano、Solana、Avalanche、Tezos等。這些區塊鏈使用各種編程語言,無論開發人員掌握哪種語言,都會有工作機會。當然,加入大的開發群體會更具優勢,因為他們有更豐富的教程、兼容性庫和其他用於移植 dApp 的即插即用工具。當然,如果能掌握多種編碼語言的組合技能的話,區塊鏈開發之路上必定是越走越寬的。

這篇文章主要總結目前比較受重視的一些開發語言,包括在以太坊上使用的Javascript 和 Solidity,作為Cardano 原生 Plutus 語言基礎的 Haskell ,Cosmos 在用的Go,最後是Solana、NEAR 協議和 Polkadot 所使用過的Rust。

2. Javascript & Solidity:以太坊

以太坊具有四種專用語言:Serpent (受Python啟發)、Solidity (受JavaScript啟發)、Mutan(受Go啟發) 和 LLL (受Lisp啟發),都是為面向合約編程而從底層開始設計的語言。

其中 Solidity是以太坊的首選語言,它內置了Serpent的所有特性,語法接近於Javascript,易於被掌握和使用。因為JavaScript已經是Web開發人員的常用語言,因此市場上數以百萬計的開發人員都已經具備了以太坊合約開發的基礎。

作為同是面向對象的語言,Javascript和 Solidity 有許多相似之處,但它們的功能卻不同。Javascript 用於 Web 開發已經有一段時間,其代碼增加了 Web 顯示的交互性,通過動態用戶體驗和功能為Web 注入新的生命力。

就像網頁和移動應用程序一樣,Javascript 可用於Web3 開發過程中創建 dApp, 但值得注意的是,在區塊鏈應用中,需要注意使用 web3.js 和 ethereum.js這類 JavaScript 庫,它們能夠允許用戶通過本地或遠程使用HTTP、IPC 或 WebSocket 與以太坊節點進行交互,同時,它們也允許開發人員使用即插即用工具,使dApp 與以太坊兼容。

詳解區塊鏈編程語言:致雄心勃勃的開發人員

【如圖】根據數據顯示,掌握 Rust、Kotlin、Haskell 和 Go 是開發人員理想的技能組合。(資料來源:HackerEarth 2021 開發者調查)

Solidity 不是一門很複雜的編程語言,很像微縮版的 JavaScript,因此對很多開發人員來說更易上手。

儘管 Solidity 相對年輕,使用群體也相對年輕,規模相對較小,可重複使用的標準庫也少。但是自 2020 年以來,Solidity群體及其代碼庫的發展迅速,截至 2021 年底,擁有超過 2,000 名活躍的開發人員。加之以太坊仍然是目前最龐大的開發生態,毫無疑問,Solidity 仍然是區塊鏈產業中應用最廣泛的黃金編程語言之一。

隨着以太坊 2.0 的出現,將 Solidity 與其他語言結合在以太坊上創建 dApp 具有很大優勢。這對於許多想要進入 Web3 的開發人員來說也是一條捷徑。

3. Haskell:純函數式 Web3 編程語

Haskell 是一種通用的函數式編程語言,在區塊鏈的應用中 Haskell 通常被定位為 Cardano 的智能合約編程語言 Plutus 的底層定製語言。

本質上講,Haskell 為描述和評估函數提供了一個理論框架,其中每個函數都是數學意義上的函數,具有高度安全性。在Haskell中,函數執行低層次的任務,並指定程序需完成的任務。同時它是一種靜態類型的語言,代碼在編譯過程中被很容易被評估,所以類型檢查可以確保代碼的簡潔、清晰和正確。

它使用惰性求值,若無必要它就會繞過任何不相關的代碼,程序運行速度更快。另外,開發人員用它編寫也非常便利,因為它利用了自動內存管理 (AMM),開發人員在開發他們的 dApp 時不需要將內存管理任務寫入代碼中。

截至 2021 年,使用Haskell 編程語言的 Web3 開發人員屈指可數,尚未被多數開發人員所接受。Haskell 的掌握門檻較高,Haskell 庫很少,開發人員人數也較少且增長緩慢。但是Haskell在生產高質量的軟件方面起着至關重要的作用,掌握額外的Haskell 對開發人員更容易脫穎而出。

4. Go :Cosmos 和 Polygon SD​

Go是一種開源的通用編程語言,由 Google 軟件開發者於 2009 年推出。它是一種顯式的靜態類型語言,Go 想要做的是將 Python 這種易於開發的特性和 C++ 這種編譯語言的高效特性結合起來。

Cosmos 和 Polygon SDK 通常使用 Go。它擁有大量的本地庫,並且跨平台並與移動設備兼容。此外,它利用“Goroutines”,使dApp 快速啟動,並在不消耗太多內存的情況下執行任務。Go 還可以同時運行多個線程,以便在大量使用的情況下高效地執行。

Go的 Web3 實例包括 Polygon Edge SDK,這是一個用於 dApp 和區塊鏈的模塊化框架,用於構建與以太坊兼容的網絡。它將第三方網絡引導到以太坊的區塊鏈上,從而通過他們自己的解決方案傳輸 ERC-20 代幣和 ERC-721 NFT。以太坊的其他執行可以使用 Go Ethereum 客戶端嵌入到 Go 中。

Go的學習難度不大,因為Go初始階段的學習符合JS 或 C 開發人員的邏輯,同時提供大量的學習資源。如果有 C/C++/Java 經驗的開發者掌握起來會更快。

根據 2020年Stack Overflow的開發者調查顯示,Go 相當受歡迎,超過 62% 的人表示他們喜歡這種語言,並將繼續用它開發。

5.Rust:簡單性、併發性和高效率

早在 2015 年,一名前 Mozilla 員工就首次發布了 Rust,它是一種專註於安全和性能的多範式編程語言,其構建考慮到了速度和效率,這意味着它可以提供零成本的抽象、繼承和功能特性。

Rust 具有驚人的速度和內存效率。它豐富的類型系統和所有權模型保證了內存和線程的安全,從而能夠在編譯時消除許多典型的錯誤。此外,它可以併發(和并行)代碼,快速地處理事務。這為 Rust 程序提供了可擴展性,因為它的高吞吐量,所以每秒事務 (TPS)處理量比其他語言更多。

零成本抽象確保你使用的抽象幾乎沒有運行時開銷,意味着底層代碼和使用抽象編寫的代碼之間沒有速度差異。零成本的概念也成為了 Rust 開發的核心原則。

Rust 還提供了優秀的文檔和簡便的編譯器,這有助於輕鬆診斷問題,提高工作效率。意味着開發人員不需要花太多時間來優化代碼,因為編譯器將會把他們的編譯抽象化。與其他語言相比,用 Rust 編寫的應用程序運行得更快,即便是優化后的其他語言代碼,也比不上Rust的運行速度。

此外,Rust可以很好地與其他語言結合使用,從而輕鬆調用另一種語言,反之亦然。這個特性在萬物互聯的網絡中更能凸顯其互操作性價值。​

由於這些優勢,2020 年,一項針對開發人員的 Stack Overflow 調查顯示,Rust為“最受歡迎的編程語言”,大約 86% 的受訪者表示他們希望在未來繼續使用 Rust 進行編碼。

Polkadot 的推出及其對 Rust 的使用,直接導致 Rust 開發人員的職位空缺;Solana 的活躍開發人數自2021年推出以來從大約 180 人增加到近 1,000 名,增長了近 500%,事實表明了 Rust 強勁的應用潛力。

詳解區塊鏈編程語言:致雄心勃勃的開發人員

【如圖】Rust 最適合高吞吐量和併發操作

6.最後:Rust 是個潛力股

由於 Web3 協議在處理數千萬個不可信輸入時需要快速且強大的性能,Rust 具有明顯的優勢。它以閃電般的速度處理功能複雜的任務,同時還減少了與內存、邊界、空變量、初始化變量或整數溢出相關的錯誤。

Rust 具有一定的學習難度,但仍有很多開發人員去學習。使用 Rust 可以創建更強大的 dApp,它可以減少許多常見的錯誤,使dApp 在發布后按預期運行。它的併發能力正是每秒處理數萬甚至數十萬筆交易所需要的,這使得 Rust 成為 Web3 應用程序和虛擬世界交易的理想選擇。

另一方面,Solidity 提供了一個龐大的群體和以太坊圖書館。這種網絡效應促進了合作,也增加了特定 dApp 獲得更多用途的可能性。

每種語言的工作需求量都在呈上升趨勢,而掌握多種語言的開發人員會有更多機會選擇工作。目前,對掌握Solidity 的開發人員的需求非常大,但學習 Go、Haskell 或 Rust會更具優勢,因為使用它們進行開發的程序員較少,同時這些語言也更受僱主青睞。

(本文以及圖片為【SupraOracles】原創內容,未經賬號授權,禁止隨意轉載)

本文鏈接:https://www.8btc.com/article/6760100

轉載請註明文章出處

(0)
上一篇 2022-06-23 12:01
下一篇 2022-06-23 12:44

相关推荐