Why Is SQLite Coded In C
为什么在C中编译SQLite?
1. C语言是最好的
1.1.性能
1.2.兼容性
1.3.低相关性
1.4.稳定性
1. C语言是最好的
自从2000-05-29开始以来,SQLite已经在通用C语言中实现.C语言一直是并且将继续是实现像SQLite这样的软件库的最佳语言。目前还没有计划在任何其他编程语言中重新编码SQLite。
C语言是实现SQLite最好的语言的原因包括:
- 性能
- 兼容性
- 低相关性
- 稳定性
1.1. 性能
像SQLite这样的密集使用的低级库需要很快。(SQLite速度很快,例如,请参阅内部与外部BLOB相比,文件系统速度快35%。)
C语言是编写快速代码的绝佳语言。C有时被描述为“便携式汇编语言”。它使开发人员能够尽可能接近底层硬件编码,同时仍然保持跨平台的便携性。
其他编程语言有时声称“与C语言一样快”。但是没有其他语言声称比通用编程的C语言更快,因为没有其他语言。
1.2. 兼容性
几乎所有的系统都可以使用C语言编写的库进行调用。其他实现语言并不适用。
因此,例如,用Java编写的Android应用程序能够通过适配器调用SQLite。如果SQLite已经用Java编码,那么对于Android来说可能会更方便,因为这会使界面更简单。但是,在iPhone上,应用程序使用Objective-C或Swift编码,这两者都不能调用用Java编写的库。因此,SQLite在使用Java编写的iPhone上无法使用。
1.3. 低相关性
用C语言编写的库不具有巨大的运行时间依赖性。在其最小配置中,SQLite仅需要标准C库中的以下例程:
memcmp() memcpy() memmove() memset() | | strcmp() strlen() strncmp() |
---|
- memcmp()
- memcpy()
- memmove()
- memset()
- strcmp()
- strlen()
- strncmp()
在更完整的构建中,SQLite还使用malloc()和free()和操作系统接口等库例程来打开,读取,写入和关闭文件。但即使如此,依赖关系的数量也非常小。相比之下,其他“现代”语言通常需要装载数千和数千接口的数兆字节运行时。
1.4. 稳定性
C语言老旧无聊。这是一个众所周知的,很好理解的语言。这正是开发像SQLite这样的模块时所需要的。编写一个小巧,快速和可靠的数据库引擎是很困难的,因为每次更新实现语言规范时都没有实现语言的变化。
SQLite is in the Public Domain.