yazz.com
yazz.com

Reputation: 58796

Functional language implementations of Production Grade data stores

There are many datastores written in Erlang, for example Riak, Dynomite, CouchDb, Scalaris, have I missed any?

I know that Java and C/C++ have also been used to write datastores (Cassandra, Hypertable, etc), but have any Datastores been written in any other functional languages such as F#, Scala, Haskell, Clojure, etc? The reason I am asking this (and many other functional programming and Erlang type questions) is to assess the feasibility of functional programming languages for real world projects.

As a side note it has been pointed out to me that I mean the actual implementation language of the datastore itself, and not the client language to access the datastore (ie: via ODBC).

Upvotes: 7

Views: 967

Answers (4)

High Performance Mark
High Performance Mark

Reputation: 78344

Your question puzzles me a little. You ask about datastores written in a variety of languages. Generally, when I program I look for a library or API to get and put data from and to the datastore in my chosen language. What the underlying datastore is written in (if it's written in anything, some datastores are no more than file layouts) I do not care.

And on that basis a little Googling will turn up Haskell-to-ODBC libraries, and I imagine the other languages will have similar facilities. I have no knowledge of these, so won't comment on their suitability for projects.

Upvotes: 3

user3250690
user3250690

Reputation: 1

FleetDB is schema-free database in Clojure.

Upvotes: 3

rvirding
rvirding

Reputation: 20916

In one sense you have already answered your own question. The systems you mention, and others from the comments, ARE written in functional langauges and ARE definitely real world projects, so the answer is yes.

Upvotes: 3

Vijay Mathew
Vijay Mathew

Reputation: 27184

  1. Data.Tcache is a transactional cache with configurable persistence for Haskell.
  2. Elephant is a persistent object database for Common Lisp with full transaction semantics.
  3. CLSQL - a SQL database for Common Lisp interface.
  4. AllegroCache is a high-performance, dynamic object caching database system for Allegro Common Lisp.
  5. Spark-Scheme comes with a built-in database and ODBC support.

Upvotes: 9

Related Questions