详解区块链编程语言:致雄心勃勃的开发人员
程序猿过渡到 Web3.0,Solidity 、Go、Haskell 、Rust,应该侧重哪种语言?
01
写在前面
元宇宙、NFT等词虽已耳熟能详,但对于身处该行业的人来说,仍然可以时刻感受到Web3.0 依然在早期阶段,全新的方案、商业模式、概念或想法层出不穷。同时,这个势不可挡的行业浪头创造了巨大的人才需求,区块链开发人员就是众人追捧的香饽饽之一。
2021 年,加入 Web3.0 的开发人员比以往任何时候都多,全年有超过 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 所使用过的Rust。
02
Javascript & Solidity:以太坊
以太坊具有四种专用语言:Serpent (受Python启发)、Solidity (受JavaScript启发)、Mutan(受Go启发) 和 LLL (受Lisp启发),都是为面向合约编程而从底层开始设计的语言。
其中 Solidity是以太坊的首选语言,它内置了Serpent的所有特性,语法接近于Javascript,易于被掌握和使用。因为JavaScript已经是Web开发人员的常用语言,因此市场上数以百万计的开发人员都已经具备了以太坊合约开发的基础。
作为同是面向对象的语言,Javascript 和 Solidity 有许多相似之处,但它们的功能却不同。Javascript 用于 Web 开发已经有一段时间,其代码增加了 Web 显示的交互性,通过动态用户体验和功能为 Web 注入新的生命力。
就像网页和移动应用程序一样,Javascript 可用于Web3 开发过程中创建 dApp, 但值得注意的是,在区块链应用中,需要注意使用 web3.js 和 ethereum.js 这类 JavaScript 库,它们能够允许用户通过本地或远程使用HTTP、IPC 或 WebSocket 与以太坊节点进行交互,同时,它们也允许开发人员使用即插即用工具,使 dApp 与以太坊兼容。
【如图】根据数据显示,掌握 Rust、Kotlin、Haskell 和 Go 是开发人员理想的技能组合。资料来源:HackerEarth 2021 开发者调查
Solidity 不是一门很复杂的编程语言,很像微缩版的 JavaScript,因此对很多开发人员来说更易上手。
尽管 Solidity 相对年轻,使用群体也相对年轻,规模相对较小,可重复使用的标准库也少。但是自 2020 年以来,Solidity群体及其代码库的发展迅速,截至 2021 年底,拥有超过 2,000 名活跃的开发人员。加之以太坊仍然是目前最庞大的开发生态,毫无疑问,Solidity 仍然是区块链产业中应用最广泛的黄金编程语言之一。
随着以太坊 2.0 的出现,将 Solidity 与其他语言结合在以太坊上创建 dApp 具有很大优势。这对于许多想要进入 Web3 的开发人员来说也是一条捷径。
03
Haskell:纯函数式 Web3 编程语
Haskell 是一种通用的函数式编程语言,在区块链的应用中 Haskell 通常被定位为 Cardano 的智能合约编程语言 Plutus 的底层定制语言。
本质上讲,Haskell 为描述和评估函数提供了一个理论框架,其中每个函数都是数学意义上的函数,具有高度安全性。在Haskell中,函数执行低层次的任务,并指定程序需完成的任务。同时它是一种静态类型的语言,代码在编译过程中被很容易被评估,所以类型检查可以确保代码的简洁、清晰和正确。
它使用惰性求值,若无必要它就会绕过任何不相关的代码,程序运行速度更快。另外,开发人员用它编写也非常便利,因为它利用了自动内存管理 (AMM),开发人员在开发他们的 dApp 时不需要将内存管理任务写入代码中。
截至 2021 年,使用Haskell 编程语言的 Web3 开发人员屈指可数,尚未被多数开发人员所接受。Haskell 的掌握门槛较高,Haskell 库很少,开发人员人数也较少且增长缓慢。但是Haskell在生产高质量的软件方面起着至关重要的作用,掌握额外的Haskell 对开发人员更容易脱颖而出。
04
Go :Cosmos 和 Polygon SD
Go 是一种开源的通用编程语言,由 Google 软件开发者于 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% 的人表示他们喜欢这种语言,并将继续用它开发。
05
Rust:简单性、并发性和高效率
早在 2015 年,一名前 Mozilla 员工就首次发布了 Rust,它是一种专注于安全和性能的多范式编程语言,其构建考虑到了速度和效率,这意味着它可以提供零成本的抽象、继承和功能特性。
Rust 具有惊人的速度和内存效率。它丰富的类型系统和所有权模型保证了内存和线程的安全,从而能够在编译时消除许多典型的错误。此外,它可以并发(和并行)代码,快速地处理事务。这为 Rust 程序提供了可扩展性,因为它的高吞吐量,所以每秒事务 (TPS)处理量比其他语言更多。
零成本抽象确保你使用的抽象几乎没有运行时开销,意味着底层代码和使用抽象编写的代码之间没有速度差异。零成本的概念也成为了 Rust 开发的核心原则。
Rust 还提供了优秀的文档和简便的编译器,这有助于轻松诊断问题,提高工作效率。意味着开发人员不需要花太多时间来优化代码,因为编译器将会把他们的编译抽象化。与其他语言相比,用 Rust 编写的应用程序运行得更快,即便是优化后的其他语言代码,也比不上Rust的运行速度。
此外,Rust 可以很好地与其他语言结合使用,从而轻松调用另一种语言,反之亦然。这个特性在万物互联的网络中更能凸显其互操作性价值。
由于这些优势,2020 年,一项针对开发人员的 Stack Overflow 调查显示,Rust 为“最受欢迎的编程语言”,大约 86% 的受访者表示他们希望在未来继续使用 Rust 进行编码。
Polkadot 的推出及其对 Rust 的使用,直接导致 Rust 开发人员的职位空缺。同时至 2021 年底,Solana 的活跃开发人数已从大约 180 人增加到近 1,000 名,增长了近 500%。表明了 Rust 强劲的应用潜力。
Rust 最适合高吞吐量和并发操作。
06
最后:Rust 是个潜力股
由于 Web3 协议在处理数千万个不可信输入时需要快速且强大的性能,Rust 具有明显的优势。它以闪电般的速度处理功能复杂的任务,同时还减少了与内存、边界、空变量、初始化变量或整数溢出相关的错误。
Rust 具有一定的学习难度,但仍有很多开发人员去学习。使用 Rust 可以创建更强大的 dApp,它可以减少许多常见的错误,使dApp 在发布后按预期运行。它的并发能力正是每秒处理数万甚至数十万笔交易所需要的,这使得 Rust 成为 Web3 应用程序和虚拟世界交易的理想选择。
另一方面,Solidity 提供了一个庞大的群体和以太坊图书馆。这种网络效应促进了合作,也增加了特定 dApp 获得更多用途的可能性。
每种语言的工作需求量都在呈上升趋势,而掌握多种语言的开发人员会有更多机会选择工作。目前,对掌握 Solidity 的开发人员的需求非常大,但学习 Go、Haskell 或 Rust 会更具优势,因为使用它们进行开发的程序员较少,同时这些语言也更受雇主青睐。
(本文以及图片为【SupraOracles】原创内容,未经账号授权,禁止随意转载;如需转载,请在公众号消息栏发送“转载”关键字获得相关信息)
关于SupraOracles
SupraOracles 是万事达卡区块链计划成员,入选过伯克利区块链加速器。项目旨在提供更快、更安全、更高吞吐量的去中心化跨链预言机解决方案。【SupraOracles 】团队也将持续为读者提供更有价值、更有深度的区块链行业内容跟干货。
往期推荐
For Better Blockchain
一文详解丨详解以太坊扩容方案:OP vs ZK Rollup
Supra报告丨SupraOracles 2022 第一季度报告
简析海外NFT市场格局:前赴后继,三足鼎立
自2021年起,NFT市场以一种前所未有的速度建立了起来。据DappRader数据,2020年时全球NFT市场资产总值仅为3.17亿美元,至2021年仅上半年就达到127.25亿美元,今年这一数据再次飙升,仅一季度全球NFT交易总资产就高达...
Tornado Cash被制裁有何影响 新的监管即将到来?前不久,美国财政部外国资产控制办公室(OFAC)宣布制裁混币协议TornadoCash,该平台已被加密货币领域的许多网络犯罪分子、不法黑客组织用来清洗和混淆他们的非法资金来源。我们最近与Blockpass的首席执行官兼联合...
区块链行业的反身性为什么币圈的牛熊市更迭如此频繁?为什么区块链项目的平均生命周期如此短暂?到底什么是死亡螺旋?这些问题可能都可以用索罗斯的反身性理论来解释。本文将首先介绍反身性理论和这一理论在股市周期中的应用;其次通过...
金色观察|游戏 NFT 市场:Opensea 最容易切的蛋糕结论:垂直NFT交易市场正在兴起,蚕食Opensea的份额游戏NFT交易市场有望成为首批成功的垂直化平台之一目前游戏NFT交易市场已经形成游戏NFT交易市场将在生态系统中占据更关键的位置过去一年的NFT市场一直很疯狂。似乎...
社交网络的充分去中心化来源:老雅痞作者:VarunSrinivasan,印度人,毕业于卡内基梅隆大学,曾在微软工作,后又创立了帮助听障人士的SoundFocus,目前在Coinbase担任主管。每年,中心化的社交网络都会对用户和开发者的行为施加更多限制。...
观点:为什么说世界上最高效的市场运行在区块链原文标题:《世界上最高效的市场运行在区块链》区块链技术带来创新,这种创新的本质往往在公众争论中消失了——争论集中在对区块链的负面看法。我们研究了区块链在什么地方以及为什么会对传统金融服务构成挑战性的竞...
流动性危机突现 DeFi反噬加密巨鲸5月那场因UST脱锚、LUNA归零带来的市场恐慌,终究伴随着加密熊市的低气压蔓延到了6月,另一组有「锚定」关系的加密资产stETH和ETH出现异动。这两种资产的常规兑换比例为1:1。从上周起,这个平衡被打破。stETH是DeFi...
Bankless:熊市中看好的8个项目最近我们都在关注跌跌不休的价格走势,但不要忘记Web3正处于建设阶段。熊市使CEO能够从基本原则角度进行思考,花更多的时间来打造有意义的技术。随着大批新进的加密用户,有大量的新领域需要建设。2021年,Web3领域...
追本溯源:比特币和以太坊的价值从何而来?每当人们提起比特币等加密货币时,总会与投机、投资、炒作甚至是庞氏骗局连结起来,似乎加密货币都仅仅是一堆废纸。作者:0xlilackatana原文:《比特币、以太坊与经济学的探究》每当人们提起比特币等加密货币时,总...
金色观察|灰度:为何说这次以太坊分叉ETHW或不可行文/MattMaximo&MichaelZhaograyscale.com背景知识</h2>以太坊计划于2022年9月15日合并到权益证明(PoS),不出所料,这引发了关于以太坊(ETHW)工作量证明(POW)分叉的猜想。虽然有以太坊分叉的先例,但我们将探讨...
金色观察|一个月断2次 Solana如何与以太坊竞争?
自诩高性能的Solana又断了。根据SolanaStatus的推文,Solana主网今晨0点30分左右再度宕机并停止新的区块生...
近期最火热的 NFT:goblintown.wtf 市值达 1.5 亿美金,地板价达 7.9ETH
OpenSea数据显示,近24小时,goblintown.wtf交易量超过4800ETH,位列站内第一,地板价已达7.9ETH,是近期最...
Solana Move-to-Earn Walken 完成了 470 万美元融资,投资方包括 Huobi、YGG 等
SolanaMove-to-EarnWalken宣布完成了由InfinityVenturesCrypto和ShimaCapital领投的470万美元融资,参投方...
Solana 在今日凌晨出块中断了约 4 小时 10 分,Solana Labs 联创表示因持久随机参数存在错误
社区反馈,Solana在今日凌晨出块中断了约4小时10分。SolanaLabs联创AnatolyYakovenko表示该问题是由于Solan...