首先我还是很喜欢 Rust 的所有权系统的,我觉得这是当下最为优雅的无 GC 内存管理方案。但不可否认的是,如果我们面向的是业务开发而非底层开发,大多数情况并不是不能接受 GC 带来的性能损耗。但所有权管理带来的陡峭学习曲线,对于技术团队搭建无疑是个巨大挑战(应该没人会否认培养一个成熟 Rust 工程师的难度要远远高于 Java/Go 吧)
所以有没有这样一门语言,在移除所有权系统并提供 GC 的前提下,保留 Rust 的以下特点(按重要性排列):
- 完整的泛型和标准集合类库
- 优雅的空值检查和错误处理
- 支持高阶函数等函数式编程范式
- 模式匹配
- 支持 Trait 或其他类似的 Duck typing
- 异步友好:支持协程和消息通道
- 宏编程
- 无虚拟机,原生编译
前五点可以认为是必要项,后三点属于加分项
