国产系统级编程语言与编译器,轻松与 C 语言进行交互

2023-09-26 09:08:39 +08:00
 weiwenhao

接之前的帖子 https://www.v2ex.com/t/939430 ,感谢 V 站各位股东们,当时无论是在评论区的鼓励还是 star 支持,都给了莫大的动力,让我极限爆肝了近五个月,在这几个月的 190 多次的 commit log 中,有 60 次是在凌晨以后,18 次是在周末。


再次介绍一下 nature 项目,这是一个投入近 5 年时间的编程语言与编译器项目。

github https://github.com/nature-lang/nature 基于 MIT 协议开放源码。

官网 https://nature-lang.org/zh-Hans/ 有完整可读的中文文档。

在语言层面 nature 有以下特点

上述特性已经集成了 90%,随着标准库以逐步完善,nature 可以应用于游戏引擎与游戏制作、科学与 AI 计算、操作系统与物联网、WEB 开发。其中游戏引擎将作为 nature 0.7 ~ 1.0+ 的核心任务。

nature 适合于开源创作者/独立创作者以及学习和研究使用,我们不仅希望你能够在语言中得到便利,同样也希望你使用 nature 创作快乐且有趣的事情。


今天发布 0.4.0-beta 版本,详细的更新内容见 发行说明,这里进行简单的总结

  1. 使用 temp 模式与 C 语言等进行交互。在数据结构上和调用规范上完全兼容 C 语言,使用安全指针避免 C 语言中的空指针问题。
  2. 实现编译时错误提示与运行时错误追踪功能,能够使用 nature 进行项目代码编写与调试。
  3. 支持标准库 fmt/syscall/os/strings/time/path/compress
  4. 使用 nature 语言实现小型测试用例 parker,这是一个类似 docker 的轻量级容器,能够将工作目录打包成一个可执行文件,又或者是将 python/php 等脚本语言打包成可执行文件并运行在一个轻量级容器运行时上。
  5. 在之前的 0.2/0.3 两个版本中主要支持了泛型,联合类型,包管理等功能。

预计再肝半年左右,nature 将会推出社区可用版本,届时会有稳定的语法 api ,完善的标准库,以及开发工具支持,我也将会基于 nature 启动项目同时也是大型测试用例 'SAO'。

此外,nature 中所有的标准库代码都会合并至主仓库,欢迎来贡献(从其他语言中搬运)。

如果想更进一步关注 nature 的发展,欢迎加入编程语言交流群,我会在这里分享有意思的提案或者是学习的资料,比如最近在进行的协程提案与相关知识。当然也可以通过 github 进行 watch 来了解相关的进度。也希望能够有新的股东 star 支持,这都是宝贵的动力 💪

8584 次点击
所在节点    程序员
118 条回复
learningman
2023-09-26 14:50:25 +08:00
或者说不叫其他语言做不到,指其他语言不方便,但是这个语言可以很轻松的实现的那种,比如 golang 的协程
weiwenhao
2023-09-26 15:15:16 +08:00
@learningman nature 是基于 C 语言的改进,有更加现代的类型系统,内置多种数据结构支持,按照模块化管理明明空间,并支持包管理。具备运行时堆栈追踪(而不是 stackoverflow) 等等。 起于 C , 但同时 nature 也可以轻松的与 C 语言的模块进行交互。
DiamondY
2023-09-26 15:59:47 +08:00
已 star ,哈哈
diggerdu
2023-09-26 16:40:17 +08:00
@Masoud2023 不喜欢可以不回复 说个不好听的 你自己又做了什么拿的出手的?
diggerdu
2023-09-26 16:40:38 +08:00
已 star
Masoud2023
2023-09-26 16:47:45 +08:00
@diggerdu #64

不知道该怎么回复你,想了半天还是回复一个“典”字比较好吧
Masoud2023
2023-09-26 16:49:12 +08:00
@7gugu #35

这环境已经烂完了,没法建设了。

开源本来就应该是没有国界的,何必非得强求你是哪国的?
diggerdu
2023-09-26 17:04:49 +08:00
@Masoud2023 浑身上下除了一张嘴以外什么成果都拿不出来,就连喷人也只能憋出一个“典”的人确实挺典的 这么恨我国怎么不快进到电子宠物?天天这个环境烂了 那个没法建设了 就你世浊独醒 那你做的东西连这些烂的都不如那你是个什么 真给个机会你润了你一样也是个
keepRun
2023-09-26 17:08:20 +08:00
我提个建议:即使是编程语言也要考虑市场需求,比如 java web 端强势,python 语法简洁易用,人工智能是强项,每个语言都有自己的强项,你也得考虑自己的语言应该偏重哪些方向,解决当前技术中哪些痛点
Masoud2023
2023-09-26 17:24:34 +08:00
@diggerdu #68

典,我又恨国了。

那你去建设啊,我好期待你能建设下我国优秀的开源环境。

要么贴下你 github ,哦不,别 github 了,贴个我国优秀开源社区的 gitee 的 homepage 看看,看看你对我国优秀的开源环境做了什么贡献?
Masoud2023
2023-09-26 17:28:07 +08:00
@diggerdu #68

你真爱国那你应该现在把你所有梯子全关了,所有镜像站配置全删了,github 之类的账号全注销

然后老老实实去从 0 开始实现你那伟大全国产开源自主研发宏图大梦🤣
Aloento
2023-09-26 17:31:19 +08:00
Go + Rust ?缝合
cyndihuifei
2023-09-26 17:35:49 +08:00
加油
RockShake
2023-09-26 17:54:48 +08:00
作为学习完全没问题,但是如果不能有杀手级应用,解决特定问题,最终没法普及使用。
weiwenhao
2023-09-26 17:58:55 +08:00
@RockShake 是的,杀手级应用就靠我自己了,希望 SAO 能够成为这个杀手
weiwenhao
2023-09-26 18:01:49 +08:00
@Masoud2023 @diggerdu

两位冷静一下! 这我都不知道怎么劝你们了。😭
haha512
2023-09-26 18:25:58 +08:00
所有国产操作系统内核都是开源的 Linux ,为什么没人搞“国产操作系统内核”呢,不是要追求自主可控吗

不管怎样支持下,已 star ,不过建议还是不要用“国产”来做卖点,相对于开源的外国产,同为开源的国产项目有什么特别优势呢,仅仅因为作者是中国人吗?

java 是非国产的,很多在 java 上搞得国产 xx 框架,这就能增加对 java 的自主可控吗

为啥那么迷恋自主可控呢。1 个国家对 200 个国家 O(∩_∩)O~
skiy
2023-09-26 20:09:34 +08:00
有些问题:

1. 必须安装到 /usr/local/ 下,这个不太好。建议找 full_path 时,可以取得当前 nature 命令的路径后,再查找相找相关路径 。
2. nature 没有 --help / -h 帮助信息。只能直接跑 build ,不可以 nature run main.n 吗?
3. README 中的 http.server ,跑不通:main.n:7:22: parser variable definitions error, ')' not a ident 。

持续关注。以后有问题再到 issue 提。
B1ankCat
2023-09-26 20:19:04 +08:00
版本号有点快了,1.0.0 至少得处于可用状态,然后得找个切入方向展示语言优点
kneo
2023-09-26 20:22:21 +08:00
某些人不要颠倒主次了。难道把“国产”去掉就能让一个烂项目变成好项目?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/977144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX