网易首页 > 网易号 > 正文 申请入驻

对标 C 语言,30 位工程师耗时 2 年研发的 Hare 编程语言正式发布!

0
分享至

  作者 | 苏宓

  出品 | CSDN(ID:CSDNnews)

  编程语言的江湖,纷争不断。Kotlin 的崛起,吸引了大批的 Java 开发者的目光;TypeScript 的出现,对 JavaScript 的使用率带来一定影响;近年来,越来越多的企业使用 Rust 替代 C++。

  而在日前,软件开发者 Drew DeVault 宣布了一种名为 Hare(野兔)的系统编程语言,目标直指 C 语言。

  Hare 正式发布!

  作为一种系统编程语言,Drew DeVault 称 Hare 的开发是由 30 位工程师耗时两年开发而成,旨在成为一种“简单、稳定和健壮”的语言。

  在应用场景上,Hare 使用静态类型系统、手动内存管理和最小运行时,由此它非常适合编写操作系统、系统工具、编译器、网络软件和其他低级高性能任务。

  据外媒 The Register 报道,Hare 的标准库中还融合了 Google 的 Go 编程语言思想,特别是在标准库以及“电池”中内置了许多功能,以此避免需要导入外部的依赖项。这样做,能避免程序员去寻找依赖项,同时也有一个可管控的范围。

  接下来我们不妨通过简单的 Hello World 程序提前感受一下这门新语言的魅力所在:

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

  Hare 和 C 语言的区别

  面对新语言的兴起,所谓存在即合理,不过往往也有一个通用性的原因,那就是越来越多的开发者认为在某些应用场景中,老牌语言太过复杂,甚至有人还发布了《》等批判性文章。

  Hare 之所以存在,DeVault 透露,Hare 比 C 简单,也与 C 最为相似,几乎所有用 C 编写的程序也可以用 Hare 编写。

  对此,Drew DeVault 官方通过一个“计算 SHA-256 算法”的示例,来体现 Hare 的简单性:

  use crypto::sha256;use encoding::hex;use fmt;use hash;use io;use os;
