其他
Motoko 和 AgorApp 嵌入式 IDE 一览
好奇如何开始在互联网计算机上进行构建?
在本文中,我们将回顾 Motoko 诞生的一些原因、它与其他 ICP 智能合约语言相比的权衡,以及最后如何在 AgorApp - 首选在线互动编码平台上如何立即深入了解 Motoko 的语法。
特定领域语言简介
专门用于智能合约开发的特定领域语言(DSL)的前景正在不断扩大,区块链生态系统推动了如此多新的特定领域语言的研究和开发的原因有很多。
DSL 提供了许多有吸引力的功能和权衡,特别是在区块链系统的背景下 —— 金融资产是一等公民,因此对安全性和正确性的需求至关重要。
然而,让我们首先定义什么是 DSL:特定领域语言是一种编程语言,旨在解决非常特定的问题、平台或领域。
虽然像 Javascript、Python 和 Golang 这样的语言是通用的,几乎可以无缝地用于任何事情,但 DSL 的设计与它所要使用的领域和挑战紧密耦合,特定领域的设计可以带来多种好处,例如:
增强的安全性:通过缩小范围,特定领域的语言可以更轻松地集成编译时检查、安全类型系统以及各种形式的运行时保护和形式验证。 增强的开发人员体验:与前一点类似,DSL 的狭窄范围允许创建抽象和内置,从而提供对特定领域的特性和功能的一流访问。 增强的性能:最后,DSL 的高度专业化性质允许针对特定任务微调语言,以获得比通用对应语言更好的性能。
互联网计算机生态系统中选择的特定领域语言是 Motoko,Motoko 是一种编译为 WebAssembly 的静态类型语言,它的设计偏向于功能范式,但同样强调易用性和流畅的开发者体验。
对于那些使用过 Haskell 等语言的人来说,它的一些语言功能(如模式匹配)可能已经很熟悉了,但整体语法比其函数式语法更容易理解。
互联网计算机领域的另一种主要智能合约语言是 Rust,与 Motoko 不同,Rust 显然是一种通用语言。
与在以太坊上开发相比,在互联网计算机上构建是一种截然不同的体验。
虽然以太坊的 EVM 是沙盒确定性执行环境,但 ICP 架构由容器(执行代码和存储数据的计算单元)组成,可以托管成熟的 Web 应用程序、发出出站 HTTP 请求等。
在 ICP 应用程序开发的背景下,Motoko 比 Rust 提供了一些显著的优势,在本文中,我们将详细介绍它们,您还将立即在 AgorApp 嵌入式 IDE 上练习一些 Motoko。
但首先,对于所有赛博朋克和动漫爱好者来说,有一个有趣的花絮:Motoko 这个名字很可能参考了《攻壳机动队》系列的主角 Motoko Kusanagi —— 如果你还没看过,强烈推荐!
Rust 和 Motoko 的比较
Motoko 编程语言的设计旨在简化互联网计算机网络上不同实体之间的异步通信。
构建互联网计算机的模型是由内存隔离的实体组成的分布式网络,这些实体彼此异步通信,这些异步消息使用称为 Candid 的通用语言。
Candid 是一种与语言无关的接口描述语言(IDL),它允许不同的服务相互交互,而无需担心各自的实现细节,即:前端是用 Typescript 编写的,另一个服务是用 Golang 编写的,并且 ICP 应用程序是用 Motoko 编写的。
现在,分布式系统中的异步通信是一个众所周知的令人畏惧的工程领域,因此,Motoko 语言是使用 Actor 模型设计的,它是一个计算框架/范式,允许在分布式异步设置中轻松推理不同的实体。
互联网计算机上的主要参与者实体是容器,容器是一个内存隔离的实体,它同时保存已编译的代码和存储。
在编译成 WebAssembly 字节码后,Motoko 程序被部署到容器中,然后充当计算单元,可由其他容器或用户通过互联网计算机的 IC SDK 调用。
如果您想开始深入了解 Actor 模型和 Motoko 的语言功能,您可以查看 Learn Motoko 课程 - 它面向初学者,但最后一课 Actors 简介涉及到了这个概念。
请继续关注并订阅邮件列表,以便第一个知道我们何时推出更多高级课程:
agorapp.dev/editor/courses/motoko/learn-motoko/01-variables
与 Rust 一样强大,它的设计并没有考虑到 Actor 模型和 ICP 架构:Motoko 为 Candid 提供本机支持,Candid 是一个强大的类型系统,静态地确保不存在动态类型错误,最后,为交互容器通信提供更直观的抽象。
现在基准测试已经足够了,我们将在以后的文章中重新讨论这个主题,让我们直接进入 IDE。
您的第一个 Motoko 编码挑战和 AgorApp 嵌入式编辑器
想要在我们的嵌入式编辑器中尝试您的第一个 Motoko 编码挑战吗?那就点击这里查看博客原文吧:
blog.agorapp.dev/blog/a-glimpse-into-motoko-and-agorapp-embeddable-ide#your-first-motoko-coding-challenge
在接下来的几周内,我们将逐步将 web3 嵌入式编辑器功能推出到各种平台(也许是 Medium,请联系我们,告诉我们您希望我们支持哪些平台!)和合作伙伴 - 例如训练营、DeFi / 区块链协议希望使他们的技术文档具有交互性并选择内容创建者,然后,在分类结束后,它将提供给我们的所有用户。
如果您是技术 / web3 内容创建者(Udemy、YouTube、博主),并且您有兴趣将我们的嵌入式 IDE 集成到您的编码教程中或为您的受众创建自定义 IDE 实例,以便他们可以更好地跟随您的视频课程,我们很乐意听取您的意见。
我们的目标是提供新的方式,让您能够让您的受众了解您正在创建的技术内容。
您可以通过 AgorApp Discord 联系我们,或者在 Twitter 或 LinkedIn 上与我们联系:
discord.com/invite/8ZwJZsxXhk twitter.com/agorappDAO linkedin.com/company/agorappdao
关于 AgorApp
AgorApp(agorapp.dev)是一个在线交互式编码平台,提供专注于 web3 工程的课程和挑战:从 web3 领域特定语言到在 DeFi 和 NFT 协议之上构建,解决基于浏览器的 IDE 中的智能合约审计挑战或参与 Gas 高尔夫比赛。
借助 DFINITY 和 ICP,我们的核心使命是让下一波工程师进入开发者生态系统:从快速跟踪他们在 Motoko 中的编程培训和对 ICP 架构的了解,到立即向我们的用户推荐机会,以利用他们新学到的 ICP 开发技能获利。
通过我们的工作区仪表板,立即获得互联网计算机生态系统中的赠款和可用职位空缺:
agorapp.dev/workspace/jobs
您想更深入地了解我们在 AgorApp 构建的产品吗?查看我们的介绍文章并注册博客邮件列表,不要错过我们下一次对智能合约工程、Motoko、互联网计算机开发的技术深入探讨,并在其他人之前获得有关新工作和授予机会的通知。
作者:Riccardo Biosas翻译:Catherine
- 往 期 推 荐 -
DFINITY 基金会和 Patika.dev 在土耳其启动第一个以女性为中心的 Web3 计划
如果像 Twitter 这样陷入困境的公司可以由 DAO 来运营会怎样?
长按关注 IC 微信公众号
掌握最新资讯
*添加小助手微信 comiocn 进交流社群