I really wish they'd open source Datomic and just make money on hosting. I can't bring myself to spend anymore of my life learning proprietary software in such a foundational domain.
if you search online they did address this repeated request
in summary
they do it for money,
they dont know how to do it for money if its open-source,
they already contributed clojure to the open source community
I don't believe that Datomic is profitable for Cognitect or ever has been.
Given how profitable it is for my customers that truly is a shame.
I wish they'd open source it, primarily because reading Rich Hickeys code is always enlightening. But I can see how cautious they are about it and am just glad they haven't already sold out to some big company who pushes tons of "business needs" into it.
IME you can't really compare Datomic to a SQL database. If you know Datomic it is like comparing a filesystem to a harddrive.
Popular databases at scale can be tremendously popular too. This is the profit model of databases like Neo4J. Not sure if it worked out for them, but it seems like a viable route to popularity: go big at scale.
Speaking of open source Datomic, check out mentat. It's not at all the same as an open source Datomic, because it's made for use on single devices not clusters, but it's inspired by Datomic so at the same time it is very much like Datomic.
The similarities to FoundationDB (a unique closed source database technology acquired by Apple, no longer publicly available) encourages additional caution.
I poked around for a few minutes trying to find any assurances Datomic offers their customers should they be acquired, but couldn't even find the current EULA accessible online (older versions didn't seem to mention anything).
It's interesting really. Thinking back 20 years, nobody would have expected or dreamed of a having a production level database be open source. It stared I think mainly with MySQL but it was really part of a greater shift. Compilers, OS-es, other tools and most software was closed source, by default. Shareware was a thing but it wasn't open source usually.
To that effect I mostly credit the GNU licensing model. I know people love to hate it and praise BSD/Apache/MIT licensing but I believe without GNU, the proliferation would not have happened.
But back to the point, it is interesting that the expectation is reversed completely - people expect databases to be open source by default. Having said that, I still support author's decision to keep it closed source, it's their work and they intend to monetize it in a particular way. It's been around for years, presumably it works for them, which is great.
http://dtrace.org/blogs/bmc/2004/08/28/the-economics-of-soft... seems pretty prescient given the glut of open source we find ourselves enjoying today. I do agree a lot of it can be credited to the GNU model, that is aligning on values over other things, but once more and more companies started understanding the economics that was immensely helpful too.
That's a good post from Brian, can't believe I haven't see it yet. Thanks for sharing.
> seems pretty prescient given the glut of open source we find ourselves enjoying today.
Indeed, even regarding databases:
[from blog post] > Yes, there have been traditional demand-side efforts like MySQL and research efforts like PostgreSQL, but neither of these “good enough” efforts has actually been good enough to compete with Informix, Oracle,
Look at PostgreSQL today -- it's got a variety of indexing options, scalability improvements and various other things. It hasn't displaced Oracle but it's certainly not a research effort anymore.
I'd be interested to see if people would candidly unpack their rationale a bit more in this area.
Before I get into that part, forgive me, but I must admit that I've begun to tune out when I hear the "make Datomic open source" commentary. Still, this particular line of commentary returns from time to time, so I'll weigh in.
This reminds me of "meta stories" that take over the original story. On Hacker News, I'd much rather hear about technical commentary, lessons learned, or interesting domains and applications used in Datomic projects.
I tend to be less interested in hearing armchair quarterbacking around what business model would work better for Datomic, particularly when the arguments seem:
1. largely motivated by self-interest. Open source is often perceived as "free" to software developers. It is relatively easy to say "I would rather not pay for this software, why isn't this open source?" Of course, open source is not necessarily really free, due to integration and maintenance costs. In the cases where open source projects are abandoned, projects face substantial risk and transition costs.
2. not framed around the long-term interests of Datomic (at least the arguments rarely seem to make suggestions from the perspective of Cognitect, which invests in the product and makes income from sales)
It is easy to say "make it open source". It is harder for a company to find a business model that works. It seems that Datomic's business model is working. There is a free tier and paid tiers.
I know that I cannot properly summarize all perspectives with the ideal amount of nuance. Perhaps some people think it is really in Datomic's interest to be open source.
Nevertheless, it seems to me that many arguments people make are somewhat unexamined. Let's go a level deeper.
May I ask this: How many of Amazon Web Service's offerings are based on open source software?
I ask that question because there are four follow-up points I would like to make:
1. People use AWS quite extensively.
2. AWS is based on closed source software.
3. I don't think it is a coincidence that AWS is so successful.
4. It seems totally reasonable (and arguably the smartest thing to do) for Datomic to stay with a closed source model.
Also, I have no affiliation with Datomic, but I have used it on projects.
Datomic isn't Amazon. People aren't afraid of it going away and they know that Amazon actually uses their services as a part of their core business. This makes people much more willing to use something like Lambda when they might be afraid of the long-term viability of something like Datomic.
Just look at what happened to Parse. What if Datomic one day gets bought by some company that doesn't care about offering Datomic cloud or keeping it maintained? At least with Parse, people could migrate to an open source solution.
> 4. It seems totally reasonable (and arguably the smartest thing to do) for Datomic to stay with a closed source model.
It is 100% understandable / practical / reasonable, yes. It is the same to recognize using Datomic technology as a core part of a technology stack involves some degree of additional risk, which grows as dependencies increase on its unique capabilities.
All dependencies carry risk. Open source projects are abandoned all the time. What do you intend to take over maintenance of your database software if it is abandoned? Highly unlikely.
Agreed, and it is often tough to evaluate to any exact degree or measurement.
However, uniquely irreplaceable closed-source dependencies seem classifiable as carrying comparatively greater risk than thriving open source projects. This specific case is compounded because there are few (if any?) production-quality alternatives that offer what Datomic does, whether closed or open.
> What do you intend to take over maintenance of your database software if it is abandoned?
I would phrase this as "Can I hire a domain expert to fix blocking bugs in my database software if it is abandoned?", but this doesn't really account for the uniqueness of Datomic (unnecessary to really consider further since any fix is impossible due to being closed source).
It boils down to "is my business even possible if this disappears" evalutation considering Datomic a novelty that enables and/or dramatically simplifies very specific use cases (profitable even in the short term) that basically wouldn't be possible without it -- and I believe Datomic does this! The best marketing for Datomic would reveal these use cases, but they are often a competive advantage.
> What do you intend to take over maintenance of your database software if it is abandoned?
Yeah. Unlikely I'd be adding any additional real features or anything but why not? It isn't magic. I'd also expect a lot of other people doing the same and we can share the maintenance load.
There is also a lot of functionality that is obviously backed by very nice code a lot of people would like to see and potentially use other places. But knowing you can do necessary maintenance and tweaks, even if it is while you rewrite your whole db layer to work with another product rather than a permanent thing, is a serious benefit.
I'm not sure there's much rationale to unpack. What benefit does proprietary have over open for the user?
The reason I even bother to state the obvious in the case of Datomic is that having this 1 restricted area in the otherwise open ecosystem around Clojure makes me want to start looking for an alternative environment. I'm sure everyone else that says it feels similar and just hopes if enough people say it, it'll be opened up. Obviously, Clojure can be used without Datomic, but I can't help but feel like I'm missing out on the bigger vision by not using it and I don't like that feeling because that's exactly how vendor lock-in begins.
Several people (including Feross, who I know) have made comparisons of Datomic to gun, which I have made open source: https://github.com/amark/gun they're based on very similar principles and architecture of functional reactive programming (elm and eve are also in that camp, but not databases).