卡尔达诺基金会:卡尔达诺为何选择Haskell,我们什么需要对此表示关注?

image
原文来自卡尔达诺基金会的Elliot Hill,由卡尔达诺大使陈哲Anson翻译

如果您参与Cardano生态系统已有一段时间,您可能已经了解到我们的区块链是使用“ Haskell”的功能性编程语言构建的。

Haskell是Cardano的智能合约程序设计语言Plutus的基础,它还为我们的金融智能合约领域专用语言Marlowe提供了支持,您可以在上一篇介绍去中心化应用程序的文章中了解这两种方式。

但是,Haskell并不是最著名的编程语言之一,刚进入的开发者也不会广泛地使用它。实际上,截至2020年11月,Haskell在“Google最受欢迎的编程语言索引”中排名第27位,而排在前列的是Python和Java等。

考虑到这一点,许多人可能想知道为什么Cardano首先在Haskell中实现?这是因为Haskell(特别是与形式方法结合使用)非常适合编写健壮且正确的代码。但是,要了解这对于Cardano为何重要,我们首先需要探索Haskell是什么,并检查其作为函数式编程语言的作用。

什么是Haskell?

Haskell以已故的美国数学家Haskell Curry 的名字命名,Haskell既起源于学术界和逻辑学领域,也起源于诸如Miranda之类的函数编程语言的早期版本。

这些早期影响促使人们普遍对函数式编程语言产生了广泛兴趣,从而导致Haskell在1990年被正式定义。但是早在1987年Haskell的1.0版发布之前,Phillip Wadler教授等几位研究人员已经开始研究原型Haskell组件。

函数式编程语言强调在可能的情况下使用“纯”函数:对于相同的输入始终给出相同结果的函数。虽然这是给数学家提供的,但计算机程序员习惯于这样的想法,即计算机程序中的“功能”还取决于内部状态,磁盘上的数据或当前时间。 Haskell程序员尽可能将那些“副作用”与主要逻辑分开,从而可以使对代码的推理变得更加容易(“等式推理”)。这不仅使编写正确的代码变得更加容易,而且对于测试甚至证明其正确性也都具有不可估量的价值。

随着时间的推移,Haskell经历了多次迭代,例如Haskell 98和Haskell 2010,有专门的社区成员添加了扩展,类型类,并构建了Haskell编译器来支持生态系统。现在,Haskell开发人员可以使用大量的工作以及完善的库和工具。

作为最纯粹的函数式编程语言之一,据报道,Haskell导致许多开发人员改变了他们总体上编程的方式10,并帮助提高了他们作为程序员的整体能力。

根据Haskell编程公司FP Complete的首席执行官Aaron Contorer的说法,即使开发人员没有特定的需要,Haskell也被选为最值得推荐的10种学习语言之一,这就是为什么我们鼓励所有开发人员探索Haskell。

为什么要在Cardano中使用Haskell?

我们了解Haskell是一种功能性编程语言,非常适合需要高度形式验证的高安全性代码和程序。

正如我们上面所讨论的,这使程序员可以更大程度地确定他们所实现的代码是正确的。对于卡尔达诺所设想的未来(即成为下一个全球社会和金融操作系统),保证和可靠性至关重要。

随着Cardano上去中心化应用程序,令牌化和智能合约的到来,我们预计将出现一个完整的去中心化金融服务生态系统。这将带来价值数十亿美元或更多的价值链,通过智能合约锁定,或通过去中心化的自治组织(DAO)进行管理。

但是,当前的智能合约基础架构未能确保这种链上价值,,每种语言都需要自己的工具链,库和教育资源,因此很难推出在其之上构建的智能合约和应用程序的行为。

从经验中我们知道,由此产生的漏洞,代码故障或其他区块链和智能合约语言上的智能合约漏洞会造成灾难性后果,并导致巨大的财务损失,通常为数十亿美元。这引起了一些人的疑问——从风险角度来看,智能合约对于机构用户是否可行。

这就是Haskell发挥作用的地方。通过Haskell,Plutus和Marlowe智能合约可以通过精确的,经过正式验证的代码精心实施,从一开始就提供了高度的保证。

Plutus和Marlowe是Haskell的一组库,它们利用现有的Haskell文档,工具包和高度专业的社区来提供基础,以建立安全的企业级智能合约。

Cardano的链外代码和链上代码都是用Haskell编写的,这使Cardano可以继承Haskell生态系统中已经存在的丰富研究,而不必使用全新的未经验证的智能合约语言重复造轮。

为了向更广泛的Haskell社区提供支持,卡尔达诺的工程合作伙伴IOHK最近向Haskell基金会捐款,该计划旨在支持Haskell的发展和增长。您可以在Simon Peyton Jones的主题演讲中了解有关Haskell基金会的更多信息。

在哪里可以了解有关Haskell的更多信息?

卡尔达诺以及扩展的Plutus和Marlowe平台都是开源的,可以进行探索。您可以通过Cardano Docs或直接访问Cardano GitHub来发现更多代码库。

如果您正在寻找有关Haskell的最佳指南,并且不确定从何处开始,我们建议您查看一下MiranLipovača的书或网站“ Learn a Haskell for Great Good”。该插图指南使学习Haskell变得容易,这是学习这种非常好的编程语言的最吸引人的方式之一。

Haskell开发人员的其他资源包括由Simon Peyton Jones和Haskell的开源本机代码编译器、格拉斯哥Haskell编译器(GHC)。

如果您想加入充满活力的Haskell开发人员社区,我们还建议您查看Haskell Reddit。如果您有兴趣在Cardano上进行开发,为什么不加入我们的开发人员门户等待列表?在这里,您将获得Cardano生态系统的关于开发的最新新闻。

让我们愉快地进行构建吧!

原文链接:Why Cardano chose Haskell—and why you should care