I'm not sure if this is related to the time of the year, but i (and undoubtedly quite a few of you as well if you're honest) am once again getting pretty annoyed with the fact that the blogosphere is once again filled with "you gotta do this or you're just not cool"-kinda posts. The weird part is that the last time i complained about this was pretty much exactly a year ago.
These days, you're an absolute moron if you're still using a relational database. And forget about getting invited to the best parties if you're not developing according to the Command and Query Responsibility Segregation (CQRS) pattern. And if you're not doing Lean then you're really not worth listening to. Oh no wait, talking about Lean isn't hot anymore since the Toyota recalls so we can scratch that off the list, sorry about that one folks.
Now, i'm not saying that the whole NoSQL and CQRS thing is worthless. I actually find them both very interesting. But to all of you who are now pushing these things as if they are the greatest things since sliced bread, i would just like to ask one thing: can we get some more real-world examples? You do use these things in real-world projects before proclaiming that these approaches will fix all (or most) of our current problems, right? You're not just trying to be cool on the internet, are you? Honestly, of all the people that i hear talking about these things lately i only really believe about a handful of them when they say they use these things in real world projects. I'll leave it to you to figure out who the real ones are, and who is just jumping on the bandwagon.
And no, i'm definitely not going to claim that using an RDBMS for every system is the best choice. I complain about databases every day, but i'm not just going to claim that going with a NoSQL database is going to solve all our problems either. I'd actually feel rather silly doing so, unless of course i'd be able to actually back up what i'm saying. Which i haven't really seen happen yet.
The thing is... there simply is no one-size-fits-all approach to software development and it's pretty sad to see that some idiots actually appear to believe that there is. Sometimes an RDBMS makes sense, and sometimes it doesn't. Sometimes MVC makes sense, and sometimes it doesn't. Sometimes DDD makes sense, and sometimes it doesn't. Sometimes CQRS makes sense, and sometimes it doesn't. That goes for every tool, library, architectural style, or whatever other buzzword you can think of. Use what makes sense for what you need, and let's not pretend to be someone or something that you're not, ok?