查看原文
其他

新物种:野兔语言要挑战 C

21CTO 21CTO 2022-10-16

导读:各位亲爱的们,又来了一个野蛮动物编程语言,野兔。看它蹦蹦跳跳的来了!


本周一,软件开发者 Drew DeVault 宣布发行一种名为 Hare 的新系统编程语言,作者将其描述为“简单、稳定与健壮性”。


这些词我们以前也都听说过——但其中可能有一些新东东。


这个星球上已经有超过 300 种编程语言存在,而 Hare的目标是作为 C 的替代品,而C语言可以说是过去 50 年来最重要的编程语言。


DeVault 和大约 30 名项目贡献者已经在 Hare 项目上工作了大约两年半。他们现在已经释放了他们的兔子,以便让更多的开发者可以使用它。


“Hare 使用静态类型系统、手动内存管理和具有最小运行时,”DeVault 在官方博客文章中说道。“它非常适合编写操作系统、系统工具、编译器、网络软件和其他低级高性能的任务。”


作者承认,Hare 的主要灵感就来自 C 语言。


“我并不像许多其他语言设计者看起来那样对 C 不满意,”DeVault 说。“Hare 是对 C 的基本设计理念的一组保守特性改良,旨在成为 C 语言更优秀的样子,相当于三国事后诸葛亮的情况下构建的新型语言。”


DeVault 透露,Hare 的标准库融合了 Google 的 Go 编程语言思想,特别是在标准库中内置了足够的功能——包括自带电池,即编程术语——以避免需要导入依赖项。


“这个想法是有足够的电池来促进许多用例,而不会导致程序员安装依赖关系,同时仍然具有可管理的边界范围,”他还说道,“我认为 Go 在这方面做得相当好;事实上,一些 Hare 模块或多或少是来自 Go(尤其是加密)的接口。”


Hare 的电池包括:密码套件;网络支持;日期/时间操作;I/O 和文件系统抽象;Unix 管理,如 poll、fnmatch 和 glob;POSIX 扩展正则表达式;语法解析器与类型检查器;还有较完整的参考文档。


Hare RoadMap:https://harelang.org/roadmap


Hare 默认不链接到 C 标准库 libc,其基于qbe编译器后端。Hare 野兔编程语言的“Hello World!” 程序看起来像这样:


use fmt;export fn main() void = { fmt::println("Hello world!")!;};

使用数组的打印方式:

use fmt;export fnmain() void = { const greetings = [ "Hello, world!", "¡Hola Mundo!", "Γειά σου Κόσμε!", "Привет, мир!", "こんにちは世界!", ]; for (let i = 0z; i < len(greetings); i += 1) { fmt::println(greetings[i])!; };};


Hare 也被一些人描述为 Zig 语言的精简版本。这个 Zig 也是一种具有手动内存管理的低级系统语言。它和 Rust 几乎级别对等, 做为 C 语言替代品之一,在过去几年也赢得大量追随者。


然而,作者 DeVault 将 Hare 定义为一种可以避免 C 语言陷阱的方法。


“我认为许多旨在与 C 竞争的语言与 Hare 相去甚远,”他这样认为,“Hare 是一种保守的编程语言,它的目标是将过去 30 年的经验提炼成一种小型、简单且强大的语言,可以在未来 30 年内使用。我们不太会做出越格的创新,因为我们会精心设计。”


Hare 目前支持三种 CPU 指令集架构——x86_64、Arm 的 aarch64 和 Riscv64,支持两种操作系统—— Linux 和 FreeBSD,未来会有更多的平台支持。


按照作者 DeVault 的说法,虽然目前没有计划支持 macOS 或 Windows 等非自由软件平台,但第三方平台 或 fork 都可以尝试实现这一目标。


该编程语言仍在进行保守式开发中,目前主要关注 1.0 版本的稳定性和标准库的增强功能,例如 TLS 和原始 IP Socket支持等。


“我计划在初期阶段,大部分开发将继续专注于语言本身,” DeVault 指出,“但它目前已经对像CLI 命令行实用程序,像 cron 这样的守护进程,init 系统和管理程序都会很有用。”


DeVault 正在使用 Hare 编写密码管理器与内核——也正是该语言极其配合的项目。“我认为,一旦我们也获得 TLS 支持,许多额外的用例将会打开。”


Hare 目前遵循 BDFL(终身仁慈的独裁者)治理模式。“该语言旨在稳定并基本保持不变,因此不一定需要进行过多的治理,”DeVault 解释说,他指出目前语言的筹款活动主要集中在支付密码学审计费用上。


“Hare 是大约 30 个人在两年半的时间里努力的总和,”DeVault 这样说。“我们为此付出了非常大的努力,并为此感到非常自豪,我希望你会喜欢它。”


作者:洛逸


相关阅读:


“C不再是一种编程语言”

开发者应该知晓的五个新编程语言

Linus终于决定将Linux内核升级新的C语言标准

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存