我靠JavaScript 在區(qū)塊鏈行業(yè)找到高薪好工作
對(duì)開(kāi)發(fā)者來(lái)說(shuō),在區(qū)塊鏈行業(yè)找到一個(gè)薪水高、待遇好的工作是夢(mèng)寐以求的。那么,這就引出了一個(gè)很重要的問(wèn)題:哪種編程語(yǔ)言最適合區(qū)塊鏈?
Duomly 找到一些在區(qū)塊鏈開(kāi)發(fā)圈流行的編程語(yǔ)言,有 JavaScript、C#、C++、Python、Golang、Solidity、Java 。并通過(guò)對(duì)比它們的優(yōu)缺點(diǎn)來(lái)選出最適合區(qū)塊鏈開(kāi)發(fā)的編程語(yǔ)言。
1. JavaScript
這是基于原型編程的動(dòng)態(tài)弱類型語(yǔ)言,其優(yōu)點(diǎn)包括易上手、面向?qū)ο蟆⒃途幊淘O(shè)計(jì)、支持函數(shù)式編程以及流行度高。JavaScript 的缺點(diǎn)包括動(dòng)態(tài)語(yǔ)言、弱類型。
JavaScript 在區(qū)塊鏈應(yīng)用方面,比較著名的是 Web3.js 和 ethereum.js 這兩個(gè) JavaScript 庫(kù),他們能夠幫助開(kāi)發(fā)者在前端應(yīng)用中和以太坊網(wǎng)絡(luò)以及智能合約進(jìn)行交互。
此外,JavaScript 在區(qū)塊鏈智能合約方面的著名應(yīng)用場(chǎng)景是 NEO,NEO 是一個(gè)高效的區(qū)塊鏈平臺(tái),每秒可處理的交易數(shù)量可達(dá)數(shù)千條。
2.C#
它是一門高級(jí)面向?qū)ο缶幾g型編程語(yǔ)言,也非常類似于 C++ 或者 Java,采用了類集合和繼承。C# 的優(yōu)點(diǎn)包括支持 .NET、易于上手、強(qiáng)類型語(yǔ)言、動(dòng)態(tài)代碼支持等。缺點(diǎn)是生態(tài)圈弱小、社區(qū)不活躍、跨平臺(tái)能力差。
C# 在許多區(qū)塊鏈項(xiàng)目中都有應(yīng)用,其中比較著名的是 NEO 公鏈,它號(hào)稱中國(guó)版的以太坊。另外一個(gè)流行的使用 C# 的區(qū)塊鏈項(xiàng)目是 IOTA,它面向的場(chǎng)景是物聯(lián)網(wǎng),它是一個(gè)具有高拓展性以及 0 交易手續(xù)費(fèi)的公鏈項(xiàng)目。
3. C++
這是一門強(qiáng)類型的、高效的、面向?qū)ο蟮木幾g型語(yǔ)言。優(yōu)點(diǎn)包括獨(dú)立和多平臺(tái)、運(yùn)行高速、強(qiáng)靜態(tài)類型。缺點(diǎn)是代碼冗余程度高、不易學(xué)習(xí)、調(diào)試復(fù)雜、不支持垃圾回收機(jī)制。
C++ 在許多著名的區(qū)塊鏈加密貨幣以及重要的區(qū)塊鏈項(xiàng)目中得以應(yīng)用,如比特幣、瑞波幣、比特幣現(xiàn)金、萊特幣、門羅幣、EOS、QTUM、支付網(wǎng)絡(luò) Stellar 等。
4. Python
這是一門流行的動(dòng)態(tài)類型的高級(jí)編程語(yǔ)言,它也支持面向?qū)ο缶幊桃约昂瘮?shù)式編程。
Python 在機(jī)器學(xué)習(xí)以及人工智能方面的開(kāi)發(fā)中表現(xiàn)非常出眾。許多 IT 巨頭使用 Python 開(kāi)發(fā)了許多智能工具和框架。Python 的優(yōu)點(diǎn)包括非常易于學(xué)習(xí)、有很多現(xiàn)成的庫(kù)和框架、速度快等。缺點(diǎn)是它通常被用于服務(wù)端、上下文環(huán)境不那么智能以及各種類庫(kù)的文檔并不足夠完善。
Python 在許多優(yōu)秀的區(qū)塊鏈項(xiàng)目中得到應(yīng)用,比如說(shuō)有使用 Python 實(shí)現(xiàn)的以太坊客戶端。
5. GolangGo
是一門靜態(tài)類型的編譯語(yǔ)言。Golang 的優(yōu)點(diǎn)包括內(nèi)存安全、垃圾回收機(jī)制、強(qiáng)類型語(yǔ)言、運(yùn)行速度快、可擴(kuò)展性強(qiáng)。缺點(diǎn)是不易學(xué)習(xí)、社區(qū)規(guī)模小、庫(kù)和開(kāi)發(fā)包少、語(yǔ)法不夠清晰。
和 Golang 相關(guān)的區(qū)塊鏈項(xiàng)目非常之多,其中比較著名的一個(gè)項(xiàng)目是 Go-ethereum,它是一個(gè) Go 語(yǔ)言編寫的以太坊客戶端。另一個(gè)著名項(xiàng)目 Hyperledger Fabric 項(xiàng)目也是使用 Go 語(yǔ)言來(lái)實(shí)現(xiàn)的。此外還有一些不太著名的項(xiàng)目,在此不贅述了。
6. Solidity
這是一門面向智能合約的靜態(tài)類型語(yǔ)言,它是為以太坊智能合約執(zhí)行虛擬機(jī)而生的,是智能合約開(kāi)發(fā)的主要編程語(yǔ)言,也是以太坊智能合約的主要編程語(yǔ)言。Solidity 的優(yōu)點(diǎn)包括易于學(xué)習(xí)、使用人群增長(zhǎng)迅速等。缺點(diǎn)是非常年輕、社區(qū)規(guī)模小、非常容易犯關(guān)鍵性錯(cuò)誤等。而且 Solidity 僅用于以太坊生態(tài),不具有通用性,且易被攻擊。
通常,Solidity 被用于開(kāi)發(fā)以太坊的智能合約。Solidity 也是區(qū)塊鏈產(chǎn)業(yè)中應(yīng)用最廣泛的編程語(yǔ)言之一。
7. Java
這是一門強(qiáng)類型的、基于類的編譯型編程語(yǔ)言。Java 的優(yōu)點(diǎn)是面向?qū)ο蟆⒖缙脚_(tái)、社區(qū)龐大并且類庫(kù)豐富、具有垃圾回收機(jī)制、內(nèi)存清理容易等。缺點(diǎn)是需要 Java 虛擬機(jī)運(yùn)行環(huán)境,且比 C++ 和 Go 速度慢。
Java 語(yǔ)言在區(qū)塊鏈行業(yè)中是很流行的,著名的 P2P 加密貨幣平臺(tái) NEM 是用 Java 編寫的。還有一些用到 Java 的區(qū)塊鏈項(xiàng)目有:Neo 的智能合約、IBM 區(qū)塊鏈、 IOTA 、以太坊等等。
總結(jié)(獲勝者)
根據(jù)不同編程語(yǔ)言在區(qū)塊鏈行業(yè)中的工作招聘數(shù)量來(lái)看,JavaScript 是勝出者。在工作待遇排名方面,JavaScript 勝出,在易學(xué)性排名方面,Solidity 勝出。在綜合排名方面,也是這兩個(gè)語(yǔ)言更勝一籌。詳細(xì)的排名數(shù)據(jù)可以點(diǎn)擊原文鏈接查看。
對(duì)于不同語(yǔ)言來(lái)講,工作機(jī)會(huì)的數(shù)量和語(yǔ)言難度的差異并不大,因此,使用其中任何一門編程語(yǔ)言,你都可以在區(qū)塊鏈行業(yè)很快找到一份好工作。


























