在 SQLite 官网有一篇名为《为什么 SQLite 是用 C 语言编写的》的文章,开头就用了两句非常简短但有力的话:
来证明这个标题:为什么 SQLite 是用 C 语言编写的
就性能来说,像 SQLite 这样频繁使用的底层库需要足够快。(SQLite 确实很快),C 语言是编写快速代码的绝佳语言,其他编程语言有时会声称“和 C 一样快”。但没有其他语言声称在通用编程方面比 C 更快,因为实际上没有比 C 更快的语言。
就兼容性来说,几乎所有系统都具有调用 C 编写的库的能力。
就低依赖性来说:用 C 编写的库不会依赖很多运行时,而其他“现代”语言通常需要加载数千个接口的数兆字节运行时。
C 是一种“老、稳、无惊喜”的语言。对一个追求长期稳定的项目来说,这比花哨的新语法更重要。
而在另外两个问题里:
C 写的库几乎能被所有语言调用,而 C++、Java 只能被相同语言用。
面向对象是一种思想,不一定要用专门的语言实现。
过程式的 C 代码常常更快、更简单。
当年(约 2000 年)C++ 编译器混乱、Java 不成熟,C 是最稳的选择。
这些语言出现太晚,SQLite 已经成型。重写可能带来更多 bug,还会变慢。
安全语言多加了运行时检查,会影响测试覆盖和性能。它们在内存不足时会直接崩溃,而 SQLite 需要能平稳恢复。
有可能,但前提是:
听说搜狐一直在用 AI 抄袭我们的内容,点名声讨第八天。
原文:https://www.appinn.com/sqlite-whyc/