社区编辑申请
注册/登录
哪些编程语言会在Web 3时代脱颖而出? 原创 精选
开发
是速度快的Rust、简单的Go,还是拥有特殊支持的Solidity?

​伴随着去年元宇宙概念的走红,Web 3已经成为今年最火热的赛道之一。客观来讲,Web3目前仍然处于早期发展阶段,全新的方案、商业模式、新奇的概念和想法层出不穷。与此同时,这个势不可挡的行业创造了巨大的人才需求,掌握区块链技术、懂得Web 3.0开发的技术人员更是成为众人追捧的香饽饽。

如果你是一名新晋的Web 3开发人员,那么你将面临众多编程语言的抉择问题。Web3时代,哪些编程语言能够脱颖而出?

Solidity:面向合约,生而强大

根据国外网站devjobsscanner今年发布的调查报告显示,排名第一的编程语言是Solidity。作为一种面向合约的高级编程语言,Solidity主要用于在以太坊区块链网络上实现智能合约。

根据官网的介绍,Solidity借鉴了一些高级语言,比如Python和JavaScript的特性。它是一种静态类型的语言,运行在Ethereum虚拟机(EVM)之上。支持继承、库和用户自定义类型以及其他功能。使用Solidity可以开发类似于投票、众筹、拍卖、多重签名钱包等功能。

简而言之,Solidity就是为智能合约而生。此外,使用Solidity开发智能合约还有以下两大优势:

·安全性

智能合约的代码需要非常严谨和安全,Solidity作为静态类型和强类型的语言,保证开发者通过编译能够迅速捕捉到一些常见错误,增强了语言的安全性。而诸如弱类型语言JavaScript,似乎并不能写出足够安全的代码;而Java/C++等语言如果移植到区块链上,可能会对系统造成较大的负担,因为整个移植过程的工作量非常大。因此,小巧和专用是Solidity语言的优势。

·特殊支持

Solidity对智能合约特定业务的支持力度很大。智能合约是需要实现的,常见的编程语言对于这一点是没有特殊支持的,而Solidity专门对此进行优化,新添了一种类型——contract。除此之外,Solidity还有一种数据类型叫做address,可以在发代币时设置铸币人地址。

需要说明的是,Solidity不是一门很复杂的编程语言,很像微缩版的JavaScript,因此对很多开发人员来说更容易上手。

虽然Solidity相对比较年轻,规模较小,可重复使用的标准库也少,但是自从2020年以来,Solidity群体及其代码库迅速发展。此外,由于以太坊是目前最庞大的开发生态,Solidity也仍然会是区块链产业中应用最广泛的黄金编程语言之一。

Rust:速度快、效率高,理想之选

与Solidity等其他基于区块链的编程语言不同,Rust并不针对加密货币,主要还是应用于区块链以外的行业。不过应用于Web3领域的Rust,同样非常优秀。

由于Web3协议在处理数千万个不可信输入时需要快速且强大的性能,Rust具有明显的优势。他能以闪电般的速度处理功能复杂的任务,同时还减少了与内存、边界、空变量、初始化变量或整数溢出等错误。

使用Rust开发Web3应用程序的优势如下:

·速度快

Rust语言拥有惊人的速度和内存效率。丰富的类型系统和所有权模型保证了其内存和线程的安全,从而能够在编译时消除很多典型的错误。此外,它可以并发(和并行)代码,快速地处理事务。这为Rust程序提供了可扩展性。因其吞吐量高,每秒事务(TPS)处理量就比其他语言更多。

·效率高

Rust还提供文档和编译器,这有助于轻松诊断问题,提高工作效率。开发人员不用花费太多时间优化代码,因为编译器会将他们的编译抽象化。值得一提的是,用Rust编写应用程序的运行速度比其他语言更快。

·互操作性

此外,Rust可以很好的与其他语言结合使用,从而轻松调用另一种语言。这个特性在万物互联的网络中更能凸显其互操作性的价值。

因此,Rust的速度非常快,内存效率很高,同时还保持了极高的可靠性。它的并发能力正是每秒处理数万甚至数十万笔交易所需要的,这使得Rust成为Web3应用程序和虚拟世界交易的理想选择。

Go:简单高效,头部语言

Go是一种开源的通用编程语言,它是一种并发的、带垃圾回收的、快速编译的语言。Go语言可以在不损失应用程序性能的情况下,降低代码的复杂性。

谷歌首席软件工程师Rob Pike直言,我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。

除比特币是由C++开发以外,目前最主流坊的客户端均由Go语言开发,这足以彰显Go语言在整个区块链行业的地位。

Go语言能够在区块链领域发挥的优势如下:

·多模块异步协同工作

