声明:本文由站长之家内容合作伙伴巴比特 授权发布。
文/洒脱喜
区块链世界的语言有很多种,包括但不限于Javascript、C#、 C++、 Python、 Golang、Solidity、 Java以及Rust,那么究竟哪种语言的市场最大,以及哪种语言最具潜力呢?
Python和Java最主流,高薪比例最高为C#、Golang和Rust
我们不妨先看看市场的实际需求是怎样的:
(数据来自indeed.com,图片自制)
根据indeed.com提供的数据显示,当前美国市场关于Python语言的区块链职位数为 455 个,其中年薪超过 14 万美元的职位有 87 个(高薪比例为19.12%),主要雇主包括IBM、Capital One、Cisco、Accenture、Amazon.com等。
而关于Java的区块链职位数为 469 个,其中年薪超过14. 07 万美元的职位有 89 个(高薪比例为18.97%),主要雇主包括Amazon.com、Capital One、IBM、Accenture、Cisco等。
而关于Javascript的职位数为 364 个,其中年薪超过 13 万美元的职位有 78 个(高薪比例为21.42%)。主要雇主包括IBM、Accenture、Ripple、block.one、overstock等。
关于Rust的职位数为 49 个,其中年薪超过14. 08 万美元的职位有 11 个(高薪比例为22.44%),主要雇主包括Chronicled、JPMorgan Chase、NEAR、Protocol Labs等。
各编程语言PK:Solidity、Python最易学,Rust难度最高
对于‘哪种语言最难学’这个问题,每个人都有自己的想法,衡量的标准也不太一样,那如果按开发者头发浓密度的标准来看,那么我们可初步地排个名:Solidity Python Javascript Java / C# C++ Go Rust
(注:开个玩笑,这个排名参考了区块链开发者Radoslaw Fabisiak的说法)
总的来说,Solidity是一种静态类型语言,对于掌握javascript语言的人来说,Solidity是很容易学的,但其缺点也非常明显,即Solidity并不是一种通用语言(基本只适用于以太坊生态系统),而且使用这种语言,犯错误也是很容易的,因此其需要开发者非常详细地测试自己的代码。
相比之下,Python是一种流行的动态类型编程语言,Python支持面向对象和函数式编程,这种语言的受欢迎程度是显而易见的,其优点是易学,也有很多预设计的库和框架可用,并且它也是快的,而其缺点是: (1)主要用作服务器语言; (2)没有那么智能;
而Rust,其语法类似于C++,它的优势在于它是一种强类型语言(适用于大规模系统开发),并且是具有安全导向的,此外其效率与C++一样快。
而其存在的缺点便是:(1)非常难学,(2)处于发展初期,因此比较小众,所以社区相对其他语言而言(比如javascript)是相对较小的,相关完成的库也较少,因此开发者可能不得不从头写很多问题。
好了,我们简单地了解了下上面三种语言,那问题来了,究竟哪种语言更适合区块链开发?
如果我是项目方,为了安全考虑,那么我可能会偏向于选择Rust,但这也意味着开发经费会加速燃烧。
例如Parity Technologies的Dmitriy Kashitsyn这样表示:“使用Rust,是因为它让我们可以毫无畏惧地编写复杂的、性能卓越的软件,我们可以自由地试验,无论是一个简单的命令行实用程序还是一个多线程的怪物,它都没有什么区别。Rust确保我们的程序没有未定义的行为、数据争用或任何内存安全问题。更不用说,Rust速度极快,写起来很有趣,易于阅读,基本上运行时间为零。”
而如果我是一名区块链开发者,那么为了拿到更好的报酬,那我也可能会偏向于选择Rust,但这也意味着自己要花很多精力去掌握这门编程语言。
比如开发者Brenden Matthews在他的文章中写道:“最近,我用Rust编写了一些小程序,在读完一半的《Programming Rust》之后,我还是对Rust不太了解。我认为了解该语言的一个好方法是解决《Cracking the Coding Interview》一书中的 189 个问题。”
当然,选择另一项主流语言,也是非常必要的,就比如Python。
选择Rust的区块链项目有哪些?
截至目前来看,第一个选用Rust语言的区块链项目,似乎是MaidSafe,此后这启发了大名鼎鼎的Gavin Wood,后者就选用这一语言编写了Parity客户端(长期霸占以太坊客户端NO. 1 位置),从那以后,Rust语言才被区块链社区所熟知,而除了Parity客户端,Gavin Wood的polkadot/substrate也是使用了Rust语言进行的开发。
另外,备受关注的隐私币炸子鸡Grin也采用了Rust语言。
而国内的Nervos项目也同样是采用了这一语言。
而通过上面的图片,我们还可以看到,Filecoin(Protocol Labs)、eos(Block.one)、Dfinity等多个主流公链项目都在考虑使用Rust语言。
笔者认为,区块链世界的秃头率将会越来越高,你做好准备了吗。
参考文献:
1、Which programming language is the best to be a blockchain developer
2、why-rust :https://medium.com/paritytech/why-rust-846fd3320d3f
3、Programming in Rust: the good, the bad, the ugly
4、Rust今天 4 岁啦, 为什么越来越多的知名项目用Rust来开发?