国产系统级编程语言与编译器,轻松与 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 支持,这都是宝贵的动力 💪

8548 次点击
所在节点    程序员
118 条回复
zhanlanhuizhang
2023-09-26 09:17:41 +08:00
语法,看起来有点抽象
Panameragt
2023-09-26 09:17:54 +08:00
这个图标有点意思
duanquanyong
2023-09-26 09:21:45 +08:00
没啥新东西
LitterGopher
2023-09-26 09:23:03 +08:00
有配套 IDE 或 VSCode 插件么?其他编辑器插件也行,因为在官网上并没有看到有关的介绍。不然就这样硬写感觉还是挺难受的。
horizon
2023-09-26 09:27:39 +08:00
很强。
我用 rust
weiwenhao
2023-09-26 09:27:53 +08:00
@LitterGopher 估计再肝一段时间就有 lsp 了,另外已经有伙伴贡献了 vacode 高亮插件,在 issue 可以看到,我自己则是基于 vim 写的高亮插件进行编码。还没有发布
weiwenhao
2023-09-26 09:30:21 +08:00
@horizon 第一版我也是 rust 写的,如果当时没有改用 c 就好了,rust 现在是非常受欢迎的编程语言 🥺
proxytoworld
2023-09-26 09:43:52 +08:00
为啥好像 go
proxytoworld
2023-09-26 09:44:09 +08:00
不过为啥不用 llvm
Masoud2023
2023-09-26 09:51:38 +08:00
一点建议:如果你想认真搞开源,就不要把什么国产化挂在嘴边蹭那堆粉红的热度
lingxi27
2023-09-26 09:57:20 +08:00
国产可不是什么好词
duke807
2023-09-26 09:59:42 +08:00
什么时候股东分红,分红协议书什么时候公布
codeself
2023-09-26 10:02:54 +08:00
遥遥领先遥遥领先👍
Nazz
2023-09-26 10:08:57 +08:00
为什么新语言都喜欢把数据类型搞那么短, 就跟变量命名用 a1, b1, c1 似的
结构体看起来挺花哨, 像 js function 一样让人很迷
weiwenhao
2023-09-26 10:09:47 +08:00
@Masoud2023 我真心接受你的建议,我很清楚这两个字在 v 站的意义,但是当你评论的时候,其实已经间接的进行了支持。
weiwenhao
2023-09-26 10:11:05 +08:00
@Masoud2023 @lingxi27

这是计划中的原稿,但是我想能有人喷也好过无人问津吧 😭,可以看看这个 https://www.v2ex.com/t/962601
Masoud2023
2023-09-26 10:11:28 +08:00
@weiwenhao #15 这语言语法设计的挺有趣的,我有点感兴趣,已经 star 了
weiwenhao
2023-09-26 10:12:10 +08:00
@Nazz 可以看一下设计理念部分,为什么选择这么短的关键字 https://github.com/nature-lang/nature/blob/master/README_CN.md
weiwenhao
2023-09-26 10:13:41 +08:00
@duke807 进群,我晚上发个大红包 👍
pengtdyd
2023-09-26 10:14:08 +08:00
加油!!!!!!!!!!!!!!!!!这是黑暗里面的一束光。

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

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

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

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

© 2021 V2EX