While I was away from twitter and such today, the http://datomic.com site has come out of hiding. Very nice… a datalog-based, er, database.
Datomic also seem to be applying some of clojure’s concurrency ideas to persistence, with a logic-based query capability on top. If the ideas pan out in the implementation, this should be an attractive option (alongside several good graph database alternatives).
If you’re still reading this and not the datomic site itself, I’ll try to tie this into the history of databases and of Lisp (since I believe datomic is all, or nearly all, Clojure?)
Interestingly, this is not unlike an early Lisp-based, er, database: Statice (http://www.sts.tu-harburg.de/~r.f.moeller/symbolics-info/statice.html) from Symbolics (http://en.wikipedia.org/wiki/Symbolics). Some folks went on from Statice to implement ObjectStore (http://en.wikipedia.org/wiki/ObjectStore) in C++.
Although Statice is billed as an OODB, and it’s based on CLOS, at the core of the system it’s really a datalog-like data model and query language, implemented in a dialect of Lisp, as with datomic.
I’ve not read yet of the advantages datomic provides applications written in Clojure as opposed to Java per se. I suspect this is where things really get expressive. But their target is any JVM language, with hints they may try to address non-JVM languages.