I’ve helped too many teams migrate from SQLite (after a ton of growing pains and suffering from tech debt) to agree with this.
I think SQLite is awesome for some things. It’s also hard to beat in some cases. But if you use it in a non-ideal situation, you need to know when, why, and what your refactor path will be to get to the right technology. And there should be a good reason for doing that, and I can’t think of one that makes sense.
The teams I helped often said something to the effect of “SQLite is great because it got us this far!”, and while I appreciate the optimism, they wouldn’t have gone a shorter distance with MySQL or Postgres. They made the wrong choice, period, and lost a huge amount of productivity to it.
Yet there are people out there who have chosen something like firebase where SQLite would be perfectly fine and far simpler, too. I love SQLite, but I think it’s promoted incorrectly at times. It makes for some brutal growing pains when it’s used in the wrong places.
I get where you're coming from, but a few of these examples didn't grow in that sense. More so evolved and discovered how SQLite couldn't meet their needs efficiently (or at all). It became technical debt before they could properly get off the ground.
I fully agree that there are projects out there which don't need to grow, won't grow, or otherwise perfectly suit the use of SQLite. I've encountered a lot of cases where it was simply the wrong choice, though. Growth or no growth.
I think Kent likes doctrine and tends to encourage practices without addressing nuance sufficiently. The kinds of people he teaches aren't likely to understand where SQLite falls short, and it's also difficult to explain to people with less experience. The advice rubs me the wrong way as a result; in practice, I don't see people use SQLite properly more often than not.
I'd say the same thing about MongoDB. It gets abused like crazy. It has a great fit in some applications and I love using it when that's the case. Yet it was promoted as the easy and scalable database for ages, and I can't count how many projects I've encountered which were badly encumbered by the misuse of that database. Is it a bad database? No, it works well in the right place. In the wrong place, it's a remarkably poor database though. SQLite is much the same (though I'd argue a better piece of technology all around).
I think SQLite is awesome for some things. It’s also hard to beat in some cases. But if you use it in a non-ideal situation, you need to know when, why, and what your refactor path will be to get to the right technology. And there should be a good reason for doing that, and I can’t think of one that makes sense.
The teams I helped often said something to the effect of “SQLite is great because it got us this far!”, and while I appreciate the optimism, they wouldn’t have gone a shorter distance with MySQL or Postgres. They made the wrong choice, period, and lost a huge amount of productivity to it.
Yet there are people out there who have chosen something like firebase where SQLite would be perfectly fine and far simpler, too. I love SQLite, but I think it’s promoted incorrectly at times. It makes for some brutal growing pains when it’s used in the wrong places.