编程语言的江湖,纷争不断。
Kotlin 的崛起,吸引了大批的 Java 开发者的目光;TypeScript 的出现,对 JavaScript 的使用率带来一定影响;
近年来,越来越多的企业使用 Rust 替代C 。
而在日前,软件开发者 Drew DeVault 宣布了一种名为 Hare(野兔)的系统编程语言,矛头直指 C 语言。
Hare 原意为野兔,它的开发者希望这个编程语言能够如野兔般拥有顽强的生命力,并用“简单、稳定和健壮”作为核心形容词。
它有什么特别的吗?
世界上先后涌现 300 多种编程语言,而 Hare 偏偏把矛头指向了最强大的那个——C 语言。没错,Hare 的目标就是取代过去 50 年来最重要的编程语言。
作为一种系统编程语言,Drew DeVault 称 Hare 的开发是由 30 位工程师耗时两年开发而成,旨在成为一种 " 简单、稳定和健壮 " 的语言。
在应用场景上,Hare 使用静态类型系统、手动内存管理和最小运行时,由此它非常适合编写操作系统、系统工具、编译器、网络软件和其他低级高性能任务。
据外媒 The Register 报道,Hare的标准库中还融合了 Google 的 Go 编程语言思想,特别是在标准库以及"电池"中内置了许多功能,以此避免需要导入外部的依赖项。这样做,能避免程序员去寻找依赖项,同时也有一个可管控的范围。
Hare和 C 语言的区别
面对新语言的兴起,所谓存在即合理,不过往往也有一个通用性的原因,那就是越来越多的开发者认为在某些应用场景中,老牌语言太过复杂,甚至有人还发布了《C 不再是一门编程语言》等批判性文章。
Hare 之所以存在,DeVault 透露,Hare 比 C 简单,也与 C 最为相似,几乎所有用 C 编写的程序也可以用 Hare 编写,但 Hare比 C 简单。
Hare 的设计原则
1.信任程序员。
2.如果程序员不敢信任自己,则提供辅助工具。
3.倾向认为显式行为比隐式行为好。
4.认为好的程序必须既正确、又简单。DeVault 解释称,“Hare 使用静态类型系统、手动内存管理和最小运行时,所以特别适合编写操作系统、系统工具、编译器、网络软件以及其他低级高性能任务。”
在接受采访中,DeVault 也坦言 Hare 的很多设计灵感都源自 C 语言。
DeVault 强调,跟大部分其他语言设计者不同,他们对 C 其实非常认同。Hare 只是想对 C 中的基本设计理念做出一些保守的改进,也可以说是在经历了多年的实践应用后、重新探索 C 语言能不能做得更好。
Hare 现状
目前已经有许多基于 Hare 编程语言的程序,比如
· Himitsu :密匙管理和密码存储工具。它将密匙存储为键/值对,且允许存储附加信息,例如用户名、主机和协议。
· Helios :x86_64 系统的微内核。
· box :简单的 CLI 加密工具
· btqd :bittorrent 守护进程
· hare-libui :简单 GUI 的 libui 绑定
Hare 的 OpenGL 绑定正在进行中,目前可用于几个小游戏,比如俄罗斯方块:
使用 Hare 编写的简单光线追踪器:
Hare 标准库包含以下标准组件,该库为许多用例提供支持,而无需任何依赖关系。
· 密码学套件
· 网络支持
· 全面的日期/时间操作
· I/O 和文件系统抽象
· Unix 原语,如 poll、fnmatch 和 glob
· POSIX 扩展正则表达式
· Hare 解析器和类型检查器
该标准库让Hare 脱离了 POSIX 和 libc 的遗留问题,Hare 程序默认不与 libc 链接 。
Hare 未来
目前 Hare 正在保守开发中,标准库最大的任务是完成密码学实现,首要目标是支持 TLS (安全传输层协议)1.2 和TLS 1.3。一旦达到 1.0版本,Hare 将完成语言规范,冻结语言设计,且只对标准库进行向后兼容的更改。
此外,目前 Hare 仅支持三种架构:x86_64、aarch64 和 riscv64,未来将逐步添加 32 位平台和其他架构的支持。操作系统方面,目前 Hare 只支持 Linux 和 FreeBSD,计划在未来做更多的移植。
对此,你有什么看法呢?欢迎评论区讨论