Solidity 特征
Solidity 是一种面向对象的高级静态编程语言,最初运行在以太坊虚拟机 (EVM) 上构建智能合约。该语言最初由 Gavin Wood 提出理论,最终由 Christian Reitwiessner 于 2014 年开发,Solidity 提供了大多数现代编程语言中可用的概念,它具有函数、字符串操作、类、变量、算术运算等等,与 JavaScript、C++ 和 Python 等编程语言有相似之处,具有图灵完备性。
主要特点
面向对象——一种专注于围绕数据和对象而不是逻辑和功能进行软件开发的编程方法
高级语言——通过独立于计算机硬件架构使软件开发更加用户友好的语言
静态类型- 在编译时检查错误和类型的语言
Solidity 优点
作为第一门可编程的区块链智能合约语言,使用 Solidity 作为区块链编程语言的优势是:Solidity 更容易学习,并且有更多用于 Solidity 的开发人员工具。
1、更容易学习
Solidity 是一门高级语言,它的代码可读性强,易于理解,并且语法与 Javascript 类似,有编写 Javascript 经验的开发人员不会觉得学习 Solidity 很困难。
2、大量的开发者工具
Solidity 有大量优秀的开发工具可供使用,它受到 OpenZeppelin 等平台的支持,OpenZeppelin 为安全的智能合约开发提供开源库。Solidity 也有几个开发环境(IDE),例如 Remix 在线 IDE 和本地开发人员环境 Hardhat。这些 IDE 提供了允许轻松开发 DApp 的工具和功能。
3、适用范围更广
Solidity 被广泛使用在以太坊以及 Layer2 上,熟悉 Solidity 的开发人员从事区块链项目的选择范围更广。
学习考量
但与此同时,在学习 Solidity 之前需要注意的是,Solidity 开发过程中较容易埋下一些隐患而难以及时发现,因此需要反复对代码进行全面测试。
Move语言
与solidity完全不同的架构 从底层解决了安全问题 目前还未发现可重入攻击的隐患
Move 是近几个月来十分热门的编程语言,事实上,Move 是一种基于 Rust 改编的编程语言,它创建于 2019 年,最初是为 Meta 的 Diem 区块链项目而开发的,在 Diem 项目解散之后,其创始团队出走分别创立的 Aptos 与 Sui,也将 Move 作为核心编程语言。
主要特点
面向资产编程——资源(resource)作为一等公民是 Move 语言诞生之初就提出的设计理念。Move 引入了“资源”的概念,它永远不能被复制或隐式丢弃,它只能在程序存储位置之间移动,也就是说,Move 中的每个资产都具有原生稀缺性和访问控制属性。
安全——Move 语言在设计的过程中继承了很多 Rust 中的安全特性,此外,Move 团队在语言设计的过程。辅以形式化验证器 Move Prover 和运行时验证器 bytecode verfier ,为智能合约提供安全保障。
模块化——不同于 Solidity,智能合约中的数据只能在合约范围内修改,不能从外部修改其他合约。在 Move 开发中,很多基础的模块是可以持续迭代升级的。
由于 Move 语言目前还十分年轻,其距离大规模的工程化使用仍然有一定的距离,仍然需要时间来证明自己是安全的且不易出错;Move 开发链尚不完善,合约规范尚未形成,Move 在 Aptos 和 Sui 中的一些定制化特性也给面向多链或者全链的应用开发者带来麻烦;
Move 的合约生态尚不完善,贸然进行 Move 的合约开发也会面临很多冷启动的问题。