export fn main() void = {const hash = sha256::sha256();const file = os::open("main.ha")!;defer io::close(file)!;io::copy(&hash, file)!;
let sum: [sha256::SIZE]u8 = [0...];hash::sum(&hash, sum);hex::encode(os::stdout, sum)!;fmt::println()!;

  Hare 也遵循了四大设计原则:

  相信程序员。

  当程序员不相信自己时,提供他们可以使用的工具。

  倾向于显式行为而非隐式行为。

  一个好的程序必须既正确又简单。

  另外需要声明的是,虽然将 Hare 的定位对准 C 语言,但 Drew DeVault 坦言,"我们并不像其他许多语言设计者那样对 C 语言感到不满",反而是,"Hare 是对 C 语言基本设计思想的一套保守式的改进,其目标是在自身完全构建好之后能够如同 C 语言所能实现的任何功能一样。"

  Hare 编程语言的功能特性

  据官方介绍,Hare 基于 qbe 编译器后端,它在占用空间小的情况下提供了良好的性能。

  Hare 的标准库拥有适量的“自带的电池”,自然地提供了广泛的功能,包括:

  密码学套件;

  网络支持;

  日期/时间操作;

  I/O 和文件系统抽象;

  Unix 原语,如 poll、fnmatch 和 glob;

  POSIX 扩展正则表达式;

  解析器和类型检查器;

  以及参考文档(https://docs.harelang.org/)。

  此外,DeVault 称,Hare 默认不链接到 libc,即 C 语言标准库。作为系统编程的一个新起点,Hare 标准库脱离了 POSIX 和 libc 遗留问题。

  除了对标 C 语言,Hare 也被认为是 Zig 语言的一个简化版本。Zig 是一种通用的编程语言和工具链,用于维护健壮、最优和可重用的软件,也是一种具有手动内存管理的低级系统语言,不过,它没有 Rust 那么复杂。

  根据 DeVault 的解释,其将 Hare 描述为一种避免 C 语言陷阱的方式,并表示道,“许多旨在和 C 语言竞争的语言实则相差太远了。Hare 是一种保守的语言,旨在将过去 30 年的经验教训提炼成一种小型的、简单的、稳健的语言,可以在未来 30 年内让程序员依赖。我们并不关注大胆的创新,而是关注精心的工程设计。”

  因此,根据 Hare 的设计路线图显示,在语言设计方面,Hare 欲在未来实现:

  针对标记联合体的指针进行匹配;

  匹配和转换的穷举法

  对常量改进

  出现错误时推迟执行(例如释放过时的对象)。

  针对 OOM 情况的更强大的错误处理

  在扩展库层面,将支持:

  图形(图像支持、像素格式转换、矢量绘图)

  邮件支持(信封解析器、net::smtp等等)

  SQL(通用接口+方言驱动)

  net::http

  在工具层面,将实现:

  构建驱动重写

  更好的 +libc 支持,hare.ini

  一个更好的测试驱动

  交叉编译

  在规格、说明书(Specification)上,将包含以下内容:

  需要审查、编辑和共识

  8 位和 16 位子目录

  ABI 规范

  此外,Hare 目前支持三种 CPU 指令集架构,分别是 x86_64、Arm 的 arch64 和 riscv64,以及 Linux 和 FreeBSD 两种操作系统。在进一步开发之后,Hare 官方也有望添加 32 位平台如 i486 系列、32 位 ARM、riscv32 的支持。

  不过,DeVault 也表示目前并没有计划支持 macOS、Windows 等非自由平台,后续如果开发者有需求,可以开发第三方或者分支实现对 Windows、macOS 的支持。

  未来计划

  Hare 虽然已经初步对开发者开放,但是很多功能仍在开发中。据 DeVault 透露,当前 Hare 的重点主要聚焦 1.0 版本的稳定性和标准库增强功能,如 TLS 和原始 IP Socket 的支持。

  “我预计在早期,大部分开发将继续专注于语言本身,”DeVault 指出,“但它已经对......命令行实用程序等系统工具、cron、init 系统等守护进程起作用。”

  据 The Register 报道,DeVault 解释说他正在使用 Hare 编写密码管理器和内核——该语言非常适合的项目。“我认为,一旦我们获得 TLS 支持,许多其他用例将会实现。”此外,Hare 目前依赖 BDFL(终身仁慈的独裁者)治理模式。“该语言旨在稳定并基本保持不变,因此不一定需要进行如此多的治理。”

  在使用上,相较于目前主流的编程语言,Hare 所遵循的许可证要更为复杂和严苛一些。

  其中,Hare 标准库是根据 Mozilla 公共许可证(MPL)的条款提供的,开发者可以与任何许可证下发布的软件进行链接,但如果你修改了标准库,则必须在 MPL 下发布衍生作品。

  构建驱动、hare 和编译器、harec 等可执行文件时,在 GPL3.0 下可用(但不是任何更高的版本)。这允许开发者自由使用和再分发,但对它的任何修改都要求你根据 GPL 的条款分享衍生作品。它比 MPL 更严格,如果你从第三方程序链接到编译器或构建驱动代码,它将要求你也发布第三方的代码。

  简而言之,开发者可以在 Hare 中编写使用标准库的程序,也能够发布这些程序。然而,如果你修改了 Hare 本身,则也必须要分享你所做的修改。

  除此之外,针对 Hare 的 Specification(说明书),用其官方的话来描述,它遵循的 CC-BY-ND 许可要严格得多。该许可证允许自由地重新分发该文件,但完全禁止衍生作品。其目的是为了防止供应商对语言本身的扩展泛滥。然而,这些条款只适用于说明书本身。

  如何评价 Hare 这门编程语言?

  随着 Hare 这门新语言的正式发布,如果想要尝鲜的开发者,不妨可以通过官网(https://harelang.org/)了解一番。不过对 Hare 语言本身,不少开发者也产生了争议。

  @ninjin:

  很高兴看到 "这个秘密语言 "出现在公众视野!我一直在关注着它的发展,并且非常喜欢这种 "简单 "的语言。简而言之,Hare 似乎是一种我真的应该喜欢的语言。

  但我觉得有点困惑的是许可问题。我属于 "BSD派",但至少可以声称我理解(并尊重)GNU 对事物的看法。看了看 Hare 的许可证,我有些困惑,传统的思维模式似乎在这里不再适用了,是什么威胁并导致了 Hare 要用如此复杂的许可?是一个商业分叉版本?社区分叉版本?专有的驱动程序?这些威胁是否真的足够现实,以至于 Hare 需要这种级别的复杂许可。还是因为我太笨了,以至于无法理解 README 中关于许可的解释?

  @jpe90:

  就我个人而言,我很喜欢它。我认为清理 C 的一些粗糙的边缘功能并提供适当的“电池”,同时保持语言本身非常简单、清晰,这一点尤为引人注目。我也很感激它似乎并没有在不需要的地方过于固执己见。

  但没有支持 macOS 有点令人遗憾,所以我必须通过 SSH 连接到我的 Linux 机器上才能使用它。我希望该语言在发展中能实现对其他平台的支持。

  祝贺所有为此工作的人。

  参考:

  https://www.theregister.com/2022/04/26/hare_c_software/

  https://harelang.org/blog/2022-04-25-announcing-hare/

  https://sr.ht/~sircmpwn/hare/

  END

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
伊朗突然轰炸以色列,意外炸碎一国面具,巴勒斯坦最大仇人出现!

伊朗突然轰炸以色列,意外炸碎一国面具,巴勒斯坦最大仇人出现!

绝对军评
2024-06-15 05:54:02
顶流回归!微信、WIFI都不能用,不影响它上架就售罄,有人买的是情怀,也有人为了……

顶流回归!微信、WIFI都不能用,不影响它上架就售罄,有人买的是情怀,也有人为了……

上观新闻
2024-06-14 20:54:38
去年履新省发改委“一把手”的他,跻身省政府党组成员

去年履新省发改委“一把手”的他,跻身省政府党组成员

政知新媒体
2024-06-15 17:22:44
革命性突破!美企成功研制核电池,几乎无辐射,电量够用100年

革命性突破!美企成功研制核电池,几乎无辐射,电量够用100年

十三级台阶
2024-06-15 15:51:27
打倒房地产的子弹 终于射中银行

打倒房地产的子弹 终于射中银行

盐不能当饭吃
2024-06-15 13:12:40
马斯克:一面是天才一面是疯子,从小混乱的家庭关系让他无法正常

马斯克:一面是天才一面是疯子,从小混乱的家庭关系让他无法正常

照见古今
2024-01-06 18:43:16
随着许家印的没落,其女儿的生活也被曝光,奢侈程度令人咋舌

随着许家印的没落,其女儿的生活也被曝光,奢侈程度令人咋舌

天闻地知
2024-06-14 14:07:23
告诉你真实的台湾,2300万人口小岛却无比发达,是时候公开原因了

告诉你真实的台湾,2300万人口小岛却无比发达,是时候公开原因了

咖啡店的老板娘
2024-06-14 16:37:25
都是花言巧语,别再“尬吹”毛东东了

都是花言巧语,别再“尬吹”毛东东了

一枚小吏
2024-06-13 09:44:46
将近40岁满脸褶,却尬演18岁少女,是谁给了她“强行装嫩”的勇气

将近40岁满脸褶,却尬演18岁少女,是谁给了她“强行装嫩”的勇气

娱乐圈十三太保
2024-05-28 13:56:53
取关球队!删除库里合照!汤普森到底想干什么?

取关球队!删除库里合照!汤普森到底想干什么?

篮球教学论坛
2024-06-16 00:34:43
从德云社高峰收徒这场闹剧的种种怪相看,“摆知”仪式应该作古了

从德云社高峰收徒这场闹剧的种种怪相看,“摆知”仪式应该作古了

综艺拼盘汇
2024-06-15 18:24:36
又帅又能踢!23岁7个月21天,索博斯洛伊成欧洲杯历史最年轻队长

又帅又能踢!23岁7个月21天,索博斯洛伊成欧洲杯历史最年轻队长

直播吧
2024-06-15 20:17:54
拒绝2年4600万!索要4年2.12亿!最不体面老将诞生,NBA只是生意

拒绝2年4600万!索要4年2.12亿!最不体面老将诞生,NBA只是生意

麦迪的篮球
2024-06-15 10:20:31
中国女排3-2土耳其!谁是赢球最大功臣,数据一目了然,2人获高分

中国女排3-2土耳其!谁是赢球最大功臣,数据一目了然,2人获高分

侃球熊弟
2024-06-15 23:32:40
种种迹象表明,A股要“变天”了?下周,大盘走势预判

种种迹象表明,A股要“变天”了?下周,大盘走势预判

牛同鑫
2024-06-15 22:49:59
汪小菲已在台北给马筱梅买房,大S一改从前,换了一种方式反击!

汪小菲已在台北给马筱梅买房,大S一改从前,换了一种方式反击!

鑫鑫说说
2024-06-14 13:47:35
事实证明,劳塔罗发挥越好,阿尔瓦雷斯离开曼城的决心越大

事实证明,劳塔罗发挥越好,阿尔瓦雷斯离开曼城的决心越大

老乐说球
2024-06-15 10:20:21
影片中“强奸片段”的假戏真做了,这到底是艺术还是故意伤害?

影片中“强奸片段”的假戏真做了,这到底是艺术还是故意伤害?

综艺拼盘汇
2024-06-15 18:20:56
Jim博士真实身份遭质疑!同一天显示6个不同IP,网友呼吁国安介入

Jim博士真实身份遭质疑!同一天显示6个不同IP,网友呼吁国安介入

六毛朵朵
2024-06-15 15:26:24
2024-06-16 05:48:49
CSDN
CSDN
成就一亿技术人
24726文章数 241820关注度
往期回顾 全部

科技要闻

TikTok开始找退路了?

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

体育要闻

莱夫利,让困难为我让路

娱乐要闻

江宏杰秀儿女刺青,不怕刺激福原爱?

财经要闻

新情况!高层对人民币的态度180°转弯

汽车要闻

东风奕派eπ008售21.66万元 冰箱彩电都配齐

态度原创

艺术
数码
本地
时尚
公开课

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

数码要闻

低至 5747 元,爱普生 CH-TW6280T 真 4K 投影仪京东大促

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

艳压四方的刘亦菲,也没能赢她

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版