
Rich Hickey on Datomic (2012) [video] - tosh
https://www.youtube.com/watch?v=9TYfcyvSpEQ
======
hirundo
I love Datomic, think it can be revolutionary and use it in my side projects.
I understand their need to make a living off of their (brilliant, unique)
labor and so keep it closed source. But the big bananas at my company are
reluctant to try something so different. With Clojure I can push them over
that hump since it's open source. But they are not willing to introduce
proprietary lock-in of such a fundamental piece to an otherwise OSS stack so
Datomic is out.

It would be nice if Cognitect could do even better with a Red Hat business
model, selling support for an open source product. I don't know if that is
plausible for Datomic or not. I suppose that's a function of how popular an
open source version would be compared to the current version, and I can't even
guess.

If Ions is successful enough that could be their profit source, allowing them
to set standalone Datomic free.

~~~
jcadam
My current job (primarily a Java shop on the backend) is the first where I've
been able to introduce a little Clojure after years of having it relegated to
being my 'side project' language.

Datomic looks neat from a distance, but not being open source means I'm
probably not even going to look at it (since I wouldn't be able to use it in
any case).

~~~
profchaos69
There’s an open source ‘version’ of datomic with a lot of the same features
(Datalog, immutability, as-of queries etc) called Crux, I’ve played around
with it on side projects and think it’s pretty awesome

------
abc_lisper
I love Clojure and like Datomic, but that thing needs some documentation.
Really good documentation. I think that is one of the main reasons why it
didn't achieve much penetration for something so good. Be different if you
must, but document. Look at something like Kafka, where every little thing is
documented. You can find documentation for every shell script! that ships with
it, not to mention excellent api docs. They also specify how the clients work
in detail, not to mention how Kafka works. With datomic, even though
everything works well, most of the time I feel like I am driving blind. I
don't know if something I wrote works in every case.

~~~
Scarbutt
Having great documentation would mean less sales in support contracts.

~~~
pgt
I upvoted to counter because the morally hazardous incentive does exist with
proprietary tech that you become super dependent on. This risk may not apply
to the founders (Rich, who we all love), but to a future acquisitor like
Oracle, IBM or AWS.

I predict that AWS will buy Cognitect. I think they are aiming for that exit
and is part of why Datomic Cloud is so closely integrated with DynamoDB and
other AWS services.

------
brianpgordon
So Rich's talk about Datomic's architecture is taking place _at Oracle_? I
love the radical openness. There's something cheeky about going to your
competitor's office and inviting their engineers to learn about how your
product works and how they can make better databases.

------
Royalaid
Having dealt with Datomic at work I really have come around to the way
thinking that Datomic promotes. Having history that you can query along with
having datalog and a graph database as opposed to a relational database has
its benefits.

------
grischoun72
There is an open source alternative to Datomic being currently developped:
Datahike.

[https://github.com/replikativ/datahike](https://github.com/replikativ/datahike)

------
tosh
The "Java" Youtube channel has a few "new" videos from the Summit in 2012
(e.g. on Graal, Truffle, Lambda Expressions):

[https://www.oracle.com/technetwork/java/javase/community/jvm...](https://www.oracle.com/technetwork/java/javase/community/jvmls2012-1840099.html)

[https://www.youtube.com/channel/UCmRtPmgnQ04CMUpSUqPfhxQ](https://www.youtube.com/channel/UCmRtPmgnQ04CMUpSUqPfhxQ)

------
jmiskovic
I'm still considering Datomic, or DataScript at least. I'm sold on concepts,
but having hard time using it. Note that I don't have prior DB experience so
YMMV.

The state of documentation is a dealbreaker for me. I could not understand how
to use Datomic just from docs. It lacked code snippets, examples of different
ways to use it.

The ClojureDocs solved this in a beautiful way with crowd-sourced collection
of use-cases. ClojureDocs API pages manage to seamlessly present the core
principles along with user-contributed annotated code snippets. Learning from
examples is most effective way of learning.

My favorite:
[https://clojuredocs.org/clojure.core/reduce](https://clojuredocs.org/clojure.core/reduce)

[https://clojuredocs.org/examples-
styleguide](https://clojuredocs.org/examples-styleguide)

------
slifin
I'm using the AWS hosted version of this (Datomic ions) to talk with the Monzo
API it's been a lot of fun so far

------
awinter-py
have always wondered why this didn't succeed on a larger scale

Maybe in a v0 release, most applications can get away with created & modified
fields. Maybe the storage overhead of immutability scares people for some
applications.

Maybe datomic is something that should be part of a powerful DB plugins
ecosystem rather than its own database, or as an external audit log that can
be written separately while keeping your main DB in SQL.

~~~
erikpukinskis
It seems to me that you need to be all-in on Datomic to get value from it. So
that knocks out anyone working with a legacy system.

You also can’t really hire Datomic people in bulk so that knocks out anyone
trying to scale their eng org.

I can see it working well for companies who are trying to do a lot with a
small very bright staff, but that’s a small category. And even then it would
only be places where the staff has consensus around immutability as a value.

Which... immutability, like many forms of strictness, is both a PITA and not
actually that helpful unless you go all in.

It’s just a major commitment and for what benefit?

Maybe for a product where you need rewind everywhere.

Maybe for a product where you need extreme auditability.

I don’t know... what’s the killer feature that would make someone sacrifice
everything else to use it?

Personally I think Datomic needs to be paired with a hosting system, debugging
tools, basically some kind of integrated development environment that’s
immutable-first in every respect.

Something like that would be powerfully differentiated.

~~~
fulafel
You don't need to be all-in on Datomic, it's unsuitable for some kinds of data
(eg binary blobs, or generally text due to the 4k string limit, PII due to
missing delete support, etc). It seems designed to be used along with
ancillary data stores.

I think the benefits have been pretty well laid out and are quite attractive,
your restatement of them is just damnation with faint praise :)

