8 ms·
This comes up every time Datomic is mentioned, but it's tremendously sad to see such a revolutionary technology lack any sizable adoption because of its licensi
by modarts 9y ago
This comes up every time Datomic is mentioned, but it's tremendously sad to see such a revolutionary technology lack any sizable adoption because of its licensing model.
Datomic packages up a CQRS + event-sourced architecture in a really nice way. You can stash graph/tree/relational/tabular/(insert shape here) data and query it out with the powerful Datalog language. You get time travel (versioning) for free. Etc, etc.
It's a crime that this hasn't taken off as one of the leading data stores; hopefully Cognitec has some sort of roadmap to an open source release.
- itchynosedev 9y agoHell, even implementing CRUD applications with Datomic / Clojure and Clojurescript is blowing everything else out of the water. No string literals, pure data. Add transit to the mix and you get full-stack killer combo with unparalleled productivity. With so many parts from Cognitect filling the stack it would be silly not to boost adoption with a friendly licensing.
- slagfart 9y ago"Unparalleled productivity" sounds like hyperbole, especially considering the posts below, showing how exactly the same thing can be done trivially in Postgres. Do you have an example?
- joe-user 9y agoThis doesn't answer your question, but I just wanted to make clear that the posts below certainly do not show, trivially or otherwise, how to use "no string literals" and "pure data" in Postgres.
- iaabtpbtpnn 9y agoThose concepts don't make any sense, so it's no wonder that a serious RDMBS like Postgres doesn't support them.
- Risord 9y agoCan you explain your statement?
- sheepmullet 9y ago> especially considering the posts below, showing how exactly the same thing can be done trivially in Postgres. So then where is the open source version / extension to Postgres? How about this - I'll give you $1000 if you can give me a seamless extension on top of Postgres that has most of the functionality of Datomic. Since it is trivial it is easy money for you.
- skrebbel 9y agoGGP talked about building a CRUD app with "unparalleled productivity". That's where the burden of proof is, not to the GP who is skeptical about that claim.
- hellofunk 9y agoYou are asking for evidence of disproof. That is a logical paradox, and frequently used as an argument by extremist politicians. Where is the evidence that you do not [insert anything here]? That's a slippery slope of challenge.
- deleted 9y ago[deleted]
- VLM 9y ago"So then where is the open source version / extension to Postgres?" As a concrete example I like the way in the datomic schema you can eliminate bridge tables for many-many relationships using :db/cardinality :db.cardinality/many and then you store or get a vector. There should be a way to have a super-SQL middleware compatible with any language bindings including a bare CLI that eats "SQL plus some cardinality" and behind the scenes implements the bridge table manipulations. Don't repeat yourself and all that, and many/many tables are kinda repetitive. There doesn't seem to be anything remotely like that out there.
- dustingetz 9y agoIt's because Datomic doesn't have the object/relational impedance mismatch. Because immutbility yields idealized caching so a lot of hard performance problems inherent to RDBMS go away. It's like moving from CVS to Git. Fuck it, hyperfiddle isn't launched but lets just post it here. Hyperfiddle is JSFiddle + Datomic. http://hyperfiddle.net/ http://hyperfiddle.net/ If you care about this, you should reach out, please email me!
- moocowtruck 9y agoyep https://stackoverflow.com/questions/42457136/recursive-datalog-queries-for-datomic-really-slow https://stackoverflow.com/questions/42457136/recursive-datal... https://groups.google.com/forum/#!topic/datomic/insqPDtbvjk https://groups.google.com/forum/#!topic/datomic/insqPDtbvjk
- throw13209 9y agoUnparalleled productivity maybe, but only once you've learned how to read code that looks like an AST, and to juggle parens in Emacs (learn paredit etc). For better or worse, history has proven that doesn't appeal to many developers. Lisps just aren't popular, and that lack of mindshare matters.
- swlkr 9y agoThere is parinfer which turns lisp into a white space significant language, no special commands necessary
- zcam 9y agoStuart Halloway said "Datomic is not and will not be open source" in the latest defn podcast, so don't hold your breath. Hopefully they change their mind. They seem to be focused on a cloud (managed?) solution offering at the moment.
- tosh 9y agodo you remember when in the episode they talk about this? edit: found it https://soundcloud.com/defn-771544745/23-the-right-honourable-stuart-halloway https://soundcloud.com/defn-771544745/23-the-right-honourabl...
- dustingetz 9y agoWhere can I find more about this cloud offering ????
- _xczx 9y agoThats disappointing, because Datomic is not and will not be adopted. No one wants to revolutionize data back to postgres when cognitect goes out of business. Stable solutions are found in cloud hosting from too big to fail companies and self-management. However, maybe they have found a niche through people taking on risk for major technical debt.
- zcam 9y agoIt probably pays the bills, I guess they're happy with it if that's still a thing after 5 years (?). It's not helping clojure grow as much as it could though and it's a bit a chicken/egg problem, more clojure users could be more datomic users and vis-versa.
- jb1991 9y agoFortunately, at least if Cognitect does go out of business, the Clojure language would survive fine. Hence why Clojure with Postgres (a very common pairing) is by far the safest bet.
- nine_k 9y agoExactly. I would only make a closed-source solution a centerpiece of my business if: * The thing is known to work for a number of other people, and uniquely solves my urgent problem, while no open solution can't do anything comparable. This is probably the Datomic niche. * The thing was around for ages, and is a cash cow of a major and reliable software maker, and is also significantly better than open software in some important area. This is how MS or IBM sell their databases; Datomic doesn't have nearly enough mindshare to compete here. * I'm hastily building an MVP that I plan to scrap anyway when the growth hits / the startup is acquired. Datomic is likely too expensive for that. By necessity, the first case holds for a small number of businesses.
- juskrey 9y ago$5k per year is almost free comparing to average single coder compensation.
- vosper 9y agoUntil they go out of business and you're fucked. That's when you wish you'd stuck with Postgres.
- pjmlp 9y agoBeing closed for free doesn't mean it isn't open source for those that pay. This was a common model before FOSS took off and it is still quite common in enterprise products. If company X goes out of business you get the latest source version you paid for. Having said this, I don't know if Cognitec has such kind of contracts.
- skrebbel 9y agoGoing off topic here, but we have an enterprise lead for our SaaS product who is asking the same. They want some sort of warranty that they can keep hosting the product themselves, should we go bust. Going open source (or open core) is currently not an option for us. Does anyone have any advice how to approach this? Example contracts, good experiences with escrow services maybe? Or bad experiences of course.
- true_religion 9y agoIt's difficult to do for SaaS since you're not already packaging up the product. Datomic has perpetual free licenses so if they go bankrupt, you just keep the software you already have. If you had an on-prem setup or a hosted white label solution, then it'd be easier to license.
- twic 9y agoI worked for a company which sold hosted services in the financial sector. Escrow was a standard part of contracts. However, it wasn't taken immensely seriously; we faithfully put all of our source code into escrow once a year (or perhaps more often, but not as often as we released), but not all of the build, deployment, and infrastructure tools and config you would actually need to turn that code into a replica of the application. We didn't make any effort to "restore from backup" to verify that what was in escrow was actually any use. Customers, and their auditors, seemed happy with that. I do feel that in a really well-run operation, your build, deploy, and operation should be so automated that that's just another set of repositories to put in escrow. One way to look at it is that escrow is just another kind of disaster recovery; if you have safe copies of everything you would need to restore your operations if you lost all your current servers, then it's easy to put those in escrow too.
- mycat 9y agoReminds me of Rebol. Technically as good as Lisp but arguably better as it is batteries included e.g. GUI. By the time the author made it open source it was far too late
- vosper 9y agoYou might be interested in the Red language, which is an open source reboot of Rebol. It's actively developed, and has been for a while, although I think there are only a handful of people (one?) working on it. http://www.red-lang.org http://www.red-lang.org
- akmiller 9y agoI don't understand this line of thinking. The product is outstanding and likely will be, if it is not already, the lifeblood of Cognitect as a company (in conjunction with their consulting services I'm sure). What is wrong with a company building a worthwhile product to sell? This is a community (Hacker News that is) that should be in full support of companies building great products to sell!
- erichmond 9y agoI think it's fueled by a naive idea that paying for closed source software is inherently bad. Actually, it's not necessarily a naive idea, as this specific OP may have weighed the pros and cons and have decided that it's not worth the risk, but I do think there are very wrongheaded cargo cult ideas around this. We tend to gloss over the fact that when dealing with OSS: - Project maintainers can leave/change/stop supporting the software and the idea that "since it's OSS, I can just pick up the slack" sounds better in ones head, then it does in practice. - Even large projects (think Angular) can move in odd and unexpected directions, which in reality simulate a company "going out of business" for all intents and purposes. - OSS 'support' is great, until it's not. Meaning, if there are plenty of SO questions and answers, it's great, until your specific issue isn't addressed, at which point you're either looking to a third party to pay for support, or you're rolling your sleeves up and digging into a codebase you have no experience with outside of an external API level understanding. The dirty secret of large successful companies is that they actually pay for software, and the support of that software because they understand that time = money and vice versa. After using datomic in production, I'd welcome my competitor to use Postgres. I'd even push them to. It's a monstrous competitive advantage for me.
- zcam 9y agoThere's more than just support to paid db services, look at neo4j, datastax, elastic, mongo and cockroachdb among others.
- nine_k 9y agoThere is a "narrow niche" strategy, when you have a cool thing and only sell it to a small group of well-paying customers. There is an "open" strategy, when you offer the core part of your cool thing widely (cheaply / freemium model / for free), and profit from only e.g. 10% of the users that buy premium plans. You also have a fair chance to make your better way of doing things predominant, and put in the hands of a lot of people that won't pay you either way. The point is that when your cool thing may have a really wide adoption, with the "open" model you may have e.g. 50x the market share of the "narrow niche" model, and thus 5x the profit. Increased mindshare also helps further adoption. This, of course, depends on the adoption rate and paying customer rate.
- nine_k 9y agoThe licensing policy may be unfortunate. The more important question is how many key patents are involved. That is, how feasible a comparable open-source project might be.