学习一门新的编程语言对于经验丰富的开发人员来说是很常见的。一般的程序员可以在 3-4 周内上手,而且通常一年可以学习 2-3 种新语言。狮子座值得你关注吗?前景如何?让我们找出来。
Leo 是一种为 Aleo 区块链构建的静态类型编程语言。您可以使用它在完全私有的去中心化区块链中构建私有应用程序,基本上是 Solidity,但对于 Aleo。
让我们比较一下最简单的数学运算的语法:
Leo 的简单程序示例:
Rust 也一样:
正如我们所见,两种语言的语法大致相同,但在输入输出结构上却有很大不同。虽然在 Leo 中我们可以集成来自单独输入文件的变量,但在 Rust 中默认情况下不能这样做(只有手动描述导入文件才能这样做)。这是由于 Aleo 区块链的结构——它专注于匿名性,开发人员认为输入应该在单独的文件中描述。自己试试:
https://play.leo-lang.org/ <- Leo 在线编译器
https://play.rust-lang.org/ <- Rust 在线编译器
Leo 支持使用let
和const
关键字来定义变量。
let
定义了一个专用的程序变量。
const
定义一个常量程序变量。
常量变量不定义约束系统中的变量。在使用分配的变量进行计算时,它们的值在模式中受到限制。常数变量不能改变。它们具有与 Rust 相同的功能。
计算以 R1CS 运算电路表示。因此,计算一个选定的变量总是会导致另一个选定的变量。
变化性
Leo 中的所有变量都是不可变的——它们在赋值后不能更改,就像在 Rust 中一样。 Leo 中的所有变量都是可修改的——它们可以在赋值后更改。由于 Leo 变量是按值传递的,因此变量功能不会在不同区域保留。
静态打字
Leo 是一种具有静态类型的语言,这意味着我们必须在执行模式之前知道每个变量的类型。
显式类型是必需的。
Leo 中没有未定义或空值。分配新变量时,值的类型必须是显式的。此规则的一个例外是新变量是否从先前变量继承其类型。
价值传递
Leo 中的变量总是按值传递,这意味着它们在用作函数输入或赋值时总是被复制。
布尔值
Leo 支持传统的元组或布尔值。在语句中为布尔值添加显式布尔类型是可选的。
整数
Leo 支持有符号整数i8
、 i16
、 i32
、 i64
、 i128
和无符号整数u8
、 u16
、 u64
u32
u128
具有更高位长度的整数会在方案中产生更多限制,这会减慢计算时间。
综上所述,我们可以得出结论,学习 Leo 对于 Rust 开发者来说不会花费太多时间。然而,Aleo 开发人员面临的问题是,“我们如何鼓励开发人员从 Rust 转向 Leo?”由于需要经验丰富的建筑商,因此该项目风险很大。有一个用于此目的的 Aleo 资助计划:
为了鼓励合格的开发者加入 Aleo,该项目推出了一项资助计划:
https://www.aleo.org/post/community-grants-program
开发人员最多可以为他们的工作索要 100,000 美元。但是,要求的金额越高,所需的工作水平就越高。以下是一些赠款计划获奖者的示例:
Pine Street Labs: https ://www.aleo.org/post/aleo-grants-pine-street-labs - 基本上是一个钱包软件构建器。
与 Forte 的合作伙伴关系: https ://www.aleo.org/post/aleo-announces-partnership-with-forte - 游戏开发(不是真正的资助接受者,因为它不是初创公司)
让我们看看indeed.com :
平均而言,中高级 Rust 开发人员每年可赚取高达 150,000 美元(区块链和 Web2 示例)。比在 Leo 赚取的收入多(或少)多少?没有人知道,但您肯定可以期待一份高薪,因为 Leo 开发人员劳动力市场显然不是最具竞争力的。我认识的大多数开发人员都乐于构建自己的东西,例如 NFT 集合或 DAO,你也可以。您仍然可以在自雇时赚钱。更准确地说,它根本没有竞争力——你现在就可以成为 Leo 的第一批程序员之一!
从哪儿开始?学习Leo并不是最难的事情,因为目前项目的爱好者们已经在为Leo的教育资料做准备了!只需访问 Aleo Discord 官方频道即可查找任何语言的翻译: https ://discord.gg/aleohq
此外,您可以开始学习官方 Leo 文档: https ://developer.aleo.org/leo/language
祝你工作顺利!