SQLite is not directly comparable to client/server SQL database engines such as MySQL, Oracle, PostgreSQL, or SQL Server since SQLite is trying to solve a different problem. Client/server SQL database engines strive to implement a shared repository of enterprise data. They emphasize scalability, concurrency, centralization, and control. SQLite strives to provide local data storage for individual applications and devices. SQLite emphasizes economy, efficiency, reliability, independence, and simplicity. SQLite does not compete with client/server databases. SQLite competes with fopen().
“Code isn't enough on its own. We throw code away when it runs out its clock; we migrate data to new databases, so as not to lose one precious bit. Code is a story we tell about data.”
“But programmer culture tends to devalue data. The database is boring, old, staid technology. Managing it is an acronym job (DBA, for database administrator). You set up your tables and columns, and add rows of data. Programming is where the action is. Sure, 80 percent of your code in Swift, Java, C#, or JavaScript is about pulling data out of a database and putting data back in. But that other 20 percent is where the action is, where you make the next big world-shaking thing.”
— Paul Ford, in this column
The limits of my language mean the limits of my world.