主流区块链开发语言大比拼

  • powervip
  • 更新于 2022-01-19 12:04
  • 阅读 7027

主流区块链开发语言大比拼

对于刚进入区块链的同学来说,希望能了解哪种开发语言比较常用。本文做了一个小结和比较。目前主流区块链的开发语言主要有:C++、Go、Java、Rust、C#。它们的使用情况如下(主要找总市值排名前20的区块链):

(1) C++

  • 比特币(BTC)

github: https://github.com/bitcoin/bitcoin

  • 莱特币(LTC)

github: https://github.com/litecoin-project/litecore-litecoin

  • 瑞波币(XRP)

github: https://github.com/bitcoin/bitcoin

  • 恒星币(XLM)

github: https://github.com/stellar/stellar-core

  • EOS

github: https://github.com/EOSIO/eos

说明:EOS上的智能合约使用C++语言开发

  • 比特股(bitshares)

github: https://github.com/bitshares/bitshares-core

说明:比特股是EOS的前身,不支持智能合约

  • 门罗币(XMR)

github: https://github.com/monero-project/monero

(2) Go

  • 以太坊(ETH)

github: https://github.com/ethereum/go-ethereum

说明:以太坊是基于PoW共识算法的公链,但也支持基于PoA共识算法的联盟链或私链。以太坊上的智能合约使用Solidity语言开发,Solidity的语法类似于JavaScript,学习门槛低,易于被掌握和使用

  • 超级账本fabric

github: https://github.com/hyperledger/fabric

说明:fabric是用于联盟链或私链,超级账本可以使用go、java或者nodejs来开发智能合约,其中支持最好的还是go语言

  • IPFS(FIL)

github:https://github.com/ipfs/go-ipfs/

  • LINK

github:https://github.com/smartcontractkit/chainlink

(3) Java

  • 波场(TRX)

github: https://github.com/tronprotocol/java-tron

(4) Rust

  • 波卡

github: https://github.com/paritytech/polkadot

说明:波卡的基础框架substrate见 https://substrate.dev/

  • solana

github: https://github.com/solana-labs

说明:相比于以太坊,solana项目是一个快速崛起的大热项目,号称要挑战以太坊的地位。它由前高通,英特尔和Dropbox工程师于2017年底创立,是一种单链委托权益证明协议,其重点是在不降低分散性或安全性的前提下提供可扩展性。Solana扩展解决方案的核心是名为“历史证明(PoH)”的分散式时钟,旨在解决分布式网络中没有单个可信赖时间源的时间问题。

(5) C

  • 小蚁NEO

github: https://github.com/neo-project/neo

说明:小蚁是国内比较有名的公链,最鼎盛时期币价曾达到1200多元,是国内少数的千倍币

小结

从上面的列举的内容来看,C++使用率最高,其次是Go,由于波卡比较火,Rust也不容小看。但需要注意一点,使用C++的区块链大部分都是公链。

从国内区块链相关职位的招聘来看,国内的区块链相关公司大多是做联盟链或私链,做公链的屈指可数。这是因为,除了开发公链需要比较多的技术积累和比较高的技术要求的原因外,另外一个原因是,国内的政策虽然大力支持区块链的发展,但对区块链上发行代币的做法还是不鼓励甚至是禁止的,加上对数字货币交易所的合法性现阶段也是不明确的。没有代币(通证)流通的公链是很难运营起来的(没有代币作为挖矿的奖励,谁愿意当矿工呢?例如比特币没有挖矿奖励,谁也不愿意投钱去买矿机挖矿)。对于做联盟链或私链的企业单位,大多数都是拿来主义,主要是基于以太坊或超级账本fabric上开发合约,也有一少部分企业单位采用EOS来进行合约开发,至多也就是对以太坊或超级账本的源码做一些小修小改。因此,从实际的职位要求来看,Go和Solidity反而占了主流,C++紧随其后。尽管波卡目前还在不断发展中,但波卡项目的知名度和solana项目的大热令更多开发者对Rust感兴趣,因而有空学一学Rust也是不错的。

从学习成本来说,我认为C++的学习成本最高,C++语法丰富而复杂,指针的使用灵活但风险高,程序员还需要自己管理内存的分配和释放,一不小心就会容易导致程序崩溃,这是令很多程序员头疼的事情。而且还有继承和多态等复杂的面向对象程序设计方面的应用,程序的执行有时是动态的(即运行时期的多态,靠方法的重写来实现,也就是使用虚函数),有时甚至不可预料。还有 ,C++支持范式编程,如函数模板和模板类等。但另一方面,C++优越的性能却是其它大多数编程语言无法比拟的,真是令人又爱又恨!Go语言相对于C++,学习成本要低不少,性能虽然不一定能和C++相比美,但相差不是太大。而且Go目前的使用范围也在日渐扩大,所以我认为:

  • Go语言是作为进入区块链行业的首选学习语言。
  • 其次是Rust,因为使用Rust进行开发的波卡和solana都是相当热门和有前景的项目。
  • 对于Solidity,语法相对简单,学习成本比较低,可以作为必学的开发语言来学习
  • 如果有足够的时间和基础,C++可以作为可选的区块链开发语言来学习

我的知乎:https://www.zhihu.com/people/powervip

我的csdn:https://blog.csdn.net/powervip

我的github:https://powervip.github.io

我的公众号:区块链战斗机

我的腾讯微云网盘:https://share.weiyun.com/5qT0TvG

如果你觉得这篇文章写得还可以,请帮忙点个赞,谢谢!如需转载,请注明原文出处并保留原文链接。​

你的鼓励,我的动力!

点赞 3
收藏 4
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

1 条评论

请先 登录 后评论
powervip
powervip
区块链程序猿,追求有深度的文章 我的知乎:https://www.zhihu.com/people/powervip 我的csdn:https://blog.csdn.net/powervip 我的github:https://github.com/powervip 我的学习笔记:www.study.win 我的公众号:区块链战斗机 我的网盘:https://pan.baidu.com/s/1frOZuMxdp5IVaY94ZdoN-A