Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Looking at this page that aggregates the current NoSQL landscape, one can see that the majority of these projects are written in Java.

Databases are complex systems software dealing with the file system, and so C/C++ would be a better choice than Java for this. (that's my thinking which might be flawed)

Secondly, databases deal with transferring large amounts of data from disk to RAM -- which they call a working set. The JVM takes non-trivial amount of RAM for it's own purpose -- so it would be more efficient to use a platform that leaves lots of memory for data instead of hogging it for its own operations.

The major relational databases are ALL written in C/C++

MySQL              C, C++
Oracle             Assembler, C, C++
SQL Server         C++
PostgreSQL         C
SQLite             C

So what makes Java so popular in NoSQL world.

share|improve this question

3 Answers 3

Most of the SQL DBs you list were written long before Java existed. So, the thing that makes Java more popular for NoSQL than for SQL is: it exists.

share|improve this answer
    
+1, I agree with the possibility of historical influence, also, maybe not a lot of gain from switching over from C* to Java. RAM issue for JVM in OP question is probably minor. –  Emmad Kareem Nov 17 '12 at 14:20

The cost of developing in Java with or without one of its many frameworks in cheaper than cheaper than developing in .NET. Because of this, using Java makes it easier to get support in the open source community.

share|improve this answer
1  
Please provide a source to backup your assumption. –  Walter Nov 17 '12 at 15:35

are you sure you counted right?

The majority of the DBs in "document store" section (which is what most people think of by NoSQL DBs) are written in C++ :

MongoDB (arguably the best of the lot BTW, good support from 10gen, and possibly the most widespread) Marklogic, Clusterpoint, EJDB are all in C/C++; with 1 in Erlang, 2 in .NET, and 2 in Java.

Even in the "Key Value / Tuple Store" section, only 2 are written in Java, the majority there are C/C++ too.

"Graph Databases" does have more Java (though one of those is listed as having a C/C++ core), but even so, there's only 3 with another 4 written in something else.

I've only considered the ones that have a language specified in that list, but its still obvious that the "majority java" claim is completely wrong.

share|improve this answer
    
+1 I had a double take when reading the title of this question because it's based on such a flawed statement –  Jimmy Hoffa Nov 17 '12 at 15:53

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.