Earlier quoted context omitted.
Eh, it's Java bytecode and it's Apache 2. So you can patch Datomic and extend it without breaking the license.
I wonder if public benchmarks are now allowed with the binaries.
Datomic is Free
331–340 of 436 posts
Re: Datomic is Free
#332What is the benefit of having it closed source? My view is that Datomic is a novel upstart in the persistence space. Most of their competition - Postgres, Mongo, Cassandra - is open-source, so they're just shooting themselves in the foot. The "pay us extra for convenient hosting and consulting" model isn't threatened by open-source in the slightest. The only thing I can think of is that they're trying to compete with…
I suspect they don’t want to deal with pull requests from people they didn’t hire.
Re: Datomic is Free
#333Earlier quoted context omitted.
Datomic Wasm backed by SQLite.
Interesting! What are you using SQLite for? If it's analytics, perhaps DuckDB WASM might be an option?
Re: Datomic is Free
#334Earlier quoted context omitted.
Yes, this hit home so hard. All objects are bespoke mini languages that add little to no value and simultaneously make it hard to remember and hard to use. Just use maps!
An object is a schema, though. A map is... Whatever you put in it.
If you need that validation, you just validate the map? You can use established methods like Malli or Clojure Spec for this. If you need to use a record with a fixed schema, just use a record instead of map. In Clojure, you can use most of the map functions for records too.
Re: Datomic is Free
#335Earlier quoted context omitted.
Java records weren't even a gleam in the eye of James Gosling when Clojure was solving these problems at its inception.
Standard ML had records since the '70s. Both Clojure and Java would benefit from taking more from what came before, though Java at least had the excuse of being designed for low-powered set-top boxes.
Re: Datomic is Free
#336Earlier quoted context omitted.
One thing which is quite hard to do in Datomic is simple pagination on a large sorted dataset, as one can easily do with LIMIT/OFFSET in MySQL for example. There are solutions for some of the cases, but general case is not solved, as far as I remember (it’s been a while I used it extensively)
It depends! If you want to lazily walk data, you can read directly from the index (keep in mind, the index = the data = lives in your app), or use the index-pull API which is a bit more convenient. However, if you want to paginate data that you need to sort first, and the data isn't sorted the way you want in the index, you have to read all of the data first, and then sort it. But this is also what a database server…
Guess it is just one of the tradeoffs, as while some features Datomic has out of the box are hard to replicate in RDBMS-es, things like pagination which are often took for granted is a bit of work to do in Datomic. So it is something to keep in mind when considering the switch
[0] https://forum.datomic.com/t/idiomatic-pagination-using-lates...
Re: Datomic is Free
#337Earlier quoted context omitted.
“No real gain” I don’t agree with this. iirc Rack ultimately uses and array to represent HTTP responses. It has three members: the status code, the headers, and the response body. If you’re shipping a new change, is it easier to mistake response[0] or response.headers? This is a trivial example, but the general class (ha) of trade-off is amplified with more complex objects. I love clojure and lisp but the blindness b…
In Clojure, response.headers is still data :) You just use the built-in ways of reading named keys, such as (:headers response) or (get headers :response).
Re: Datomic is Free
#338nice. now everyone can experiment the pain of running s3+pgsql+a huge blob of binary using container ram ! /rant - it's an awesome piece of software regardless.
Re: Datomic is Free
#339Earlier quoted context omitted.
I appreciated this insight into other people's use cases, thank you for that! This architecture brings RethinkDB to mind, which also had some ability to run your client as a cluster node that you alone get to query. (Although there it was more about receiving the live feed than about caching a local working set.)
> which also had some ability to run your client as a cluster node that you alone get to query FoundationDB does this as well.
Re: Datomic is Free
#340Earlier quoted context omitted.
>used Clojure fulltime for five years. How did that work out for you? Usually following a hype cycle, there is a negative hype cycle i.e. Mongo is webscale, then Mongo is a buggy mess. Clojure seemed to just fade away. Did it turn out well or are there interesting pitfalls that make it not as great as advertised?
Clojure is just really niche. Even an ecosystem that stays the same size overtime is dwarfed by the continually growing, continually polished competitor ecosystems that will pull people from the small niches. The best things about Clojure are things you don't really appreciate until you've already done the work to learn them. For example, I never would have known how amazing it was to evaluate code inside the editor…