I saw this page, and was not surprised that it doesn't say what Datomic is. A lot of people make that mistake.
So, I clicked the link at the end of the page to go to your website. I followed some more links. I found three links that talked about feature, benefits, and the architecture, and clicked all three opening them in tabs.
I read the first part of every page and then skimmed the rest.
I have no damn clue what this is. Its something database. It has immutable facts from the past. Why would I use it?
All of your pages talk about features that might be important to someone who's considering the software, and about how it works, and stuff like that.
But never, in clear terms, what it is.
I have the same problem working on what we're doing here, what it is is new, so there's not an obvious "We're an X" or "We're an X with a Y" that I can give.
The best bet if that's the case for you, probably would be to do something like "Say you've got a Q and you need to W it while you're Z is already at X, if that's the case then Datonic will do P, O, and R for you giving you result Z!"
Or whatever is appropriate for whatever it is datomic is.
Just a constructive suggestion. Who would use it and why?
This is exactly what happened to me. I wanted to know what it is, opened those pages in tabs, read half of first one and skipped to the second one. It was soooo long (http://docs.datomic.com/tutorial.html) I knew I couldn't finish reading it in less than 5 hours and came here to ask: What is this, and why/who would want to use it? It could be useful for a project I'm working on, but I just couldn't understand what the damn thing is. And the fact that I have a headache obviously doesn't help.
Probably the best way to get your mind around Datomic conceptually would be to watch these introductory videos[1] Rich and Stu put together when first introducing Datomic. It's pretty revolutionary, IMO.
Edit: In response to those too pressed for time to watch the videos, you can read the rationale[2] for Datomic. However, it is a bit long. Rich and Stu may want to summarize it for the really pressed for time. :)
I've seen a number of comments over the last few weeks to the effect of "if you don't understand this product, watch the intro video".
In my opinion, if a product can't be described in a couple of concise sentences, it's going to run into some major roadblocks in getting traction.
Watching a video incurs a number of costs - the time taken to watch the video, the effort of plugging in headphones, the pain of buffering content. All of these are minor obstacles, but you want to eliminate as many reasons to leave as possible when attracting a new customer.
This isn't meant as a slight to you, but I think that Clojure in general and Datomic specifically (as a newer product) isn't looking for the most customers. They're looking for the right ones that share their vision for programming.
It still requires watching a video, but the video "Simple Made Easy" by Rich Hickey (http://www.infoq.com/presentations/Simple-Made-Easy/) describes it best. If that doesn't appeal to you, then don't worry about what you're missing in Datomic.
The attitude that Clojure is only for some enlightened few who are worthy enough to understand it is extremely alienating. Lisps aren't that hard, homoiconicity isn't that opaque, the benefits of using Clojure can be explained in practical terms that most developers can understand, if not at first be convinced by. All these concepts can be explained succinctly in text.
Saying that Clojure is only for those who share some 'vision' is hand-wavy at best, insulting at worst.
Edit: My guess is that Datomic is targeted towards Clojure devs because they are already experienced with Datomic's philosophy and will understand the system better. It also provides a smaller and highly receptive market. They can then focus on perfecting the software instead of training a large number of people in the philosophy behind Clojure and Datomic.
I didn't say that Clojure is for enlightened few or super hard to learn, I meant that Datomic/Clojure is currently targeted to people who already agree with Hickey and the other core developers. The 'vision' isn't some grand thing, just a strict adherence to simplicity and immutability as a way to improve program correctness.
Anyone here who knows the product want to have a go at proving a simple tag line, short about that would be suitable to use on their inbound marketing blog?
I think the guy who'll be interested in Datomic isn't going to be looking for a data store describable in a few sentences, like "NoSQL with feature X". It looks to me like a NoSQL-ish Datalog with Clojure-style concurrency, reified by its distribution model. You would only go with that sort of thing if you know how it works, or are interested in experimenting and learning about it. It's not something the guy looking for "data store, alternative to SQL, meeting requirements X Y and Z" would choose.
> It's not something the guy looking for "data store, alternative to SQL, meeting requirements X Y and Z" would choose.
Actually it seems like it's something that this hypothetical guy would be very interested in, given that Datomic is being pitched as an alternative to SQL.
I watched the first video. It wasn't much better than thee docs; still a little obscure and was just "talk" without any solid examples or use cases. But finally, at around 13:30, they get to say what they mean by "fact". If you want to know if it's something that can be useful to you, you can just skip to this part of video: http://www.youtube.com/watch?v=RKcqYZZ9RDY&feature=playe...
I would probably have used it for the system I'm making now, as it's a very good match to our requirements, but 0.1 is 0.1, and the docs are kind of sparse so the learning curve for Datalog queries was too steep.
Same. Scanned the page hoping to find "Datomic is a ______ that helps you _____..." sort of sentence, and after not seeing it in about 5 seconds or so, I clicked back, and then clicked on the comments link to see if someone had described it.
Well, I got stopped as soon as I hit the Javascript-dependent template.
I realize I'm a bit on the fringe, here, and I've complained about it before. But I do not like "basic" web pages, e.g. this blog post, becoming dependent upon local execution of arbitrary code (in which camp I'm not including HTML and CSS).
For me, it's a matter of security. And I'll continue to whitelist, based upon established trust.
I realize this probably doesn't address the premise of your post, but Datomic is, by way of my personal understanding/analogy, a giant, multi-indexed SQL table which has 4 columns - a subject column, an attribute column, a value column for the attribute, and a transaction identifier column. The table is streamed to consumers into an LRU cache.
The transaction identifier column represents time which enables you to query the state of the database as of a point in time (e.g. yesterday, last month, etc.) for reporting. The subject-relation-object structure supports adhoc NoSQL-style changes to the schema. Transactions themselves are first-class concepts, so you can add relation-object pairs to them as well.
Their hypothesis seems to be that querying client-side data is faster than server-side data (obvious), and that updating data can be effectively synchronized by a dedicated transaction coordinator (potentially). Although, this is a single point of failure, the claim is that this code can be audited and perfected.
So I had the same situation, I kind get what it is, however I figured, if it turns out to be popular, I will hear about it again and I can then spend some time with it.
Taking into account novelty factor, they should focus a lot on explaining it to people.
So, I clicked the link at the end of the page to go to your website. I followed some more links. I found three links that talked about feature, benefits, and the architecture, and clicked all three opening them in tabs.
I read the first part of every page and then skimmed the rest.
I have no damn clue what this is. Its something database. It has immutable facts from the past. Why would I use it?
All of your pages talk about features that might be important to someone who's considering the software, and about how it works, and stuff like that.
But never, in clear terms, what it is.
I have the same problem working on what we're doing here, what it is is new, so there's not an obvious "We're an X" or "We're an X with a Y" that I can give.
The best bet if that's the case for you, probably would be to do something like "Say you've got a Q and you need to W it while you're Z is already at X, if that's the case then Datonic will do P, O, and R for you giving you result Z!"
Or whatever is appropriate for whatever it is datomic is.
Just a constructive suggestion. Who would use it and why?