主流区块链开发语言大比拼
对于刚进入区块链的同学来说,希望能了解哪种开发语言比较常用。本文做了一个小结和比较。目前主流区块链的开发语言主要有:C++、Go、Java、Rust、C#。它们的使用情况如下(主要找总市值排名前20的区块链):
github: https://github.com/bitcoin/bitcoin
github: https://github.com/litecoin-project/litecore-litecoin
github: https://github.com/ripple
github: https://github.com/stellar/stellar-core
github: https://github.com/EOSIO/eos
说明:EOS上的智能合约使用C++语言开发
github: https://github.com/bitshares/bitshares-core
说明:比特股是EOS的前身,不支持智能合约
github: https://github.com/monero-project/monero
github: https://github.com/ethereum/go-ethereum
说明:以太坊是基于PoW共识算法的公链,但也支持基于PoA共识算法的联盟链或私链。以太坊上的智能合约使用Solidity语言开发,Solidity的语法类似于JavaScript,学习门槛低,易于被掌握和使用
github: https://github.com/hyperledger/fabric
说明:fabric是用于联盟链或私链,超级账本可以使用go、java或者nodejs来开发智能合约,其中支持最好的还是go语言
github:https://github.com/ipfs/go-ipfs/
github:https://github.com/smartcontractkit/chainlink
github: https://github.com/tronprotocol/java-tron
github: https://github.com/paritytech/polkadot
说明:波卡的基础框架substrate见 https://substrate.dev/
github: https://github.com/solana-labs
说明:相比于以太坊,solana项目是一个快速崛起的大热项目,号称要挑战以太坊的地位。它由前高通,英特尔和Dropbox工程师于2017年底创立,是一种单链委托权益证明协议,其重点是在不降低分散性或安全性的前提下提供可扩展性。Solana扩展解决方案的核心是名为“历史证明(PoH)”的分散式时钟,旨在解决分布式网络中没有单个可信赖时间源的时间问题。
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目前的使用范围也在日渐扩大,所以我认为:
我的知乎:https://www.zhihu.com/people/powervip
我的csdn:https://blog.csdn.net/powervip
我的github:https://powervip.github.io
我的公众号:区块链战斗机
我的腾讯微云网盘:https://share.weiyun.com/5qT0TvG
如果你觉得这篇文章写得还可以,请帮忙点个赞,谢谢!如需转载,请注明原文出处并保留原文链接。
你的鼓励,我的动力!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!