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.
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.
1
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.
1
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.
1