Live data from Hacker News

Datomic is Free

blog.datomic.com

281–290 of 436 posts

Re: Datomic is Free

#281
post #222

Free as in beer. Not free as in speech. > Is it Open Source? Datomic binaries are provided under the Apache 2 license which grants all the same rights to a work delivered in object form. Datomic will continue to be developed at Nubank, where it is a critical piece of our infrastructure.

There are already some open source alternatives to datomic. TerminusDB ( https://github.com/terminusdb/terminusdb ) for example is implemented in prolog (and Rust) so has the datalog variant query power that makes datomic so powerful. If you want free as in speech (thou I love free beer).

XTDB is also worth mentioning, especially since they’re on the HN front page with a v2 early access announcement. There are differences in how they do things. I can’t meaningfully comment on business usage of either or what the trade-offs between them are.

https://news.ycombinator.com/item?id=35733515

Re: Datomic is Free

#282
post #270

Earlier quoted context omitted.

Yeah, they didn't open source anything. They just made it free.

Ah! Yes, but not quite! It’s not freeware. The binaries are technically open sourced, you can do with them as you please within the confines of the Apache license.

I take that means reverse engineer, decompilation and extracting and reusing any bytecode you want.

Re: Datomic is Free

#283
post #60
post #7

Earlier quoted context omitted.

I find that answer confusing. I don't think I've ever seen binaries being licensed under Apache 2 without the relevant source code before.

It gives the licensee the ability to distribute the binary, use or include it in their products in the same way as an open-source product. It just merely prevents modification without decompiling (which i assume is not easy given it's clojure, not to mention obfuscation?). And presumably it makes it less likely someone would just produce a competing product if they should choose to re-monetize it?

Why would it prevent modification or decompiling?

Re: Datomic is Free

#284
post #193

Earlier quoted context omitted.

Rich Hickey has a great talk about how Objects are data structures with unique interfaces that are unnecessary complexity. He showed and example of a web server with a web request object with request headers etc etc. Doing simple things like collecting information out of that nested object structure is bespoke and harder than it should be for no real gain. If everything is a map or list or set, it becomes completely…

This? https://www.youtube.com/watch?v=aSEQfqNYNAc

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!

Re: Datomic is Free

#285
post #197

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.

You can also probably decompile it

Decompile it to Java - yes, decompile it to Clojure - highly doubtful.

Re: Datomic is Free

#286
post #270

Earlier quoted context omitted.

Yeah, they didn't open source anything. They just made it free.

Ah! Yes, but not quite! It’s not freeware. The binaries are technically open sourced, you can do with them as you please within the confines of the Apache license.

The Apache license says I can do things with the source of it.

> You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and **in Source or Object form**, provided that (...)

Re: Datomic is Free

#287
post #202
post #193

Earlier quoted context omitted.

Rich Hickey has a great talk about how Objects are data structures with unique interfaces that are unnecessary complexity. He showed and example of a web server with a web request object with request headers etc etc. Doing simple things like collecting information out of that nested object structure is bespoke and harder than it should be for no real gain. If everything is a map or list or set, it becomes completely…

> Unfortunately I can't remember exactly where the part of this talk is. If you or anyone else remembers, I'd love to watch

[deleted]

Re: Datomic is Free

#288
> Is it Open Source?

> Datomic binaries are provided under the Apache 2 license which grants all the same rights to a work delivered in object form.

So... no?

(I say that, but "Datomic binaries" presumably refers to compiled JVM class files; and JVM bytecode is notoriously easy to decompile back to legible source code, with almost all identifiers intact. Would Apache-licensing a binary, imply that you have the right to decompile it, publish an Apache-licensed source-code repo of said decompilation, and then run your own FOSS project off of that?)

Re: Datomic is Free

#290
post #172
post #21

Earlier quoted context omitted.

Probably not, because the source is not a derivative. Having said that, if you decompile the binary I bet you could distribute that source.

That would be very ugly source, as Datomic is written in Clojure and AOT compiled to Java bytecode. Due to the architecture of Clojure (especially, the use of macros) it is not exactly possible to work backwards from JVM bytecode to anything that looks like the original source code. It's not like Java where a clever decompiler can exploit output patterns generated by the Java compiler to make reasonable guesses at th…

> Due to the architecture of Clojure (especially, the use of macros) it is not exactly possible to work backwards from JVM bytecode to anything that looks like the original source code.

I mean, presumably if you run a Java decompiler over it you'll get perfectly-legible Java source code. Just Java source code that makes a lot of calls to methods defined in the Clojure stdlib.

I'm guessing it would look a lot like what an Objective-C or Swift program looks like when you throw it into a C decompiler: a lot of boilerplate for imperatively building stack-local data structure temporaries to be passed into runtime functions, but otherwise the same code you'd expect.

> But this is all besides the point; Datomic is now free (as in beer) with a great license (Apache 2.0). You can use this amazing tool for free, and you have as much need to look at the source to do so as you might need to look at PostgreSQL's source.

Personally, I don't want to use Datomic as a tool; I want to use Datomic as a bag of parts. I want to pilfer the major components and libraries within the Datomic codebase, reusing them inside other things. (You know how CockroachDB and Clickhouse both implemented PostgreSQL-syntax-compatible binary wire protocol in part by taking the parser.y file directly from Postgres's codebase? I want to do that kind of thing, with Datomic. And probably using some pieces of Neo4j and/or Apache BEAM at the same time.) I also want to study the data structures and algorithms used to implement Datomic, to better port the concepts used in Datomic to other databases.

If Datomic was a true FOSS project, doing all of that would be simple/easy. With just a binary, though, I can't do any of that.

Post reply on HN