3 ms·
"NoSQL is about the right tool for the job." I never liked that rationale: * The job almost certainly will change. Data lives a long time, usually much longer
by jeffdavis 14y ago
"NoSQL is about the right tool for the job."
I never liked that rationale:
* The job almost certainly will change. Data lives a long time, usually much longer than the original application.
* It's likely to conflate marketing claims with actual fitness for a purpose. A special-purpose system with special-purpose marketing may sound great if the special case lines up with what you're doing. But that doesn't mean that it's actually a better fit for that special purpose. And, thanks to confirmation bias, people almost always think their situation does sound like the special purpose for which the system was built.
* A database system is a system, not a tool. A tool is used in a particular instance for a short period of time, the results are obvious, and it's easy to switch tools if one is not working out.
Of course, there are always valid reasons to choose the special-purpose system, and I'm not saying you shouldn't have used Couchbase. I just don't like the "right tool for the job" argument.
- frenchy 14y agoI've heard DBA complain that many programmers see data as not all that important: that the data simply exists to run the program. This obviously not the case in any serious real-life environments, but I think it's the sort of attitude that many NoSQL supporters have.
- jchrisa 14y agoOne thing that become much easier with the JSON document model is sync, which is a valuable abstraction over the network layer. http://blog.couchbase.com/why-mobile-sync http://blog.couchbase.com/why-mobile-sync Another thing that you win with the document model is lots of primary key lookups, making it easy to model your data access around your hot path. http://blog.couchbase.com/performance-oriented-architecture http://blog.couchbase.com/performance-oriented-architecture
- threeseed 14y agoI just don't like the "right tool for the job" argument. Then say the "right technology for the task" then. There is no ONE database that works perfectly in every situation.
- jeffdavis 14y agoWhen installing a database system, it is rarely a "task". It's usually something that will live a long time and there will be many long-term consequences.
- rubinelli 14y agoBack in the day, many startups died with a gigantic Oracle database that cost them months of runway, because they had to "think long-term". Build for what you need now, and just make sure your "central repository of truth" isn't lossy. You can always replicate for specific use cases later.
- jeffdavis 14y agoI'm not saying that you shouldn't make short-term compromises. I'm saying that "right tool for the job" is sloppy reasoning. Even in the short term, it might be much faster to develop against a good RDBMS than a nosql system. I think many developers are so focused on "abstracting away the data store" that they forget what a good RDBMS can do for them.