我为现有的Nim实现添加了一个Rust实现。那比我想的要难,可能是因为我是新手。但一旦工作,它确实工作了!
关于这项尝试还有一些其他的想法。
关于构建过程复杂性的担忧
交叉编译是解决这个问题的关键。我深入研究了这个问题。尽管我没有为Darwin进行研究,这是这个社区中的一个重要要素,但我没有mac!这两个项目都是从Linux创建Windows安装程序和Linux二进制文件的。还提供了一个docker文件和构建脚本,以平台无关、可重复的方式执行此操作。
- 如果选择重写,我会建议从mac构建,执行提供的docker构建,并从同一台机器上涵盖所有三个平台。
- 对于mac构建,两个项目中的代码都不应该有任何改变(尽管我并不是非常确定)。
- 如果我们只想做Windows,我们仍然可以从Windows、Linux、带有docker的Linux或带有docker的mac执行。
为了解决这个问题:只需一个可工作的 Docker,然后通过提供 docker_build 脚本调用即可完成所有构建、打包甚至构建 Windows 安装程序。
Nim 与 Rust
这两个项目都有相同的功能
Nim
- 搭配愉快 -> 不错
- 容易学习、阅读和编写 -> 不错
- 发现了 zip 文件实现中的bug(我使用它来规避 TDEP-120)-> 环绕问题但不太好
- 社区规模小 -> 不太好
- 跨平台编译容易 -> 不错
- 不是最佳选择 -> 不佳
- 简洁 -> 不错
- VS 代码支持良好 -> 不错
Rust
- 让人感受到束缚与纪律 -> 两面性
- 巩固性强 -> 不错
- 编写难度大 -> 不太好
- 易读 -> 好吧我想
- 使用起来痛苦 -> 不好
- 跨平台编译容易 -> 不错
- 是负责任的选择 -> 好的
- VS 代码支持良好 -> 不错
- Emacs 支持非常好 -> 又只有我在乎吗?
虽然 Rust 责任更大,但我不得不回到 Nim 实现去进行几个修复,并且那是一种在 Rust 之后的如释重负。
Rust 版本显然没有 Nim 版本测试得那么彻底。
我当然会继续维护这个包装器和这些两个重写,但我会在那里停止对这个项目的工作。