简评: SQLite 官方出品.
C 是最好的选择
从 2000 年 5 月 29 日开始, SQLite 就选择了 C 语言. 直到今天, C 也是实现 SQLite 这样软件库的最佳语言.
C 语言是实现 SQLite 最好的语言的原因包括:
性能.
兼容性.
低依赖性.
稳定性.
性能
像 SQLite 这样被密集使用的基础库需要有很好的性能 (SQLite 确实很快, 可以看看 Internal Versus External BLOBs https://sqlite.org/intern-v-extern-blob.html 和 35% Faster Than The Filesystem https://sqlite.org/fasterthanfs.html 两篇文章).
C 语言很适合写这样有性能要求的程序. C 语言有时被称为便携式汇编语言, 让开发者能尽可能的接近底层硬件编码, 同时保证跨平台的便携性.
当然, 也有其他的编程语言声称和 C 一样快或者更快, 但没有一个能和 C 一样通用.
兼容性
目前几乎所有的系统都可以调用由 C 语言编写的库.
比如, 用 Java 编写的 Android 应用能通过 adapter 来使用 SQLite. 如果 SQLite 是用 Java 编写的, 这对于 Android 肯定会更方便. 但在 iPhone 上应用是 Objective-C 或者 Swift 编写的, 这两种语言都没办法调用 Java 库. 因此, 如果 SQLite 选择用 Java 编写, 那在 iPhone 上就没办法用了.
低依赖性
用 C 来编写库不会在运行时有太多的依赖. 在最小的配置下, SQLite 只需要 C 标准库里的:
- memcmp()
- memcpy()
- memmove()
- memset()
- strcmp()
- strlen()
- strncmp()
在更复杂的配置下, SQLite 可能还会用到 malloc(),free() 和一些操作系统接口来打开, 读取, 写入和关闭文件. 但即使这样, 依赖的数量也非常小.
稳定性
这个稳定性是指语言的稳定性. C 语言可能是老旧又无聊, 但却正好很适合开发像 SQLite 这样更注重长期稳定的模块.
来源: http://www.jianshu.com/p/9d87f1ed1e4b