区块链是多模块异步协同工作的,分成了P2P层、钱包层、内核层。其中,内核层、钱包层里都有很多不同的子模块,在负责不同的事情。Go语言的特点就很适合这方面的开发。

·社区共同协作

区块链项目主要依赖社区参与,Go语言在编译上相较于其他语言更严格,在制定规范后可以使不同开发者的代码风格趋于相近,有利于协同工作的展开。

·丰富支持

Go语言的社区生态比较完善,有很多非常好的开源库支持,使用起来非常方便,体验良好。

·主流语言的头部效应

在区块链项目中,有超过85%的项目都是基于Go语言开发的,比如Go-Ethereum(用Go语言编写的以太坊客户端)、Hyperledger Fabric(为大公司提供区块链解决方案的项目)、Loom Network、Btcd、Gochain、Dero等。此外,大部分区块链工程师都擅长Go语言,所以当新项目开始的时候,基本都会首选Go语言。

总的来说,区块链开发所使用的编程语言,需要满足执行率高、高并发、跨平台,对于网络开发的要求也很高等条件,而Go语言恰恰满足以上这些特性。 

Haskell:纯函数式,潜力黑马

Haskell是一种通用的函数式编程语言,在区块链的应用中,Haskell通常被定位为Cardano的智能合约编程语言Plutus的底层定制语言。

Haskell是一门非常数学,也非常纯粹的语言。由于它是一种静态类型的语言,代码在编译过程中很容易被评估,所以类型检查可以确保代码的简洁、清晰和正确。

从本质上来说,Haskell为描述和评估函数提供了一个理论框架,其中每个函数都是数学意义上的函数,具有高度安全性。在Hskell中,函数执行低层次的任务,并指定程序所需完成的任务。

Hskell使用惰性求值,在无必要的情况下,它会绕过不相关的代码,程序运行速度更快。此外,Hskell使用起来也非常方便,因为它利用了自动内存管理(AMM),开发者在开发他们的DAPP时不需要将内存管理任务写入代码中。

需要说明的是,截至2021年,使用Hskell语言的Web3开发者的数量依然较少,该语言尚未被多数开发者所接受。尽管学习Hskell的门槛较高,库很少,开发者人数较少且增长缓慢,但是Hskell在生产高质量软件方面仍然发挥着至关重要的作用,掌握额外的Haskell对开发者来说,更容易脱颖而出。

写在最后

事实上,Web3正在快速发展,我们无法预测哪门编程语言能够成为10年后的主流,也不知道接下来区块链领域会发生什么,但可以确定的一件事是,编程语言的整体发展趋势是越来越通用且易于上手。


参考链接

​https://solidity-cn.readthedocs.io/zh/develop/​

​https://www.likecs.com/show-204071385.html​

​https://zhuanlan.zhihu.com/p/472152487​

 

 

 ​

 

 

责任编辑:莫奇 来源: 51CTO技术栈
相关推荐

2022-07-04 08:00:00

Web开发人员编程习惯程序员

2022-07-26 23:43:29

编程语言开发Java

2022-05-13 23:35:19

Java编程语言开发

2022-05-12 09:02:50

编程语言PythonJava

2011-08-16 10:03:45

Groovy编程语言Web

2021-12-30 10:36:12

2022-01-29 00:08:30

2011-02-25 10:12:09

GoWeb

2021-12-16 15:40:35

2013-02-25 09:31:35

Web编程语言

2019-04-25 11:30:49

Javascript浏览器编程语言

2020-12-24 14:47:16

2019-12-16 11:41:34

技术周刊

2019-12-11 16:36:09

2014-08-12 09:54:35

2019-04-24 08:34:46

编程语言PythonJava

2021-11-09 23:15:20

2020-12-25 10:35:42

编程语言C语言Java

2020-01-12 19:48:13

编程语言RustPython

2018-08-21 13:50:05

同话题下的热门内容

该不该将单体架构迁移到微服务?如何创建一个无代码的自助客户聊天机器人功能测试vs.非功能测试:能否非此即彼地进行选择?JMS VS Kafka:苹果与橘子之战!「芯片法案」下周签署!台积电沉默以对佩洛西,三星、SK海力士谨慎观望Java 服务 Docker 容器化优秀实践说实话,今年互联网人跳槽的逻辑变了八个流行的 Python 可视化工具包,你喜欢哪个?

编辑推荐

2017年9月编程语言排行榜:Java、C与C++三巨头还能统治排行榜多久?2017年最受欢迎的5个前端框架比较2017年11月编程语言排行榜:脚本语言怎么了?2017年3月编程语言排行榜:Swift首次进入前十最近租房有点烦!技术人如何用Python找到称心如意的“小窝”?
我收藏的内容
点赞
收藏

51CTO技术栈公众号