4 ms·
It's because picking a relational database, while usually the correct choice, is HARD when you're operating in an environment that changes quickly and has poorl
by ithrow 6y ago
It's because picking a relational database, while usually the correct choice, is HARD when you're operating in an environment that changes quickly and has poorly defined specifications.
Wouldn't this apply if you are using a static typed language too? what's harder about changing the schema in the DB?
- busterarm 6y agoYou've hit on something there as well, but essentially it comes down to forced rewrites and flexibility. We tend to choose the more flexible systems to avoid forced upfront work when changes are needed even when it's the wrong choice for the project in the long run.
- Falkon1313 6y agoEh, not so much databases, but in terms of code, super flexible 'all things to all people' generic abstractions tend to be a lot more work and a lot more difficult to debug than a tight solution tailored to the problem it's solving, written in domain terminology. If only I had a nickel for every hour I've spent debugging abstractions and indirection that were just there for the sake of adding flexibility that would never be needed.
- busterarm 6y agoI'm in agreement with you actually. I was badly suggesting that that kind of flexibility up front bites us in the ass later and it's a bad impulse often followed.
- tikhonj 6y agoYou (mostly) don't have to deal with data migrations with statically typed languages. Releasing a new version of some code is usually easier than making structural changes to a database that's in active use.
- Chris_Newton 6y agoReleasing a new version of some code is usually easier than making structural changes to a database that's in active use. Yes, and on top of that, code-only changes need to be internally consistent to make sense but DB schema changes almost inevitably require some corresponding code change as well to be useful. Then you have all the fun of trying to deploy both changes while keeping everything in sync and working throughout.
- deleted 6y ago[deleted]