5 ms·
Not complaining about the actual announcement itself here: seems pretty sweet all things considered, But: the "Is it Open Source?" section should lead with "No.
by jchw 4y ago
Not complaining about the actual announcement itself here: seems pretty sweet all things considered, But: the "Is it Open Source?" section should lead with "No." It's not a complicated question, and it's not a complicated answer. I think it's weird to talk about having "all the same rights" without explaining why that matters particularly (it does matter, it's just not explained much!) but it is somewhat tangential to the question being posed which has a very clear and straightforward answer.
I hope more companies consider this unusual arrangement at least as an alternative to other approaches. Permissively licensed binaries can come in handy, though it certainly comes with it's risks. For example, Microsoft released the binaries for its WebView2 SDK under the BSD license; this is nice of course, but the side-effect is that we can (and did) reverse engineer the loader binary back to source code. I suspect that's unlikely to happen for any substantially large commercial product, and I am not a lawyer so I can't be sure this isn't still legally dubious, but it's still worth considering: the protections of a EULA are completely gone here, if you just distribute binaries under a vanilla permissive open source license.
- kevincox 4y agoI felt the exact same thing. I was pretty sure the answer was "No" but they were too chicken to write it. Were they hoping that people wouldn't notice?
- a2800276 4y agoYou'd think they could have just left that question out of their FAQ and licensed it with a "free-as-in-beer" click-through license.
- nerdponx 4y agoProbably. They were hoping that the less-informed (like me) would see "The Datomic binaries are being released under the Apache 2.0 license" and think "Datomic is relicensed under Apache 2.0".
- sneak 4y agoIt worked for Docker Desktop and BSC. The products even have github repos! There's just no source in them. It's open source cosplay.
- unionpivo 4y ago> It's open source cosplay. I am stilling that phrase. It's perfect.
- xpe 4y agoSaying “no” also would provide a nice opportunity for Nubank to explain why. To some, the answer is “open source” no matter the question. Hello wagging tail, meet dog.
- MrGilbert 4y agoI'm not sure, but I think from a marketing perspective, you do not want to write "No" anywhere. I might be wrong, and I'd love if someone with knowledge in this area could answer. It's something I recall from the back of my mind...
- Timwi 4y agoBeing a marketing tactic makes it more scummy, not less.
- JoshTriplett 4y agoDishonesty and subterfuge are bad marketing tactics.
- switchbak 4y agoMarketing to developers is also decidedly different than for non devs. We've been baited and switched, and screwed over a million times (thanks Google). It takes a lot of trust building to get me to trust any organization. I especially don't trust free shit if I don't have access and control of the future of the code. Even then it's not a sure thing.
- newswasboring 4y agoIs it though? Seems to me that most marketing today is subterfuge.
- thomastjeffery 4y agoIs most marketing good? I don't think so.
- newswasboring 4y agoI don't know what you are calling "good". That is a super loaded word. I would say it is effective though. The baseline evidence for that is how much money gets spent in that industry, I guess.
- nerdponx 4y agoI didn't realize it was possible to release binaries under a different license from the source code that generated them. In this case, is the "source code" just the physical machine code or bytecode in the binary?
- jchw 4y agoDisclaimer; I'm not a lawyer, nor do I play one on TV. A copyright license is a copyright license: in theory, all a copyright license does is give you additional rights to use something. Using a license like Apache 2 for binaries is somewhat unconventional, but it's totally possible. It (obviously) does not give you access to the source code, and I think this could never work with the GPL and other copyleft licenses because they use wording that implies you need to distrubute the source code, which you don't have. The copyright owner, of course, has ownership, so their obligations don't really change by virtue of giving someone a copyright license. As far as I know, they could give someone a license to use something that is completely invalid and could never actually be used, and they can definitely do things like stop distributing under one license and switch to another. They own the source code, and they own the binaries (I believe the binaries would be considered a sort of derivative work in copyright terms, but again, not a lawyer.) So when they distribute a binary under a given license, it's unrelated to any particular distribution of source code. The only time this gets complex is when the ownership of a asset is split among many disparate parties, at which point everyone is pretty much beholden to the copyright licenses; like open source projects without CLAs. But if they own the source code entirely, they could, for example, distribute some source code under GPL, but then distribute modified binaries under a commercial license with a EULA, and not redistribute the modified source code, since it's their code to license to others, not a license they are subjected to themselves.
- remram 4y agoYou can attach any license text to anything, but most open-source license make little sense when applied to binaries. Like in this case, the Apache 2 license doesn't make distinction between the source and binary, referring to both as "the Work": > 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 (...) Applying this only to their binaries directly contradicts what the license says.
- assbuttbuttass 4y agoI am not a lawyer, but doesn't the Apache license specifically grant the right to redistribute the source code? > 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
- mbreese 4y agoBut what if you never had the source form? You can’t redistribute what you never had… This is actually an interesting question. But I can’t see how a binary only distribution would be in the spirit of the Apache license.
- ilc 4y agoIt is the very reason the license exists. It is in the spirit and the letter of the license to do binary only distribution. Why do you think so many companies are pushing the Apache License 2.0 over the GPL?
- mbreese 4y agoI thought the reason was the explicit patent language and lack of license virality. The Apache license 2 is pretty clear that binary only distribution is allowed, but I think it’s also clear that the assumption is that source is available in some form. Otherwise, why would you care about derivative works? As is, it would be possible to decompile the JVM code into something resembling source code and then distribute that with or without modification. Which just seems odd to me.
- jrmg 4y agoIt’s runs on a JVM, right? Presumably it could be decompiled and cleaned up (might be a massive task - but possible), and the reconstructed source would fall under the Apache license. What a weird choice to make.
- charesjrdan 4y agoThere are also similar datalog immutable databases with fully open source codebases out there too like https://www.xtdb.com/ https://www.xtdb.com/ or https://datahike.io/ https://datahike.io/
- iLemming 4y agoCame here to search for the mention of XTDB (formerly known as Crux). I have never tried Datomic and only trivially played with XTDB, does anyone know if there's a comprehensive comparison of the two? update: So, I asked chatGPT and this is what I got: ---- ChatGPT> Do you know how Datomic and XTDB differ? Yes, Datomic and XTDB are both database systems, but they differ in a few ways: 1. Architecture: Datomic follows a client-server architecture, where the client sends requests to the server for data manipulation. On the other hand, XTDB is designed as a distributed database system, where data is automatically partitioned across multiple nodes for high availability and scalability. 2. Query Language: Datomic uses the Datalog query language, which is similar to Prolog, for querying the database. XTDB, on the other hand, provides a modern and expressive query language based on Clojure. 3. Data Model: Datomic stores data in the form of entities, attributes, and values. XTDB uses a document-based data model, where each document is a self-contained unit of data. 4. Distributed Transactions: XTDB supports distributed transactions while Datomic does not. This means that XTDB can guarantee the consistency of data across multiple nodes in a distributed system, while Datomic cannot. 5. Open Source: XTDB is open-source, while Datomic is a commercial product, which requires a license to use. Overall, both Datomic and XTDB have their own unique features and advantages, and the choice between the two depends on the specific requirements and use case of the application. ---- I dunno, it sounds like XTDB is a clear winner here, no?
- refset 4y ago1, 2 and 4 are not to be trusted ;)
- butternoodle 4y agoI'm tickled you asked ChatGPT but I think it misses the the forest for the trees somewhat. 1. Architecture - XTDB is designed to work with Kafka, but it also works with typical JDBC databases as a datastore. Datomic can use SQL databases, DynamoDB or Cassandra if you want distribution. I personally would think long and hard before I introduced a distributed database to my organisation "because it scales". Part of the value proposition of Datomic is it easily scales read workloads horizontally and by isolating read and writes into separate processes it improves write performance significantly. The metric usually thrown around is 75% of CPU cycles in a traditional RDBMS are concurrency coordination, which is avoided by the Datomic model. That number is quite old now so I don't know if it's still accurate as of 2023. 2. Query language - both use Datalog and support the Datomic `pull` syntax. XTDB also supports SQL. 3. Datomic's EAVT quadruplets are a compelling feature because they are so generic and can be used/re-used in many contexts. A document database would have to fit your use case pretty directly. 4. Datomic has a single transactor process. Do you need distributed transactions? Does Datomic need distributed transactions? You'd have to find someone from say, Nubank, and ask them for war stories. :-) 5. Datomic is now free-as-in-beer. In my unqualified opinion XTDB is appropriate to choose in the following situations: - You need to model "valid time" as part of your domain. - Do you want a document database and are happy with everything that entails? - You need access to the source code of your database. - Do you have existing analysts who know SQL but don't know or can't learn Datalog?
- thomastjeffery 4y agoThey lead with, "The Datomic binaries are being released under the Apache 2.0 license." I can feel the internal open vs. closed source argument from here.
- erichocean 4y agoEh, it's Java bytecode and it's Apache 2. So you can patch Datomic and extend it without breaking the license.
- slim 4y agoYou can also probably decompile it
- JBiserkov 4y agoDecompile it to Java - yes, decompile it to Clojure - highly doubtful.
- erichocean 4y agoThere are projects in Clojure to decompile Clojure-derived Java bytecode to Clojure. It works pretty well overall since Clojure's compiler isn't too fancy.
- ithrow 4y agoI wonder if public benchmarks are now allowed with the binaries.
- KingMob 4y agoSomebody asked about the Dewitt Clause in the Slack, and got crickets.
- daveguy 4y agoGiven the recent bait and switch moves by many companies from free-for-everyone open source to free-for-users-only (eg apache to agpl), it seems like doing this with "binaries only" practically admits to a bait and switch plan.