Why NoSQL is bad for startups
We launched pcapr over a year ago now with just a few of us working part time to build and manage the site. pcapr is powered by CouchDB, a NoSQL database written in Erlang with JavaScript as the primary query language. Frankly, this has been a disaster. We are planning on rebuilding the site with Java, Hibernate and MySQL for a number of reasons.
Programming, especially with databases, used to be challenging. I remember having late night meetings about tables, normalization and migration and how best to represent the data we have for each packet capture. For a startup, these kinds of late night meetings are critical in establishing a bond amongst the engineers who are just learning to work with each other. NoSQL destroys this human aspect in a number of ways.
Erlang is Spooky
CouchDB, written in Erlang is honestly spooky. With an up time of 8 months and memory utilization of 0.1%, we think it’s actually survived a few power outages too! The joy of running an online community site is the debugging, thinking and solving locking and concurrency issues, outages and how best to scale the site as the traffic continues to increase. CouchDB has taken all that fun away. :-( Things just work, we never have to see why something’s broken and not worry too much about scaling. This means we don’t have to hire more people to manage the site which means we can’t show the investors and our customers that we are growing rapidly.
Lack of JOINs kills the brain
A recent Scientific American article shows that solving complex problems actually helps the brain. Solving normalization and data representation issues increases brain development and helps the engineers be very creative about solving these challenges.
The whole Map/Reduce thing ruins everything and puts the brain in sleep mode for the most time. What used to take hours and weeks now just takes a couple of minutes and most of our engineers are starting to not show up to work. They get everything done in a few hours and go home and the office looks like it’s haunted. Not good, not good at all.
What’s up with this JavaScript anyways?
We want our typed languages back! We want compile errors, exceptions thrown around, dead locks, memory leaks, NULL pointer exceptions and more of those. When you can do 90% of the work in the browser, there is no compile-debug-run cycle anymore. What happens to all those IDE’s and compilers that other startups try and build? It ruins the economy, IMHO. What we need is native Java support in browsers. Maybe we can push the HTML5 group to seriously consider this. I would rather do
PacketSplitter packetSplitter = new PacketSplitter();
packetSplitter.run(new IPacketSplitterProcessor() {
public void run() {
}
});
than
packetSplitter.run(function() {
...
});
More code implies more complexity which means better brain cycles spent on debugging and solving problems.
No more SQL injection
NoSQL obviously means no more SQL injection and this just puts an end to all web app scanners. Gone are the days security engineers used to geek out on how 1+1 meant DROP TABLE, while all it now stands for is a boring 2! When your site doesn’t have SQL injection, you lose the ability to show off how much you know about prepared statements and input validation and frankly it’s a buzz killer at parties.
I could go on and on, but you get the point. Life’s just too simple now. And it shouldn’t be this way for startups. It’s bad for investors, bad for the economy and I think we are losing the edge that programmers used to have by switching to NoSQL.
So get on your logo makers and build a “Say No to NoSQL” banner. We need this No-NoSQL movement to help make startups fun again. And yes, we are ripping out CouchDB from pcapr and moving to an all Java, Hibernate, MySQL stack. If you find a page on pcapr that’s not vulnerable to SQL injection, please let us know! We can then do a coordinated security advisory and be the talk of the day!
Posted in CouchDB, pcapr, Announcements | Permalink | Trackback
April 1st, 2010 at 8:39 am
[…] Mu Dynamics Research Labs » Blog Archive » Why NoSQL is bad for startups labs.mudynamics.com/2010/04/01/why-nosql-is-bad-for-startups – view page – cached We launched pcapr over a year ago now with just a few of us working part time to build and manage the site. pcapr is powered by CouchDB, a NoSQL database written in Erlang with JavaScript as the primary query language. Filter tweets […]
April 1st, 2010 at 9:20 am
Social comments and analytics for this post…
This post was mentioned on Twitter by pcapr: Blogged: Why NoSQL is bad for startups http://bit.ly/aHFiFc…
April 1st, 2010 at 11:50 am
This just made my day. I was playing with Django on GAE, and then I saw the title of this article on Twitter, wondering what’s so wrong with NoSQL databases. After the third paragraph, I was laughing out very loud till the end of the article. Thanks, guys!
April 1st, 2010 at 2:50 pm
[…] by maggie on Apr.01, 2010, under entry My favorite joke today was the announcement from Mu Dynamics Research Labs that they’re moving away from NoSQL. It’s bad for startups! Programming, especially with databases, used to be challenging. I remember having late night meetings about tables, normalization and migration and how best to represent the data we have for each packet capture. For a startup, these kinds of late night meetings are critical in establishing a bond amongst the engineers who are just learning to work with each other. NoSQL destroys this human aspect in a number of ways. more […]
April 1st, 2010 at 4:27 pm
hehe great article.
April 1st, 2010 at 8:27 pm
[…] Mu Dynamics Research Labs » Blog Archive » Why NoSQL is bad for startups […]
April 2nd, 2010 at 12:50 am
Why yes, getting rid of compile time errors and replacing them with run-time errors that happen on environments out of your control is a great idea. As is hiring engineers who think 8 months uptime is a lot. And everyone knows how static types cause deadlocks and exceptions.
April 2nd, 2010 at 9:20 am
What a joke
April 2nd, 2010 at 11:01 pm
simply, ROFL. More to the point i have noticed a touch of hysteria in some article which seem to boil down to “NoSLQ is too simple”
April 2nd, 2010 at 11:01 pm
simply, ROFL. More to the point i have noticed a touch of hysteria in some articles which seem to boil down to “NoSQL is too simple”
April 5th, 2010 at 12:57 am
Look, I’m down with the April fool’s and all… but using C naming conventions in faux Java code (*I*PacketSplitterProcessor) is just plain insulting.
April 5th, 2010 at 6:52 am
@CurtainDog, okay you are right. I forgot about the one-interface-for-every-class-I -write-rule in Java.
April 5th, 2010 at 11:49 am
@Steve, I agree. The article did seem to suggest that typed languages are the cause of such diverse problems as dead-locks, null pointer exceptions, and memory leaks. What a load of crap.
Otherwise a very enjoyable article.
April 7th, 2010 at 1:28 am
He He
I hopped over to this article thinking that its a rant… went back laughing :)
A rocking piece!
April 7th, 2010 at 4:43 am
Made me want to study more about nosql
April 7th, 2010 at 6:17 am
Thanks for the warning! We are planning to move to CouchDB or Riak, but I’ll put a stop to that.
April 7th, 2010 at 6:26 am
This should win an award for best April 1 programming blog post.
The real stroke of genius was the part about late night programming sessions being the real bond-making experience for programming teams. Of all the things that NoSQL has happily eradicated from my life, the 10pm shouting matches about normalization vs. query efficiency (etc.) are at the top of the list.
April 7th, 2010 at 1:18 pm
Don’t forget the joy of wiring up endless lines of xml configs.
April 7th, 2010 at 4:05 pm
[…] Why CouchDB?: […]
April 7th, 2010 at 4:08 pm
[…] http://labs.mudynamics.com/2010/04/01/why-nosql-is-bad-for-startups/ […]
April 7th, 2010 at 5:52 pm
Brilliant! Laughed so much I nearly snorted my soft drink.. well done..
April 8th, 2010 at 12:42 am
great article!!
The best April 1 post!!
April 10th, 2010 at 7:36 pm
This is way too funny guys! This is even better than Damien Katz April fool’s day entry about him changing from Erlang to Java.
May 15th, 2010 at 7:33 pm
[…] de algunos que piensan y/o creen que ahora todo se puede hacer con NoSQL y lo que puede llevarlo al fracaso de un startup […]
May 23rd, 2010 at 9:00 am
Hi,
This a cool post, I place a follow up on your post in my blog:
http://top-performance.blogspot.com/2010/05/why-nosql-is-not-really-bad-for-you.html
Best,
Moshe
July 4th, 2010 at 7:04 pm
Let me make a prediction. www.pcapr.net will NEVER use a Google map to display anything but trivial data. Where NEVER=”while you are using CouchDB”. Can anyone guess why?
July 20th, 2010 at 1:00 pm
[…] This post was Twitted by jprovo […]
August 9th, 2010 at 10:05 pm
[…] that’s because yesterday’s title was Just say NoSQL. Here’s a little report on Why NoSQL is bad for startups from a person who has actually tried it, instead of the usual SQL fanboys who tout traditional […]