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. 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:
- "is absolutely terrible"
- is "a giant step backwards"
- "has jumped the shark"
- (if you're using it,) "you're doing life wrong"
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.







Comments
Jonathan Fisher replied on Sun, 2012/09/30 - 11:39pm
Cross-cutting technical concerns like transaction handling, rollback, locking, and consistency should totally be intertwined into your business logic. Because anything else is for pansies that don't understand rockstar technology.
Speaking of business logic, that should be programmed as a series of nonsensical events and execute very slowly. Because speed doesn't really matter anyway for most applications, especially if you're using the language that figuratively literally INVENTED non-blocking IO.
Trolling? Yep, I bit.
Chris Travers replied on Mon, 2012/10/01 - 12:06am
It seems to me that the reason for the hatred is quite simple: MongoDB is a poor substitute for a relational database management system. Often times it is sold as such a substitute, people end up in trouble, and they come out hating the technology. This means that there are several problems which should be corrected asap by 10gen:
- Stop selling MongoDB as an alternative to an RDBMS.
- Reposition it as an RDBMS adjunct and caching solution (it's very good at these roles btw)
- Stop dismissing important features of the RDBMS that a lot of folks need.
If you sell an adjustable wrench as an alternative to a hammer prepare to be hated for it.Ender Orak replied on Mon, 2012/10/01 - 9:21am
Nurul Ferdous replied on Mon, 2012/10/01 - 9:45am
Mahbubur Rahman replied on Tue, 2012/10/02 - 6:06am
Adrien Be replied on Thu, 2012/10/04 - 9:54am
Adrien Be replied on Thu, 2012/10/04 - 9:56am
in response to:
Mahbubur Rahman
@Mahbubur: then go the f*** away and read something else !
joke.. of course :)
Liam Knox replied on Sun, 2012/10/07 - 3:47pm
in response to:
Adrien Be
William Kemp replied on Mon, 2012/10/08 - 6:45pm
Jonathan Fisher replied on Mon, 2012/10/08 - 11:38pm
Just heard from another startup today that Microsoft is giving them free devices and tech support to develop Node.js applications on their cloud platform.
Meanwhile at Oracle, they're trying to sue google for actually using Java. I like Java, I wish larry would get a fucking clue.