- 作者一直在寻找完美的编程语言,但发现没有一种语言能完全满足所有标准:表达性强的类型系统、良好的社区、生态系统、性能以及开发体验。
- 之前使用过F#、TypeScript和C#,但每种语言都有其权衡:F#类型系统强大但生态较小;TypeScript生态庞大但类型系统较弱;C#稳定可靠但语法冗长且缺乏原生联合类型等特性。
- Rust因其优点而颇具吸引力:高性能、表达性强的类型系统、广泛的移植性、庞大的生态系统和稳定性。然而,其缺点包括陡峭的学习曲线和较低的开发速度。
- 作者提出了一种‘高层级Rust’方法,旨在以20%的痛苦获得Rust 80%的益处,重点关注类型优先的领域建模、采用不可变数据和克隆的函数式风格逻辑,以及领域驱动设计。
- 这种方法牺牲了部分性能(由于克隆操作,速度可能降低10-30%),但适用于Web API、业务逻辑和注重正确性的项目,而不适用于需要峰值性能的热点路径或系统。
- 作者正在开发‘LightClone’包,用于在Rust中强制实施廉价克隆操作,并邀请反馈以改进该方法,使Rust更易作为高层级语言使用。