Threads for deobald

  1. 2

    Speaking of xtdb, I wrote a response to this article when it was published:

    https://www.juxt.pro/blog/bitemporality-more-than-a-design-pattern

    1. 1

      I’m interested bitemporal databases and Datalog as a query language, so it’s always cool to see progress on Crux! Unfortunately, the Clojure bits have always made Datomic and Crux a bit impenetrable to me. I wrote some Clojure with friends in college, but didn’t enjoy or understand it to the extent needed to be the “Clojure Prophet” at my workplace. There’s always a Java API, but these tend to be very verbose, and the HTTP API only accepts EDN (the JSON of Clojure syntax) for queries.

      That’s what makes the new new Kotlin query DSL is interesting, here’s a sampler from one of its tests:

      // not shown: predefinition of person*, age* and *Key
      // symbol constants
      db.q {
                      find {
                          +person1
                      }
      
                      where {
                          person1 has ageKey eq age1
                          person2 has ageKey eq age2
                          person2 has nameKey eq "Ivana"
                          age1 eq age2
                      }
                  }.singleResultSet(),
      

      Still, compared to the EDN form, this is quite verbose. I wish there was a way to write actual Datalog queries against Crux, but it’s probably easier to internalize the EDN than try to make this kind of wrapper.

      1. 2

        We do have Kotlin users who skip the wrapper and query with EDN Datalog, so I can attest that it’s an option. :)

        The topic of supporting “actual” Datalog has come up quite a few times — in the early days, I was a big proponent. Unfortunately, there is no such thing as standard Datalog. As such, any Datalog grammar the Crux team comes up with will be just as fabricated as EDN Datalog. Because of this, the team has decided to stick with EDN Datalog as the primary query language for Crux 1.x. Crux 2.x will support both EDN Datalog and a complete SQL surface area.

      1. 3

        Ah, I’ve been wondering what people mean when they say that Clojure has a bad license. Thanks for this.

        On a separate note, I don’t see the benefit of using the MIT license over an even more permissive license, like the Unlicense. I would love to hear some arguments for using the former, as I personally am quite unsure of what to license my own projects (they’re either not been licensed at all, or using the Unlicense).

        1. 6

          I think Google and other big corps don’t allow contributing to or using unlicensed projects because public domain is not legally well defined in some states lawyer pedantry, which to me seems like a positive thing :^)

          Personally I go with Unlicense for one-off things and projects I don’t really want/need to maintain, MIT or ISC (a variant of MIT popular in the OCaml ecosystem) if I’m making a library or something I expect people to actually use because of the legal murkiness of the Unlicense, and if I were writing something like the code to a game or some other end-user application I’d probably use the GPLv3, for example if it was a mobile app to discourage people from just repackaging it and adding trackers or ads and dumping it on the play store.

          1. 4

            Yes! “Copyleft is more appropriate to end-user apps” is my philosophy as well. Though actually I end up using the Unlicense for basically all the things.

            legal murkiness of the Unlicense

            Isn’t that kinda just FUD? The text seems good to me, but IANAL of course.

            1. 2

              Isn’t that kinda just FUD?

              Reading the other comments seems like it is, I guess I was just misinformed. I still prefer MIT because, as others have said, it’s more well known.

            2. 2

              This is somewhat off-topic, but I never thought the ISC license was really popular in the OCaml ecosystem. For a crude estimate:

              $ cd ~/.opam/repo/default/
              $ grep -r 'license: "ISC"' . | wc -l
              1928
              $ grep -r 'license: "MIT"' . | wc -l
              4483
              
              
              1. 2

                I think it’s more popular than in most other ecosystems at least.

                1. 3

                  Might be. It would be interesting to get some stats about language/package ecosystem and license popularity.

                  1. 2

                    Here it is for Void Linux packages; not the biggest repo but what I happen to have on my system:

                    $ rg -I '^license' srcpkgs |
                      sed 's/license="//; s/"$//; s/-or-later$//; s/-only$//' |
                      sort | uniq -c | sort -rn
                       1604 GPL-2.0
                       1320 MIT
                        959 GPL-3.0
                        521 LGPL-2.1
                        454 BSD-3-Clause
                        392 Artistic-1.0-Perl, GPL-1.0
                        357 Apache-2.0
                        222 BSD-2-Clause
                        150 GPL-2
                        133 ISC
                        114 LGPL-3.0
                        104 Public Domain
                         83 LGPL-2.0
                         83 GPL-2.0-or-later, LGPL-2.1
                         63 GPL-3
                         50 MPL-2.0
                         47 OFL-1.1
                         41 AGPL-3.0
                         36 Zlib
                         31 BSD
                         26 GPL-2.0-or-later, LGPL-2.0
                         23 Unlicense
                         21 Artistic, GPL-1
                         20 Apache-2.0, MIT
                         19 ZPL-2.1
                         19 BSL-1.0
                    [...]
                    

                    It groups the GPL “only” and “-or-later” in the same group, but doesn’t deal with multi-license projects. It’s just a quick one-liner for a rough indication.

              2. 1

                This sounds like a nice scheme for choosing a license. Thanks for you explanations regarding choosing each one of them.

              3. 4

                On a separate note, I don’t see the benefit of using the MIT license over an even more permissive license, like the Unlicense

                It’s impossible to answer the question without context. No license is intrinsically better or worse than another without specifying what you want to achieve from a license. With no license, you prevent anyone from doing anything, so any license is a vector away from this point, defining a set of things that people can do with your code. For example:

                • Do you want to allow everyone to modify and redistribute your code? If not, then you don’t want a F/OSS license.
                • Do you want to allow people to modify and redistribute your code without giving their downstream[1] the code and rights to do the same? If so, you want a copyleft license of some kind.
                • Do you want to allow people to modify and redistribute your code linked to any other open source code? If so, then you want either a permissive license or a copyleft license with specific exemptions (making something that is both copyleft and compatible with both GPLv2 and Apache 2 is non-trivial, for example).
                • Do you want people who are not lawyers to be able to understand what they can do with your code, when composed with whatever variations on copyright law apply in their particular jurisdiction? Then you want a well-established license such as BSD/MIT, one of the Creative Commons family, Apache, or GPL, for which there are a lot of human-readable explanations.
                • Do you want to be able to take contributions from other folks and still use the code in other projects under any license? If so, then you want a permissive license or to require copyright assignment.
                • Do you intend to sue people for violating your license? If not, then you probably won’t gain anything from a license with terms that are difficult to comply with because unscrupulous people can happily violate them, unless you assign copyright to the FSF or a similar entity[2].
                • Do you want to allow people to pretend that they wrote your code? If so, then you want to avoid licenses with an attribution requirement and go for something like Unlicense.

                From this list, there are two obvious differences between the MIT license and Unlicense: MIT is well-established and everyone knows what it means, so there’s no confusion about what it means and what a court will decide it means, and it requires attribution and so I can’t take an MIT-licensed file, put it in my program / library and pretend that I wrote it. Whether these are advantages depends on what you want to allow or disallow with your license.

                [1] There’s a common misconception that the GPL and similar licenses require people to give back. They don’t, they require people to give forwards, which amounts to the same thing for widely-distributed things where it’s easy to get a copy but is not so helpful to the original project if it’s being embedded in in-house projects.

                [2] Even then, YMMV. The FSF refused to pursue companies that were violating the LGPL for GNUstep. Being associated with the FSF was a serious net loss for the project overall.

                1. 2

                  I should have clarified that I don’t care about attribution. Thank you for the informative and well structued overview.

                  1. 3

                    Looking at the text of Unlicense, it also does not contain the limitations of liability or warranty. That’s probably not a problem - when the BSD / MIT licenses were written there was a lot of concern about implied warranty and fitness for purpose, but I think generally that’s assumed to be fine for things that are given away for free.

                    You might want to rethink the attribution bit though. It can be really useful when you’re looking for a job to have your name associated with something that your employer is able to look at. It is highly unlikely that anyone will choose to avoid a program or library because it has an attribution clause in the library, so the cost to you of requiring attribution is negligible whereas the benefits can be substantial.

                    If you’re looking for people to contribute to your projects, that can have an impact as well.

                    1. 3

                      I don’t care about attribution mainly for philosophical reasons. I dislike copyright as a concept and want my software to be just that, software. People should be able to use it without attributing the stuff to me or anyone else.

                      1. 2

                        Attribution is more closely related to moral rights than IP rights, though modern copyright has subsumed both. The right of a creator to be associated with their work predates copyright law in Europe. Of course, that’s not universal: in China for a long time it was considered rude to claim authorship and so you got a lot of works attributed to other people.

                        1. 2

                          Right, I don’t want to claim authorship of much of the stuff I create. I simply want to have it be a benefit to the people who use it. I don’t have a moral issue with not crediting myself, so I won’t.

                    2. 2

                      Perhaps you would like the ZLib license, then? Unlike MIT, it does not require including the copyright and license text in binary distributions.

                    3. 2

                      I’m no lawyer, but as I understand it, authorship is a “natural right” that cannot be disclaimed at least within U.S. law. It is separate from copyright. The Great Gatsby is in the public domain, but that doesn’t mean that I get to say that I wrote it. You probably can’t press charges against me for saying so as an individual, but plagiarism is a serious issue in many industries, and may have legal or economic consequences.

                      My point is that the Unlicense revokes copyright, but that someone claiming to have created the work themselves may still face consequences of a kind. Whether that is sufficient protection of your attribution is a matter of preference.

                      1. 3

                        My understanding is that it’s a lot more complex in the US. Authorship is under the heading of ‘moral rights’, but these are covered by state law and not federal. There are some weird things, such as only applying to statues in some states.

                    4. 3

                      Not licensing make the product proprietary, even when the source is publicly shown no one can use it without your permission. IANAL but Unlicense (just like CC0) aren’t really legally binding in some countries (you cannot make your work public domain without dying and waiting). So MIT is not that bad choice as the only difference is that you need to be mentioned by the authors of the derivative work.

                      1. 3

                        0-BSD is more public domain-like as it has zero conditions. It’s what’s known as a “public-domain equivalent license”.

                        https://en.wikipedia.org/wiki/Public-domain-equivalent_license

                        1. 3

                          The Unlicense is specifically designed to be “effectively public domain” in jurisdictions that don’t allow you to actually just put something in the public domain, by acting as a normal license without any requirements.

                          That’s, like, the whole point of the Unlicense :) Otherwise it wouldn’t need to exist at all.

                          1. 2

                            I have heard that the Unlicense is still sometimes not valid in certain jurisdictions. 0-BSD is a decent alternative as it’s “public-domain equivalent”, i.e. it has no conditions.

                          2. 2

                            Right, I’ve heard there’s some legal issues with it before, thanks for reminding me.

                            EDIT: Looks like there’s no public domain problems with the Unlicense after all, so I’m not worried about this.

                            1. 1

                              Looks like there’s no public domain problems with the Unlicense after all

                              Where did you see this?

                            2. 2

                              The whole point of the CC0 is to fully disclaim all claims and rights inherent to copyright to the fullest extent possible in jurisdictions where the concept of Public Domain does not exist or cannot be voluntarily applied. There’s very little reason to suspect that choosing the CC0 is less legally enforceable than MIT.

                              1. 3

                                CC0 seems fine but is somewhat complex. I prefer licenses that are very simple and easy to digest.

                            3. 3

                              I don’t see the benefit of using the MIT license over an even more permissive license, like the Unlicense

                              Purely pragmatically, the MIT license is just better known. Other than that: the biggest difference is that the MIT requires attribution (“The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.”), and the Unlicense doesn’t.

                              As for the concerns over “public domain”, IMHO this is just lawyer pedantry. The text makes it plenty clear what the intent is, and I see no reason why it shouldn’t be upheld in court. The gist of the first paragraph is pretty much identical as MIT except with the “the above copyright notice and this permission notice shall be included in all copies” omitted. If it would only say “this is public domain”: then sure, you could land in to a conflict what “public domain” means exactly considering this isn’t a concept everywhere. But that’s not the case with the Unlicense.

                              1. 2

                                This is comforting to know. Thank you for the clarification!

                              2. 1

                                I’ve released a lot of code under a dual MIT/Unlicense scheme. ripgrep is used by millions of people AFAIK (through VS Code) and is under this scheme. I have heard zero complaints. The purpose of such a thing is to make an ideological point with the Unlicense, while also providing the option to use something like the MIT which is a bit more of a known quantity. Prior to this, I was releasing code with just the Unlicense and I did receive complaints about it. IIRC, from big corps but also individuals from jurisdictions that don’t recognize public domain. It wasn’t so much that they definitively said they couldn’t use the Unlicense, but rather, that it was too murky.

                                IANAL although sometimes I play one on TV. In my view, the Unlicense is just fine and individuals and big corps who avoid it are likely doing it because of an overly conservative risk profile. Particularly with respect to big corps, it’s easy to see how the incentive structure would push them to do conservative things with respect to the law for something like software licenses.

                                While the dual licensing scheme seems to satisfy all parties from a usage perspective, I can indeed confirm that this prevents certain big corps from contributing changes back to my projects. Because those changes need to be licensable under both the MIT and Unlicense. To date, I do not know the specific reasons for this policy.

                                1. 2

                                  I never really understood how dual-licensing works, can you explain a bit? Do users pick the license that they want or can they even cherry pick which clauses of each license they want to abide by?

                                  1. 2

                                    AIUI, you pick one of the licenses (or cascade the dual licensing scheme). That’s how my COPYING file is phrased anyway.

                                    But when you contribute to a project under a dual licensing scheme, your changes have to be able to be licensed under both licenses. Otherwise, the dual license choice would no longer be valid.

                                2. 1

                                  As I state in the article, I don’t think the EPL is a “bad license.” Clojure Core uses the EPL for very good reasons — it’s just that most of those reasons are unlikely to apply to Random Clojure Library X.

                                  EDIT: I had replied regarding The Unlicense, but I see other folks have done a more thorough job below, so I’m removing that blurb. Thanks all.

                                  1. 1

                                    I should have expressed myself more clearly. I’ve heard people mention Clojure’s license as a downside to the language, and now that I’ve read your article I have an idea of what they’re talking about.

                                  2. 0

                                    Unlicense

                                    I recommend against using this license, because making the ambiguous license name relevant anywhere makes everyone’s life harder. It makes it hard to distinguish between “CC0’d” and “in license purgatory”:

                                    “What is this code’s license?”
                                    “It’s Unlicensed
                                    <Person assumes it’s not legally safe to use, because it’s unlicensed>

                                    I wish that license would either rename or die.

                                  1. 20

                                    There is at least one reason for Clojure users to choose for their libraries to be distributed with the same terms as Clojure’s core and standard libraries: it removes one of the many barriers towards canonicalizing popular libraries in a language’s standard library. In e.g. the Python ecosystem, the PSFL serves a similar purpose.

                                    That said, I’m not sure I understand at least one of the implicit themes in your post: Why are copyleft licenses “restrictive” or “inflexible”? In the past few discussions that we’ve had here, it seems that these imagined restrictions would generally not impede individual people from expressing themselves with Clojure. Indeed, if more of the Clojure ecosystem were copylefted, wouldn’t e.g. Datomic be pressured to become Free Software too, increasing the expressive landscape?

                                    To very gently apply some deconstruction of our own, it appears that this blog post asking a community to use permissive non-copyleft licenses is part of a corporation’s Web presence. Similarly, the “Choose a License” page is owned and operated by GitHub, a subsidiary of Microsoft, one of the “software behemoths like Amazon and Apple” mentioned in this post. When you say, “benefits to copyleft which outweigh the costs,” what exactly are the costs?

                                    1. 10

                                      The cost (and inflexibility) is that of a one-way street, as indicated by the doodles. :) I see a lot of new developers blindly choosing the EPL without even familiarizing themselves with the terms of the license. That’s a really difficult decision to reverse.

                                      This post isn’t advocating for MIT over copyleft licenses generally. It’s only a discussion about Sensible Defaults. I license quite a lot of my source AGPL-3, where copyleft licenses are appropriate. But I also ensure I get external contributors to sign Contributor Agreements because, in all likelihood, the AGPL-3 won’t be sufficient indefinitely. In 20 years, those projects may require a stricter copyleft license (or a permissive license, but I doubt it).

                                      1. 13

                                        To very gently apply some deconstruction of our own, it appears that this blog post asking a community to use permissive non-copyleft licenses is part of a corporation’s Web presence. Similarly, the “Choose a License” page is owned and operated by GitHub, a subsidiary of Microsoft, one of the “software behemoths like Amazon and Apple” mentioned in this post. When you say, “benefits to copyleft which outweigh the costs,” what exactly are the costs?

                                        Thank you for saying this. I’ve grown weary defending copyleft in recent years. It feels like such a losing battle. There’s so much pro-liberal license propaganda. They’ll convince us that it’s “more free” or whatever, but the truth is that it’s mostly about “more free… labor for us”.

                                        1. 7

                                          The thing is that the concept of “free” isn’t a one-dimensional axis that you can just stick a number on from 0 (not free at all) to 100 (maximum freedom), it’s a complex matrix where moving the slider in one aspect also moves some other sliders up or down.

                                          When people say that “MIT is more free” then they’re right: there are fewer conditions than the GPL. When people say that “GPL protects freedom better” then they’re right too. It’s just a matter of different values and priorities. I wish people could just accept that not everyone has the same priorities and values instead of reaching to the dismissive “propaganda” cudgel.

                                          This is true for a lot of discussions actually, not just license ones (including many political ones). People tend to frame “free” or “better” according to their own preferences and priorities, and sometimes forget that not everyone shares these and then they’re left bewildered how anyone could prefer something else and come to the conclusion that it can’t be anything other than “propaganda”, “stupidity”, etc. But if you spend some understanding people’s worldview then often (though not always) it starts making a lot more sense.

                                          For my own part, I use both permissive and copyleft licenses, depending on what’s the best fit for the project.

                                          1. 8

                                            Then you’re in good company, because I’ve grown weary of arguing the opposite position. In part because it seems like it’s impossible for someone to hold a position against the GPL that isn’t just “propaganda.” Apparently the notion that reasonable people can disagree is no longer relevant.

                                            1. 8

                                              But most of the arguments I hear against strong copyleft licenses like GPL are ‘You’ll prevent people from using it’, where ‘people’ are usually unspecified but presumably corporations whose lawyers blanket ban anything under the *GPL licenses. The undertone is ‘Don’t you want the project to succeed?’, where ‘succeed’ is also presumed to be measured as ‘used by corporations’.

                                              1. 5

                                                But most of the arguments I hear against strong copyleft licenses like GPL are ‘You’ll prevent people from using it’, where ‘people’ are usually unspecified but presumably corporations whose lawyers blanket ban anything under the *GPL licenses

                                                That’s not the only problem. The more constraints in your license, the less compatibility it has. XPDF was GPLv2, so libpoppler (which was based on the codebase) couldn’t be used in Apache or GPLv3-licensed projects at all (and people didn’t want to use it in permissively licensed projects). This held back PDF support in the entire open source ecosystem for a long time.

                                                Most corporations don’t have any problem using GPL’d code, it’s only distributing GPL’d code that they object to. The GPL didn’t stop Google from running a massively modified version of Linux on millions of servers without contributing their changes back, GPLv3 did prevent Apple from contributing changes back to GCC and is the reason that GCC’s Objective-C support is now largely useless.

                                                The undertone is ‘Don’t you want the project to succeed?’, where ‘succeed’ is also presumed to be measured as ‘used by corporations’.

                                                I want people to contribute to things that I use. That’s how I measure success from open sourcing: do I get a better program / library for my uses than I would have if I hadn’t released it?

                                                1. 4

                                                  This held back PDF support in the entire open source ecosystem for a long time.

                                                  Correction, it held back PDF support in the permissive license ecosystem.

                                                  Most corporations don’t have any problem using GPL’d code,

                                                  Not in my experience. Lawyers typically clamp down pretty hard on anything GPL that’s not Linux. E.g. pm2 (the JavaScript service runner).

                                                2. 5

                                                  Thankfully, I don’t need to repeat myself endlessly: https://github.com/BurntSushi/notes/blob/master/2020-10-29_licensing-and-copyleft.md

                                                  How about we just stop saying that opponents to copyleft are nothing more than transparent corporate shills or idiots who can’t seem to see through propaganda? That’s the point. And the reason why I said this was specifically in response to a supporter of copyleft saying that they are weary of advocacy. Well, yeah, join the club. Maybe if more people see that we have abdicated the notion that reasonable people can disagree, then maybe, just maybe, we might all stop assuming bad faith everywhere.

                                                  1. 4

                                                    Thank you for sharing this post. It is a well-written summary of a common position, and I will do my best to respect it rather than insulting it.

                                                    I worry that you’re not seeing the pragmatic effects of incremental improvements and reforms. The position you’ve detailed is similar to many positions held around the time that the phrase “Free Software” started to become philosophically meaningful; think of copyleft as a pre-existing response to your position, not just part of your own current-day context.

                                                    Let us imagine four states, which I’ll call Disneystan, Crementalia, Pirate’s Coast, and Imagineland. Each state has a copyright regime comparable to those in the USA, EU, etc. composed of corporations which exploit a shared creative commons. In each state, cultural forces cause activists to explore different routes to progress:

                                                    • In Disneystan, activists appeal to the largest corporations to be better citizens. The corporations reply by contributing small amounts to token charity efforts.
                                                    • In Crementalia, activists use copyleft techniques to secure part of the shared creative commons against exploitation. The corporations reply by contributing small amounts to token projects in the commons.
                                                    • In Pirate’s Coast, activists set up decentralized repositories to host the commons, and republish corporate content without permission. The corporations reply by suing and jailing activists.
                                                    • In Imagineland, activists somehow establish democratic control of copyright law, and enact dramatic reform (14yr terms, end working-for-hire, etc.) Corporations reply by hiring private armies and blackballing anybody who publishes proprietary information.

                                                    Then, the question is whether or not you’d like to enjoy a pragmatic effect of a robust shared creative commons – of software, in our case – which is secured against corporate attempts to exploit it. Particularly, if you were a contributor to such a commons, you’d like to consider whether you are secured against exploitation!

                                                    Finally, since the goal of maximizing the usage of a chunk of your code is utilitarian, we can find the problems with utilitarianism within your position. For example, the repugnant conclusion to your position is that your goal shouldn’t be to write bold new high-level end-user applications which push the concept of human-computer interaction, but to replace as many low-level loops in the operating system as possible, so that the maximum number of people are technically running code which you contributed.

                                                    Similarly, the freedom monsters for your position are those who live forever, always make advantageous trades, acquire rights to software you depend upon, and eventually have control over what kinds of software you produce because they have control over the software which empowers you. Who could that be?

                                                    1. 3

                                                      I thank you for not explicitly calling me dumb I guess, but I kind of think you did, just with a flare of sophistication. But I’m fine moving past it. It might just be your style.

                                                      In any case, I think the point you’re missing here is that I’m ideologically opposed to the ownership of ideas. We can dive down that rabbit hole, but I think it will take us to familiar places and neither will benefit much from it. (I can’t remember precisely what your socio-political views are, but I think we are on very opposite ends of that spectrum.) And crucially, there is a point that just because I find something unethical, that doesn’t mean I want to enact laws to forbid it. This is particularly relevant to when you said

                                                      Then, the question is whether or not you’d like to enjoy a pragmatic effect of a robust shared creative commons – of software, in our case – which is secured against corporate attempts to exploit it.

                                                      This is really written in such a way as to be impossible to disagree with. It’s like saying, “Well, don’t you want good stuff to happen and bad stuff to not happen?” Totally! Yes! Sign me up!

                                                      The devil is in the details. How is it “secured”? What are the means through which you accomplish the banning of bad things and the proliferation of good things? And what does exploit mean? I’ve heard some people say that people who release software under permissive licenses are being exploited by corporations. Certainly, corporations use my code without giving anything back to me or even to the commons necessarily. Am I being exploited by that? Are others? I don’t feel exploited. Can I be exploited if I say, with full knowledge and study of the situation, that I am not? What does it mean for someone else to tell me I’m being exploited? Do I even have the agency to disagree with it?

                                                      The position you’ve detailed is similar to many positions held around the time that the phrase “Free Software” started to become philosophically meaningful; think of copyleft as a pre-existing response to your position, not just part of your own current-day context.

                                                      Yes, I think this is what I was getting at when I said that my views opposing copyright actually tend to align with principled copyleft supporters. I tried to address that in my blog post, but it seems like you’re just kind of repeating that notion to me here? Either way, changing my perspective on copyleft to a pre-existing response and not just a part of my own current-day context doesn’t reveal any new insights for me personally. But maybe I’m missing something.

                                                      Finally, since the goal of maximizing the usage of a chunk of your code is utilitarian, we can find the problems with utilitarianism within your position.

                                                      I did not say maximizing the usage of a chunk of my code was ethical though. And if you so insisted, it seems like a pretty easy thing to rebuttal: my language was just imprecise. A charitable interpretation of what I said is that of the code I write, I would like as many people to use it as possible. There is certainly some feedback loop here, e.g., sometimes I pick projects based on what I perceive is a need for them. But I don’t pick projects based exclusively on how widely they will be used. Like, there are other things to consider here, such as… not doing malicious things in my code?

                                                      To be honest, your characterization of my position seems kind of ridiculous. And in particular, here is what I said, emphasis added:

                                                      Namely, when I publish source code, one of my main goals is for as many people as possible to use it, regardless of whether it’s other individuals or giant corporations.

                                                      While I didn’t go into all of the details, I did explicitly call out that the goal I listed is not necessarily my only goal. And thus, you cannot really conclude rigorously that I suffer from a repugnant conclusion.

                                                      Similarly, the freedom monsters for your position are those who live forever, always make advantageous trades, acquire rights to software you depend upon, and eventually have control over what kinds of software you produce because they have control over the software which empowers you. Who could that be?

                                                      You can’t acquire rights to software without a regime of intellectual property, to which I am opposed, because there would be no rights to software.

                                                    2. 1

                                                      I read your note on licensing. Long story short, I understand your goals but don’t share them. I said what I said in good faith, based on my actual experiences, not to imply that people who disagree are shills or propagandists. And people are weary of permissive license advocacy because that’s the world we live on, with a cyclical story of people rushing to use MIT or Apache or whatever and then getting their lunch eaten by AWS (among other ill effects). Advocacy in the reverse direction is by far a tiny fraction of that.

                                                      1. 1

                                                        I see a lot more advocacy of copyleft than I do permissive licenses.

                                                        I suppose it’s not surprising that we notice the type of advocacy that we disagree with more than the advocacy we agree with.

                                                        Long story short, I understand your goals but don’t share them. I said what I said in good faith, based on my actual experiences, not to imply that people who disagree are shills or propagandists.

                                                        But I wasn’t just responding to what you said specifically. I was responding to this comment, and your reply to me suggested you disagreed with me and agreed with that comment I was replying to. And then you kind of went on to say, paraphrasing, “permissive license arguments are just pro-corporation arguments in disguise.” By characterizing people you disagree with this way, you remove the opportunity for reasonable people to disagree between copyleft and copyfree. Like, why not say, “I think there is a lot of propaganda out there about permissive licenses, but there are also plenty of legitimate arguments in its favor as well.”

                                                        1. 1

                                                          And then you kind of went on to say, paraphrasing, “permissive license arguments are just pro-corporation arguments in disguise.”

                                                          Well, they kind of are, aren’t they? What’s the big difference between the permissive copyleft and the strict copyleft licenses in terms of who can easily use the software? When you say ‘I want as many people to use my software as possible’, who couldn’t use it if it was GPLd?

                                                          1. 1

                                                            People who oppose copyleft. For example, I don’t use any copyleft Rust libraries in any of my projects. I’m not a corporation and I have ideological opposition to copyleft.

                                                            Moreover, corporations aren’t the root cause. They are just a convenient scapegoat. The root cause is IP itself and the incentive structure in promotes.

                                                            1. 1

                                                              People who oppose copyleft

                                                              That applies to both permissive copyleft and restrictive copyleft licenses, so it’s not really an answer to my question.

                                                              The root cause is IP itself and the incentive structure in promotes.

                                                              I’m not convinced ‘no IP’ is the solution, where people who have the power just release obfuscated software and wash their hands saying, ‘Well, you’re free to reverse engineer it’. That effectively locks out more than 99% of people from accessing the code.

                                                              1. 0

                                                                That applies to both permissive copyleft and restrictive copyleft licenses, so it’s not really an answer to my question.

                                                                When did this conversation change to distinguishing between “permissive” and “restrictive” copyleft? I’m talking about copyleft in general.

                                                                I’m not convinced ‘no IP’ is the solution, where people who have the power just release obfuscated software and wash their hands saying, ‘Well, you’re free to reverse engineer it’. That effectively locks out more than 99% of people from accessing the code.

                                                                I addressed this in my link. We’re just re-treading ground now. I acknowledge this possibility. “No IP” isn’t a panacea that solves every problem. This is orthogonal from identifying IP as the root cause for why corporations oppose copyleft.

                                                                1. 1

                                                                  When did this conversation change to distinguishing between “permissive” and “restrictive” copyleft?

                                                                  It never stopped being about that difference. The OP is about that, and my question is about that:

                                                                  And then you kind of went on to say, paraphrasing, “permissive license arguments are just pro-corporation arguments in disguise.”

                                                                  Well, they kind of are, aren’t they? What’s the big difference between the permissive copyleft and the strict copyleft licenses in terms of who can easily use the software? When you say ‘I want as many people to use my software as possible’, who couldn’t use it if it was GPLd?

                                                                  1. 2

                                                                    This is where I entered the conversation, and it’s where you responded to me. Emphasis mine:

                                                                    To very gently apply some deconstruction of our own, it appears that this blog post asking a community to use permissive non-copyleft licenses is part of a corporation’s Web presence. Similarly, the “Choose a License” page is owned and operated by GitHub, a subsidiary of Microsoft, one of the “software behemoths like Amazon and Apple” mentioned in this post. When you say, “benefits to copyleft which outweigh the costs,” what exactly are the costs?

                                                                    Thank you for saying this. I’ve grown weary defending copyleft in recent years. It feels like such a losing battle. There’s so much pro-liberal license propaganda. They’ll convince us that it’s “more free” or whatever, but the truth is that it’s mostly about “more free… labor for us”.

                                                                    This isn’t about “permissive copyleft” vs “strict copyleft” here. I don’t know how this conversation got so confused. I, and the people I was responded to, were talking about permissive vs copyleft. On top of that, the note I linked makes this context very clear: I am talking about permissive or “copyfree” licenses vs copyleft. I am not making a distinction between permissive copyleft and strict copyleft. The OP might, but that’s not what this sub-thread is about.

                                                                    I suggest we stop the conversation here. All we’re doing is having meta-discussion now. The original point has been lost. The original point is that, hey, yeah, you’re weary from defending copyleft and I’m weary from the implication that I’m a corporate shill. Maybe reasonable people can disagree. That’s it.

                                              2. 2

                                                Indeed, if more of the Clojure ecosystem were copylefted, wouldn’t e.g. Datomic be pressured to become Free Software too, increasing the expressive landscape?

                                                Or decreasing it by not existing at all because its authors wouldn’t bother doing it if the ecosystem tries to force them into something?

                                                It’s probably a moot point regarding Datomic specifically, as its authors being the authors of the language itself can do whatever the hell they want. What I’m trying to say is that one downside of copyleft licenses is that they can force creators out of communities without those communities having a slightest idea about that happening.

                                                1. 5

                                                  Do you have specific examples in mind? The ecosystems that spring to my mind, like Linux and its device drivers, don’t seem to have a decreased palette of supported platforms compared to similar proprietary ecosystems. Contrapositively, Oracle is still in business despite an entire community of relational-database technologists who collectively shun them and exclusively use Free Software. On the gripping hand, at least one ecosystem, OpenWRT, sprang from a situation where a corporation used Free Software and was forced to contribute back to the community.

                                                2. 1

                                                  A while ago I changed the license of some of my projects from MPL to Apache/MIT “to better fit the ecosystem” based on some “friendly pressure”.

                                                  I regret it and wouldn’t do it again; I now established that for me MPL is as far as I’m willing to go to the “right” in terms of licenses, and those who don’t like that can write their own code.

                                                  1. 2

                                                    I regret it and wouldn’t do it again

                                                    Can you share what made you regret it?

                                                    1. 2

                                                      Giving other people’s entitlement more weight than my own preferences.

                                                      (I use GitHub’s “temporary interaction limits” to reduce the interaction with that community for various reasons now.)

                                                    2. 2

                                                      Could you elaborate on what in MPL specifically works better for you? (I’m not terribly familiar with MPL, sorry.)

                                                      1. 5

                                                        MPL code can be used by code under pretty much any other license; you only need to provide the source for files under the MPL (including changes you made to these files), which I think is reasonable and incredibly fair.

                                                        1. 1

                                                          And if they modify the MPL’d code? Do they have to also provide the modification back?

                                                    3. 0

                                                      it removes one of the many barriers towards canonicalizing popular libraries in a language’s standard library.

                                                      While this is a somewhat reasonable point, in practice this hasn’t happened. Au contraire, Clojure is known for instead of using external libraries and contributions just reinventing the wheel. One of such examples is Schema vs Spec or in smaller scale e.g. the tuple proposal.

                                                      I think when merging in a popular FOSS library, relicensing is part of the effort but probably not all that daunting of a task. With the rise of decent package managers having things in the standard library is also of less importance, given Node’s minimal standard library and the bad example of Python’s massive dead stdlib which is full of duplicates which can’t be removed nor fixed for compatibility reasons.

                                                    1. 2

                                                      The value of a first-class bitemporal database isn’t always immediately obvious. Without writing any code, this 10-minute guide (3 minutes, if you go quickly) provides a shrunken use case for creating records with valid-time and querying by valid-time.

                                                      1. 2

                                                        Crux has quickly become my favorite database, even as I’m able to use my other favorites through it (postgres and sqlite3)