国产编程语言 MoonBit 的标准库开源

280 天前
 ryncomaekawa

介绍:
https://www.moonbitlang.cn/blog/moonbitlang-core-opensource (英文)
https://mp.weixin.qq.com/s/ZfNys8jZ3R24eN_7PmkiXw (中文)

仓库:
https://github.com/moonbitlang/core/blob/main/CONTRIBUTING.md

Moonbit 是由粤港澳大湾区数字经济研究院(福田)- 基础软件中心打造的 AI 原生的编程语言以及开发者平台,致力于为用户提供一个完整的开发工具链,包括 IDE 、编译器、构建系统、包管理器等。

4035 次点击
所在节点    程序员
36 条回复
googleplus
279 天前
moonbit = 懵逼 ?
这个名字好内涵
没看代码,希望是好东西
roundgis
279 天前
代碼在哪裡?
littlewing
279 天前
没看懂开源了个啥?
runtime 在哪里?就几个基础数据类型和数据结构?我要怎么跑起来
keepRun
279 天前
关注有一段时间了,也加了内部群,我是非常支持的,起码是做实事的,之前我说应该加上包管理会更好玩一点,没想到不到一个月就加上了,我是支持国产编程语言发展,不过目前来看由于欧美编程语言占据了主要编程市场,所以国产编程语言只能从边边角角切入,毕竟用户不需要第二个 js 编程语言,人们需要的是差异化的编程语言,正如 lua 小众但却在某些领域不可或缺,rust 凭着安全也抢到部分 c++的市场,希望国产编程语言加油吧。
各位也可以在知乎看到 moonbit 的资讯,希望大家看完一路是怎么发展再评价吧
keepRun
279 天前
moonbit 全称月兔,作者以前开发过 rescript ,是个小众但确实被国外一些大公司用的语言,回国后发展国内编程语言,我个人还是希望能成。
其实国外基础软件这么发达不就是因为基础软件领域的市场被欧美抢占了吗
比如:操作系统、编译器、编程语言等产品欧美做好了那留给国内就没啥市场,后发者你怎么超越第一名?毕竟有了 c++就不需要第二个 c++,那国内 c++顶尖者想继续发展只有去欧美公司。
类似的还有国产开源基金会,有了 apache ,国内基金会就难以发展起来,市场被抢占了。
国产基础软件还有很长的路要走,希望相关人员能加油,脚踏实地的发展
reeco
279 天前
```
/// Iterates over each element.
///
/// # Arguments
///
/// - `self`: The array to iterate over.
/// - `f`: The function to apply to each element.
///
/// # Example
///
/// ```
/// [1, 2, 3, 4, 5].iter(fn(x){ print("\(x) ") }) //output: 1 2 3 4 5
/// ```
pub fn iter[T](self : Array[T], f : (T) -> Unit) {
let mut i = 0
while i < self.length() {
f(self[i])
i = i + 1
}
}
```

rust 味太重了吧
cus
279 天前
笑死,欧美编程语言
israinbow
279 天前
你们这次史诗级开源背后拉到了多少投资? 可以分享一下财报么?
stfnieJoeng
273 天前
@imzcg2 点开不是你截图这样啊?跟风黑?
imzcg2
273 天前
@stfnieJoeng #29 眼睛有问题,再仔细看看 commit history ,再看看现在代码加了个啥?我愿称之为没加代码
imzcg2
273 天前
@stfnieJoeng #29 pub fn Double::from_int(i : Int) -> Double {
i.to_double()
}

pub fn abs(self : Double) -> Double {
if self < 0.0 {
-self
} else {
self
}
}

/// Returns the sign of the double.
/// - If the double is positive, returns 1.0.
/// - If the double is negative, returns -1.0.
/// - Otherwise, returns the double itself (0.0, -0.0 and NaN).
pub fn signum(self : Double) -> Double {
if self < 0.0 {
-1.0
} else if self > 0.0 {
1.0
} else {
self // handles 0.0, -0.0, NaN
}
}

fn test_num[T : @num.Num + Debug + Default + Eq](
x : T,
y : T,
x_plus_y : T,
x_mul_y : T,
x_minus_y : T,
x_div_y : T,
x_signum : T
) -> Result[Unit, String] {
@assertion.assert_eq(x + y, x_plus_y)?
@assertion.assert_eq(x * y, x_mul_y)?
@assertion.assert_eq(x - y, x_minus_y)?
@assertion.assert_eq(x / y, x_div_y)?
@assertion.assert_eq(x.abs(), T::default() - x)?
@assertion.assert_eq(x.signum(), x_signum)?
Ok(())
}

test "double.num" {
let x = -500.0
let y = 792.0
test_num(x, y, x + y, x * y, x - y, x / y, -1.0)?
}
这代码确定不是小学生写着玩的?
这开源一点也不真诚
moonbitlang
273 天前
@lstz 感谢关注!标准库开源只是我们开源计划的第一步,在下半年我们会进一步对核心代码进行开源
Hooooooey
267 天前
@icyalala 昨天进去看,有一些更新了
CynicalRose
267 天前
国内押宝 serverless 可太头铁了,大公司有自己的路线,中小公司为便宜只会整云服务器,个人开发没有土壤。
Hooooooey
264 天前
@Binwalker 人家也只说了标准库开了,语言很严谨了
daysv
245 天前
一直在更新,我目前对该语言谨慎乐观,走的 ocaml 系的路子

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

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

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

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

© 2021 V2EX