主页 > imtoken苹果测试版 > 区块链编程语言解释:雄心勃勃的开发人员
区块链编程语言解释:雄心勃勃的开发人员
程序员过渡到Web3、Solidity、Go、Haskell、Rust,我们应该关注哪门语言?
1.写在前面
虽然元界、NFT 等词耳熟能详,但业内人士仍能感受到 Web3 仍处于早期阶段,新的解决方案、商业模式、概念或想法层出不穷。 同时,这股势不可挡的行业浪潮也创造了巨大的人才需求,区块链开发者是大家追捧的热点之一。
2021 年,加入 Web3 的开发者比以往任何时候都多,全年有超过 34,000 人加入该行业。 与传统金融领域的情况类似,区块链领域的就业人数也处于历史高位。
【如图】2017年比特币价格暴涨后,招聘人数同比增长; Covid-19期间,比特币价格持续上涨,招聘也保持了这一趋势。
传统的互联网开发者已经掌握了Python、C++、Truffle、Javascript、Golang等多种语言,所以有Web2开发技能的人过渡到Web3还是很容易的。
除了以太坊,目前最受开发者欢迎的区块链还有Cardano、Solana、Avalanche、Tezos等,这些区块链使用多种编程语言,开发者无论掌握哪种语言都会有就业机会。 当然,加入大型开发社区更有优势,因为他们有更丰富的教程、兼容性库和其他用于移植 dApp 的即插即用工具。 当然,如果能够掌握多种编码语言的组合技能,区块链发展的路一定越走越宽。
本文主要总结了一些目前比较看重的开发语言,包括以太坊上使用的Javascript和Solidity,作为Cardano原生Plutus语言基础的Haskell,Cosmos使用的Go,最后是Solana、NEAR协议和Polkadot。 永远生锈。
2. Javascript & Solidity:以太坊
以太坊有四种专用语言:Serpent(受 Python 启发)、Solidity(受 JavaScript 启发)、Mutan(受 Go 启发)和 LLL(受 Lisp 启发),所有语言都是为面向合约的编程而设计的。
其中,Solidity是以太坊的首选语言。 它内置了Serpent的所有特性,语法接近Javascript,易于掌握和使用。 因为JavaScript已经是web开发者的通用语言,市场上数以百万计的开发者已经具备了以太坊合约开发的基础。
作为两种面向对象的语言,Javascript 和 Solidity 有很多相似之处,但它们的功能不同。 Javascript 已经在 Web 开发中使用了一段时间,它的代码为 Web 显示增加了交互性,通过动态用户体验和功能为 Web 注入了新的活力。
就像网页和移动应用程序一样,在 Web3 开发过程中可以使用 Javascript 创建 dApp,但值得注意的是,在区块链应用程序中,需要注意 web3.js 和 ethereum.js 等 JavaScript 库,这允许用户使用 HTTP、IPC 或 WebSocket 在本地或远程与以太坊节点交互,它们还允许开发人员使用即插即用工具使 dApp 与以太坊兼容。
[图]资料显示,掌握 Rust、Kotlin、Haskell 和 Go 是开发人员的理想技能组合。 (来源:HackerEarth 2021 开发者调查)
Solidity 不是一种非常复杂的编程语言,很像 JavaScript 的缩影,因此对于许多开发人员来说更容易上手。
Solidity虽然比较年轻,但是用户群体比较年轻,规模比较小,可复用的标准库很少。 但自 2020 年以来,Solidity 社区及其代码库增长迅速,到 2021 年底已有超过 2000 名活跃开发者。再加上以太坊仍然是最大的开发生态系统,毫无疑问,Solidity 仍然是其中之一。区块链行业使用最广泛的编程语言。
随着以太坊 2.0 的出现,将 Solidity 与其他语言相结合在以太坊上创建 dApps 具有很大的优势。 对于许多希望进入 Web3 的开发人员来说,这也是一条捷径。
3. Haskell:纯函数式Web3编程语言
Haskell 是一种通用的函数式编程语言。 在区块链应用中,Haskell 通常被定位为 Cardano 的智能合约编程语言 Plutus 的底层自定义语言。
从本质上讲,Haskell 提供了一个描述和评估函数的理论框架,其中每个函数都是数学意义上的函数,具有很高的安全性。 在 Haskell 中,函数执行低级任务并指定程序需要做什么。 同时,它是一种静态类型语言,代码在编译时很容易求值,所以类型检查可以保证代码简洁、清晰、正确。
它使用惰性求值,在不需要的情况下绕过任何不相关的代码,程序运行得更快。 另外,开发者写进去也很方便,因为它利用了自动内存管理(AMM),开发者在开发dApps的时候不需要在代码中写内存管理任务。
截至 2021 年,只有少数 Web3 开发人员使用 Haskell 编程语言,尚未被大多数开发人员采用。 Haskell 掌握门槛高以太坊使用最多的合约编程语言,Haskell 库少,开发人员数量少且增长缓慢。 但是 Haskell 在生产高质量软件方面起着至关重要的作用,掌握额外的 Haskell 可以让开发人员更容易脱颖而出。
4. Go:Cosmos 和 Polygon SD
Go 是软件开发人员于 2009 年推出的一种开源通用编程语言。它是一种显式静态类型语言,Go 想要做的是结合 Python 的易开发性和编译型语言的高效特性,例如C++。
Cosmos 和 Polygon SDK 通常使用 Go。 它拥有大量的原生库并且是跨平台和兼容移动设备的。 此外,它还利用“Goroutines”让 dApp 快速启动并执行任务而不会消耗太多内存。 Go 还可以同时运行多个线程,以便在大量使用时高效执行。
Go 的 Web3 实例包括 Polygon Edge SDK,这是一个用于 dApp 和区块链的模块化框架,用于构建与以太坊兼容的网络。 它将第三方网络引导到以太坊区块链上,通过他们自己的解决方案传输 ERC-20 代币和 ERC-721 NFT。 以太坊的其他实现可以使用 Go Ethereum 客户端嵌入到 Go 中。
Go并不难学,因为Go学习的初级阶段符合JS或C开发者的逻辑,同时提供大量的学习资源。 有C/C++/Java经验的开发者会更快掌握。
根据 2020 年 Stack Overflow 开发者调查,Go 相当受欢迎,超过 62% 的人表示他们喜欢这门语言并将继续使用它进行开发。
5. Rust:简单、并发和高效
早在 2015 年,一名前 Mozilla 员工首次发布了 Rust,这是一种专注于安全和性能的多范式编程语言,在构建时考虑到了速度和效率,这意味着它提供了零成本的抽象、继承和功能属性。
Rust 速度惊人且内存效率高。 其丰富的类型系统和所有权模型保证了内存和线程安全,从而消除了编译时的许多典型错误。 此外,它还支持并发(和并行)代码,可以快速处理事务。 这为 Rust 程序提供了可扩展性,因为它具有高吞吐量,因此每秒事务处理 (TPS) 比其他语言多。
零成本抽象确保您使用的抽象几乎没有运行时开销,这意味着底层代码和使用抽象编写的代码之间没有速度差异。 零成本的理念也成为了 Rust 开发的核心宗旨。
Rust 还提供出色的文档和方便的编译器,这使得诊断问题和提高工作效率变得容易。 这意味着开发人员不需要花太多时间来优化他们的代码,因为编译器会抽象出他们的编译。 与其他语言相比,用 Rust 编写的应用程序运行速度更快,即使是来自其他语言的优化代码也比不上 Rust 的速度。
此外,Rust 与其他语言配合良好,可以轻松调用另一种语言,反之亦然。 该特性可以突出其在万物互联网络中的互操作价值。
由于这些优势以太坊使用最多的合约编程语言,2020 年一项针对开发人员的 Stack Overflow 调查将 Rust 评为“最流行的编程语言”,大约 86% 的受访者表示他们希望在未来继续使用 Rust 进行编码。
Polkadot 的推出及其对 Rust 的使用,直接导致了 Rust 开发人员的职位空缺; 自 2021 年推出以来,Solana 上的活跃开发者数量增长了近 500%,从大约 180 人增加到近 1000 人,事实表明 Rust 强大的采用潜力。
[图]Rust最适合高吞吐和并发操作
6.最后:Rust是一只潜力股
由于 Web3 协议在处理数千万不受信任的输入时需要快速和强大的性能,因此 Rust 具有明显的优势。 它以闪电般的速度处理功能复杂的任务,同时还减少了与内存、边界、空变量、初始化变量或整数溢出相关的错误。
Rust 有一定的学习曲线,但许多开发人员仍在学习它。 使用 Rust 可以创建更健壮的 dApp,从而减少许多常见错误并允许 dApp 在发布后按预期运行。 它的并发性正是每秒处理数万甚至数十万笔交易所需要的,这使得 Rust 成为 Web3 应用程序和虚拟世界交易的理想选择。
另一方面,Solidity 提供了一个庞大的 swarm 和 ethereum 库。 这种网络效应促进了协作,并增加了给定 dApp 获得更多效用的可能性。
每种语言的工作需求都在上升,多语言的开发者有更多选择工作的机会。 现在,对掌握 Solidity 的开发人员有巨大的需求,但学习 Go、Haskell 或 Rust 会更有优势,因为使用它们开发的程序员更少,而且这些语言更受雇主欢迎。
(本文及图片均为【SupraOracles】原创内容,未经账号授权禁止擅自转载)