总结一下个人想要的语言特性

  1. 完善的模式匹配
  2. lazy表达式和类型,同时支持memoize,可以照搬ocaml的
  3. 异步,生成器函数/yield支持
  4. gadt
  5. trait目前还是太简单了,有没有计划更进一步的hkt?

用了一段时间了, 总体感觉如下

  1. 语言偏FP, 类型系统稍微有点混乱, 语法糖过多, 尤其是现阶段不太好,类型系统中没有Any(就连面向系统编程的Rust都有), 在相当多的场景下很难用
  2. 核心库对于一门语言太重要了, 关系到生态能否快速发展起来。现阶段的核心库缺失的东西太多了,我想写个东西, 需要用到基于流的文件读取, zip包, xml基于流的读写包,都缺失, 让人很沮丧, 暂时先放弃, 看看后续语言的发展
  3. 异步的缺失太重要了
  4. 元编程也很重要,Go虽然没有直接提供, 但是通过tag也能实现
  5. 反射虽然有性能损失, 但某些场景下, 确实是必要的

可以参考下现阶段流行的语言, Rust, Go,Kotlin, Swift这些语言的特性, 以及各自的优缺点, 希望能够基于工程角度出发, 以及语言流行度的调查,
我再弱弱的说一句, OCaml很好, 但是有多少家公司的主力开发语言是它呢
就连Go语言也新增了Any关键字,因为Interface{}对于新手或者其他语言转过来的很难理解

当然, 这些都是我个人的一点见解, 有不对的地方, 请多多谅解, 指正,谢谢~~~

有一个问题是 MoonBit 现在的核心用户到底是哪些人. 现在 MoonBit 有 wasm js 两个后端, 还在加一个 native 后端. 语言要兼顾估计也更难了. 不同的人群要的功能还不一样.

3 个赞

这也是我的疑问,官方说是专注于 pure ,也就是没有侧重任何一个端,感觉上是缺了个主攻方向。