智能合约语言
编写程序一定离不开计算机语言,最开始只有最低级的机器语言,通过01串编程。01串编程非常恼火,就像把盐粒和味精混在一起,让你挑出来混进去的一粒白砂糖。
逐渐,汇编语言诞生了。汇编语言采用助记符的方式替代了机器语言中的操作码,用地址符号或标号代替了机器语言中的指令或操作数地址。对人而言,助记符显然比一大串01数字简单。通过汇编语言的翻译功能,大大提高了编程效率。也使得汇编语言逐渐占有了一席之地。
不过,汇编的一席之地也渐渐被挤压,终于诞生了集万千宠爱于一身的高级语言,如主流的Java、C、Python、C++、JavaScript、Go等。有了高级语言的加持,程序员的生产力得到了大幅提高。
区块链的智能合约也一样,智能合约需要计算机语言来书写。那目前的智能合约主要支持哪些编程语言呢?以及哪些编程语言比较主流呢?
最开始的以太坊,设计了Solidity语言,Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。Solidity 语言深受 C++、Python 和 JavaScript 的影响,针对以太坊 (Ethereum) 虚拟机 (EVM) 设计。
随着越来越多的区块链底层出现,区块链中智能合约支持的编程语言也越来越多。
像Hyperledger Fabric,支持Go、Node.js、Java等智能合约语言。
像百度超级链,支持C++和Go语言。
“长安链・ChainMaker” 已经支持使用 Golang、Rust、Solidity、TinyGo、C++ 进行智能合约开发,未来还将支持Java语言。
在公链环境,Move 编程语言被誉为最适合编写区块链智能合约的语言之一,主要原因是 Move 对于区块链最核心的 Token 资产进行了更为贴合的处理,弥补了 Solidity 在直观性和安全性的缺陷。Move 的可编程 Resource 是其变得安全且强大的核心,实现了真正意义上的数字资产化。
还有Vyper语言,Vyper 是一种创建于 2017 年的 Pythonic 智能合约语言,可编译为像 Solidity 一样的 EVM 字节码。开发人员从 Solidity 的问题中吸取了教训,并将该语言设计得更简单、更安全、更易于审计。
国内目前比较流行的智能合约编写语言主要是:Solidity、Go、Rust、C++等。