Python智能合约编程--开篇:为什么是Python
Python因其简单易用,开发效率高而深受广大开发者的喜爱和推崇。虽说编程最重要的是背后的思想,但是思想的表达也是非常的重要的。Python正是这种有强大表达能力的语言。Python有句名言:Life is short, use Python.中文版是:人生苦短,我用Python。可以从一个侧面来了解Python是一个高效的开发语言。在科学计算,网络编程,人工智能等等领域,Python有着广泛的应用。最近的消息显示Python即将被纳入高考内容,并且Python已经进入小学生的教材。详见csdn公众号文章。所以说,学习python真的是大势所趋,没有必要费时费力的劝说别人去学Python了。
以太坊智能合约功能让以太坊火了起来,甚至带动了上一波的区块链的牛市。以太坊也凭借它的智能合约功能坐上了区块链市场的第二把交椅的位置。智能合约将会是以后区块链项目的必备的功能。但是智能合约本身却也有许多的问题,最明显的就是性能和易用性问题。以太坊的solidity智能合约语言在性能和易用性上都不尽如人意。智能合约语言的设计并不是简单的事情,但是却又是区块链世界必须解决的问题。既然Python这么好用,为什么不直接用Python作为智能合约语言呢?其实,早期的以太坊就早就已经认识到了这个问题。最早的以太坊智能合约语言serpent就是一种类Python的语言,后面逐渐被solidity所替代。现在以太坊又在开发vyper语言,也是一种类Python语言。github上对它的描述是:Pythonic Smart Contract Language for the EVM。在github上已经2000多start了。为什么以太坊在类Python语言的开发上情有独忠呢,最根本的原因还是因为Python好用,用户群体广泛。还有一个原因是以太坊的创始人Vitalik Buterin是一个Python的死忠粉。实际上Python还为以太坊作出了功不可没的贡献,最早期的以太坊版本就是用Python开发的,后面才有C++和Go的版本。
这里就提出来一个问题:既然Python这么好用,为什么以太坊不直接把python作为智能合约语言?原因是不适合。Ethereum的智能合约是基于GAS付费模型的,需要精确的计算代码所占的CPU和代码操作存储空间所需的花费,以太坊称之为GAS。而原生的Python解释器有众多的代码,相对于简单的EVM虚拟机来说,要复杂很多,要计算GAS比较困难。