{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner

F*** MongoDB, F*** Node.js, and F*** You!

I hate MongoDB. I hate Node.JS. I hate everything about NoSQL. While I'm at it, I also hate Apple OS and Windows and Linux.

I hate MongoDB. I hate Node.JS. I hate everything about NoSQL. While I'm at it, I also hate Apple OS and Windows and Linux. Why all the hate, you may ask? Why do I hate everything that is so popular?

Well, I'm jumping on the bandwagon, you see. Lately, it seems that everybody in the developer community has been hating on everything. One popular subject for hate has been MongoDB. Did you know that MongoDB is actually really awful? You know, even though it is the most popular NoSQL database. So if you're one of the thousands upon thousands of developers using MongoDB, or if you’re a site with a major production deployment of MongoDB like Craigslist, bit.ly, LexisNexis, SAP, or The MTV Network, you're WRONG—at least according to Diego Basch, who says in his blog that he would "never use MongoDB, and [has] little interest in the NoSQL hype," in part because his database inserts apparently "started failing silently" once the database reached a measly 2GB.

Some of you may remember the drama less than a year ago when a supposed former user of MongoDB posted an article in Pastebin entitled "Don't Use MongoDB." Shit got real when Eliot Horowitz, the CTO of 10gen (the company that produces MongoDB), responded to the post essentially calling it out for being a fake, and that none of the client track records matched the story told in the Pastebin post.

David Mytton points out in his blog post "Does Everyone Hate MongoDB?" that the reasons these bloggers have been coming up with to complain about MongoDB are actually not very educated complaints. He explains that Basch, the author of "I'll Give MongoDB Another Try in Ten Years," made the crucial mistake of "deploy[ing] to 32 bit servers without knowledge of the limit," and that he "did not use safe writes and didn't check for errors after writes."

He also points out that most of the complaints that these bloggers make have been fixed in more recent updates, and also that they should RTFM. (On a side note, Mytton did an amazing job going case-by-case and analyzing these anti-MongoDB posts. You should definitely read his post linked above.)

MongoDB isn't the only technology to experience a hype cycle of hatred, though. You can use the template Mytton provided to analyze hate-posts about various other technologies. Node.js is another popular whipping boy, with developer-bloggers writing posts with titles that claim that Node.js:

Perhaps the blogger who has gotten closest to explaining exactly what the deal is with all this hatin' is Chad Lung, who points out in his satirically-titled blog post "Node.js is a Toy and CoffeeScript is the Devil" that he will "get more hits on this article just based on the title than my other articles which actually are much more informative."

Consider what might really be going on here. What if these bloggers don't actually believe that MongoDB and Node.js are literally worse than Hitler? What if they're just trying to get page-views? What money there is to be made in the blogosphere is reliant upon the fact that it is an attention economy, meaning basically: mo' page views, mo' money. So if you really want to drive a bunch of traffic to your site, write a blatantly inflammatory blog post about how a popular and well-liked product sucks. My title got your attention, didn’t it? Then you can sit back and count your money like the evil genius you are.  

But what about bloggers that don’t even have ads on their sites? It wouldn’t be about the money for them. Maybe it’s an ego thing. People like to hate on popular things: popular music, popular movies, popular books, popular sites, etc. If you hate on something popular, you get attention. So in the end, if all the hating isn’t for the money, it could equally be about getting attention from one’s peers.

In conclusion, haters gonna hate.



{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks