我在现有的Nim实现中添加了一个Rust实现。这个实现比我预想的要困难,可能是因为我是一个新手。但一旦工作,它就真的工作了!
关于这个项目,还有一些想法。
对构建过程复杂性的担忧
交叉编译是解决这个问题的关键。我对此进行了深入研究。虽然我没有做Darwin,这对于这个社区很重要,但我不拥有Mac!两个项目都从Linux创建windows安装程序和Linux二进制文件。还提供了一个docker文件和构建脚本,用于以平台无关和可重复的方式执行此操作。
- 如果选择重写,我建议从mac开始,执行提供的Docker构建,这样可以从同一台机器上覆盖所有3个平台。
- 对于mac构建,两个项目中都没有改动(虽然我并不确定)。
- 如果我们只想做Windows,我们仍然可以Windows系统、Linux系统、使用Docker的Linux系统或使用Docker的mac系统来完成。
所以为了解决这个问题:一个可用的Docker即是所有设置所需,然后调用提供的docker_build脚本能完成所有构建、打包,甚至构建Windows安装程序。
Nim与Rust
两个项目具有相同的功能
Nim
- 使用愉快,因此很好
- 容易学习、阅读、编写,因此很好
- 在zip文件实现中找到错误(我用于规避 TDEP-120) -> 解决了,但不是很好
- 小型社区 -> 不是很好
- 易于交叉编译 -> 很好
- 不是负责任的选择 -> 很差
- 简洁 -> 很好
- VS code支持良好 -> 很好
Rust
- 绑定与纪律,既有好的一面也有坏的一面
- 非常稳固 -> 很好
- 更难编写 -> 不是很好
- 易于阅读 -> 我想还不错
- 使用困难 -> 很差
- 易于交叉编译 -> 很好
- 负责任的选择 -> 很好
- VS code支持良好 -> 很好
- emacs支持一流 -> 除了我,谁会在乎?
尽管Rust更负责任,但我不得不回到Nim实现中来修复几个问题,而那就像是经历完Rust后呼吸到了新鲜的空气。
Rust版本显然没有像Nim版本那样得到广泛的测试。
当然,我会继续维护这个包装以及这两个重写,但这就是我停止这方面积极工作的地方。