这是我开发的编程语言 nature

2023-05-12 10:52:49 +08:00
 weiwenhao

当正式版本发布时,nature 会有稳定语法 API 、类型系统、GC 、协程、泛型、包管理、基础标准库。

nature 支持交叉编译,可以编译到 linux/darwin & amd64/riscv64/wasm ,同样也可以解释到 nature-vm 执行。

这是官网 https://nature-lang.org 你可以在这里得到更多的信息以及它的文档

代码仓库 https://github.com/nature-lang/nature

我不想也不能说 nature 解决了 xxx 问题,或者比 xxx 快多少。实际上 nature 只是我在学习计算机程序的构造与解释时产生的一颗种子。然后在过去的某个时刻,我决定让它发芽 🌱,所以我尽可能的将它完善并发布了出来。接下来我也将继续推动 nature 直到首个正式版本发布 🌳。

v2ex 是我目前唯一关注的程序员相关的论坛了,所以选择在这里发布。虽然 nature 目前还不能帮助大家做什么,但是我依旧希望能够得到大家的支持(求 star),大家如果有摸鱼群也可以帮忙分享一下,谢谢大家了。

另外早上发布过一次,但是节点选错了,不知道沉到哪里去了,我就厚着脸皮再发一次 🙏

11094 次点击
所在节点    程序员
121 条回复
TtTtTtT
2023-05-12 11:00:01 +08:00
超 cool ,要是能背靠大厂就不愁没人转发了!
hsfzxjy
2023-05-12 11:00:47 +08:00
赞~个人觉得,因为“想做”就去做的项目也是值得支持的
dunhanson
2023-05-12 11:04:44 +08:00
没有中文文档?
weiwenhao
2023-05-12 11:04:59 +08:00
@hsfzxjy 感谢鼓励 ✨
weiwenhao
2023-05-12 11:05:30 +08:00
kaz10025
2023-05-12 11:06:43 +08:00
膜拜大佬~已 star🥹
dw2693734d
2023-05-12 11:07:37 +08:00
专业啊
Oktfolio
2023-05-12 11:08:07 +08:00
做了每个 programmer 想做的事
0littleboy
2023-05-12 11:14:51 +08:00
nb
githmb
2023-05-12 11:22:19 +08:00
能用了吗?自举一下
weiwenhao
2023-05-12 11:24:55 +08:00
@githmb 可以 docker 快速体验,自举基本还没到考虑的时候,https://nature-lang.org/ 官网首页 fib.n 的例子。

docker run --rm -it -v $PWD:/app --name nature naturelang/nature:latest sh -c 'nature build fib.n && ./main'
xiaotiancheng
2023-05-12 11:29:00 +08:00
牛皮
yazinnnn
2023-05-12 11:31:59 +08:00
变量类型在左, 函数返回值类型在右, 函数参数的类型又在左....

用 try catch+积类型+元组处理异常, 函数签名还不带异常信息

这语法也太逆天了....

-----------------

string car = "hello world"

fn sum(int a, int b):int {
return a + b
}

fn rem(int dividend, int divisor):int {
if (divisor == 0) {
throw "divisor cannot zero"
}

return dividend % divisor
}

// v 对可能出现的错误使用 catch 关键字进行拦截
// 当不存在错误时 err == null ,在 if 判断中, null 会进行隐式类型转换为 false
// 同时利用了 tuple 解构快速赋值来将 catch 的返回结果进行解构
var (result, err) = catch rem(10, 0)
LUO12826
2023-05-12 11:36:19 +08:00
竟然没用 LLVM 全手撸,而且还是 c ,有点猛
zttviYang
2023-05-12 11:37:40 +08:00
我依稀记得几年前你在 Laravel China 上发布过一些文章
weiwenhao
2023-05-12 11:44:03 +08:00
@yazinnnn 是的,这几个月我定了太多的语法,开发语法太简单了,一天就能集成一个语法,但是我觉得这样很不好,所以我希望能得到更多人意见,更好的参考资料。 如果现在是 0.1 版本,不提供稳定的语法 api. 就是希望还能有机会反悔。
weiwenhao
2023-05-12 11:45:27 +08:00
@zttviYang 哇,应该是的,我之前是一名 laraveler 😊
weiwenhao
2023-05-12 11:47:10 +08:00
@LUO12826 你都看起源码了 🫰。 因为一开始是学习目的而非找到工作的目的,所以没有打算去学习怎么调用 llvm 的 api, 另外 c++ 项目对我来说学习成本和源码阅读成本有些高。
ired
2023-05-12 11:51:22 +08:00
加油
cohen121
2023-05-12 11:53:38 +08:00
厉害,已 star ,持续关注下

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

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

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

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

© 2021 V2EX