我在现有的 Nim 实现 中添加了一个 Rust 实现。这可能比我之前认为的要困难得多,可能因为我是一个新手。但是一旦它启动了,它就真的启动了!
这是对这个项目的更多思考。
对构建过程复杂性的担忧
交叉编译是解决这个问题的关键。我深入研究了这个问题。尽管我没有做 Darwin(在这个社区中非常重要),但我没有苹果电脑!这两个项目都是从 Linux 构建了 Windows 安装程序和 Linux 可执行文件。还提供了一个 Dockerfile 和构建脚本来以平台无关、可重复的方式执行此操作。
- 如果选择重写,我建议从苹果电脑上构建,进行提供的 Docker 构建,这样就可以从同一台机器上覆盖三个平台。
- 对于苹果电脑的构建,这两个项目的代码应该不会有变化(尽管我不能完全确定)
- 如果我们只做 Windows,我们仍然可以从 Windows、Linux、使用 Docker 的 Linux 或使用 Docker 的苹果电脑做。
所以为了解决这个问题:一个工作的 Docker 就是需要的所有设置,然后调用提供的 docker_build 脚本就完成了所有的构建、打包,甚至构建了 Windows 安装程序。
Nim 与 Rust
两个项目都具有相同的功能
Nim
- 与之合作愉快 - 好
- 学习、阅读和编写容易 - 好
- 在zip文件实现(我用它来规避TDEP-120)中发现了bug -> 绕过它了,但并不是很好
- 小型社区 -> 不太好
- 容易交叉编译 -> 好处
- 不负责任的选择 -> 坏处
- 简洁 -> 好处
- VS代码支持很好 -> 好处
Rust
- 绞索与纪律 -> 两者都好,也不太好
- 非常牢固 -> 好处
- 更难编写 -> 不太好
- 可读性强 -> 我想是吧
- 使用起来痛苦 -> 坏处
- 容易交叉编译 -> 好处
- 负责任的选择 -> 好处
- VS代码支持很好 -> 好处
-emacs支持一流 -> 除了我谁会在乎?
尽管Rust更加负责任,但我在做几个修复时不得不回归到Nim实现,而且在使用Rust之后,这感觉就像是重新呼吸了新鲜空气。
与Nim版本相比,Rust版本显然没有得到充分的测试。
我当然会继续维护和更新这个包装软件以及这两个改写版本,但这是我停止积极工作的地方。