Let's be real about dependencies
a year ago
- #Rust-vs-C
- #software-development
- #dependencies
- 文章讨论了软件开发中的依赖问题,对比了Rust和C/C++程序。
- 指出虽然Rust程序常因依赖过多受批评,但C/C++程序同样存在大量依赖,只不过它们常以系统库形式被隐藏。
- 作者通过分析多个实际C/C++程序(RViz、VLC、lighttpd、debfoster、dash)来剖析其依赖关系。
- 文章强调C/C++中使用库十分繁琐,导致开发者宁愿重新实现功能也不愿依赖外部库。
- 结论指出现代包管理器(如cargo和npm)将依赖管理从系统转移给程序员,提供了更强的可控性和可复现性。
- 作者提出静态链接、容器化或依赖本地化等解决方案,都是在控制力与复杂度之间做出的权衡。