---
# System prepended metadata

title: Rust 是否适合写 CRUD 类的应用？

---

# Rust 是否适合写 CRUD 类的应用？

有很大一部分的网络后端应用的主要任务是根据业务逻辑对数据库中的内容进行创建（Create）、删除（Delete）、查询（Read）和更新（Update），因而常被称作 CRUD。

关于 Rust 是否适合编写这类应用，以及相较其他常用于编写 CRUD 的语言，如 Java、Go 等，是否有优势，是一个较有争议的话题。这里罗列了争议双方的主要观点。

认为 Rust 不适合的点主要包括：
* 这类应用的性能瓶颈通常不在运算，而在数据库操作，Rust 的性能优势并不提供很大的价值；
* Rust 没有 GC 进行内存管理，需要处理生命周期和借用检查，
  * 这有时较为复杂，导致相比于 GC 语言开发效率偏低，而且
  * 大多数 GC 语言一般来说也是内存安全的，所以它们所解决的安全性问题很多在那些语言中也不存在；
* Rust 的相关生态，如相关库的完善程度，相比一些常用于这类应用的语言依然存在差距；
* Rust 的编译速度较慢，不适合快速迭代；
* Rust 入门门槛较高，开发者较少，较难招到人，培训也较为困难，对于需要大量开发者编写业务逻辑的情况在人力上可能存在困难。

认为 Rust 适合的点主要包括：
* Rust 有比大多数非函数式的语言更强大的类型系统，可以在开发时发现更多逻辑问题，降低开发成本；
* Rust 的 RAII 可以更好地管理除内存以外的其他资源，而 GC 语言通常没有 RAII，在其他资源的管理上更容易出错。

总体来说，技术选型没有唯一的答案，不同的项目和团队有不同的能力和需求，应根据具体情况综合考量。
