Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

> A functional DB replaces a "row" that only holds the current state of the world with a list of timestamped "facts" that can represent either the present or any point in the past.

... which isn't 'functional' in any sense. It seems that Hickey just reinvented time series and tries to sell those as database.



> ... which isn't 'functional' in any sense.

Functional programming is very closely tied to the notion of immutable data. "Don't modify data in place" is one of the pillars of the functional model.

> It seems that Hickey just reinvented time series and tries to sell those as database.

Datomic is much more than a time-series, although that's the aspect that arguably makes it "functional." For example, it provides a datalog query interface and has a pretty fascinating and unique architecture that provides extremely high scalability for queries. If you don't like Datomic, or if it doesn't suit your purposes, or if you think it's overpriced for its value-added (I do), that's cool, but don't dismiss it based on a malformed understanding of what it is.


> Functional programming is very closely tied to the notion of immutable data. "Don't modify data in place" is one of the pillars of the functional model.

I don't think the Lisp fans here at HN agree.

> Datomic is much more than a time-series, although that's the aspect that arguably makes it "functional."

Not really. Time-series are not 'functional' by any stretch of the imagination.

BTW, an add-on to Hibernate, the (in)famous OR-mapper, tries to do something similar: http://docs.jboss.org/envers/docs/index.html


It's a functional database since it allows you to create database applications using functional programming.


Not quite. A time series' purpose is to record the change in value of some quantity over time, while this ties with the notion of persistent data structures and Hickey's philosophy of value and state which is at the heart of Clojure.

The purpose is not to follow a changing quantity, but to formalize state and value. The idea is that any entity's state, at any given moment in time, is an immutable value. You can query the state at time t0, get a value, and examine it or process it for as long as you like. You can then query it again at time t1, and get another, immutable value.

I guess this is a dual way of looking at time series data, with a different emphasis. The time series is intended to help with processing change, while a persistent data structure is intended to help working with a snapshot of the world as it existed in a specific instant.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: