1. 34
  1. 84

    Stallman was afraid that users would extend his software and not hand over their contributions.

    This gets it backwards. The fear is not “as a developer, I fear that people won’t contribute extensions to my software”, it’s “as a user, I fear that I will be made to use software I cannot audit, extend, or modify”. Given that this is the everyday reality for almost everyone using technology, I’d say the fear is well founded.

    The GPL takes no issue with you modifying software for your own use, the issue comes when you distribute binaries without source.

    1. 16

      I seized on that exact same sentence, to the extent that I was unable to carefully read the rest of the piece.

      IMO it’s a fundamental misunderstanding of Stallman, and so much of the rest of DHH’s analysis rests on the point that I don’t think the piece is coherent. (Of course he can be correct when he says “I won’t let you pay me for my open source” even if his reasoning behind that is incorrect.)

    2. 22

      Except it wasn’t an investment to curry favor with an employer. Or as some shrewd career play for the long term. In fact, I didn’t see it as an investment at all. I wasn’t doing it expecting any external rewards or advantages, then or in the future.

      What DHH is saying is that their intention wasn’t there. In this way, he’s saying “I didn’t mean to accidentally become a well paid and sought after architect based on my bricklaying”, and that he never wanted paid for this.

      That doesn’t mean, of course, that it’s wise or representative of the software bricklayers and foundation-pourers, who absolutely should still be paid.

      DHH, just because you didn’t intend to reap returns on your accidental investment doesn’t mean that no one should.

      1. 11

        That doesn’t mean, of course, that it’s wise or representative of the software bricklayers and foundation-pourers, who absolutely should still be paid.

        DHH is saying that to lay one’s expectations of personal well-being on the altar of market forces and contractual obligations is to invite misery. I don’t think he’s wrong. Why should open source developers expect compensation?

        1. 2

          Why should open source developers expect compensation?

          Because use without compensation is exploitation. If someone makes money off of my work, I expect to be compensated – you mention market forces, but that is exactly how the market was intended to work in the first place

          1. 13

            If you haven’t read the piece yet, I would urge you to. One of the points made within it is that consumption of software is free. When I give you an apple, and you eat it, there is one less apple in the world. If I grew that apple, I would expect compensation for the efforts of doing that because I now have one fewer apples. When I download a piece of software, there is still just as much software in the world. There is no such scarcity in software. You can choose to spend your time to create something, and then if it is consumed one billion times you are no better or worse off than you started. Your time is already spent.

            DHH is urging people who engage in open source or free software endeavors to do so for intrinsic reasons, because to do so for financial reasons is all but guaranteed to result in the same level of existential angst that occurs to people at shitty and boring jobs: your sense of purpose is divorced from your precious time spent, and money doesn’t fix that. That is the real exploitation.

            1. 6

              When I download a piece of software, there is still just as much software in the world. There is no such scarcity in software. You can choose to spend your time to create something, and then if it is consumed one billion times you are no better or worse off than you started. Your time is already spent.

              But this is a fundamentally incorrect assumption. Software itself isn’t subject to scarcity, but as The Mythical Man Month shows (A good chunk of the book is dedicated to this exact matter), the actual program is only part of that which makes software usable – and all of the rest is bound by time cost, and resources. A program author rarely “just makes software”, and has to expend huge amount of resources not only on the initial program but on bug reports, documentation, etc.

              “Software is post-scarcity” is an age-old argument that has since been disproven repeatedly.

              Regardless, the fact that you included “Open Source” in your argument is telling, because the Open Source movement explicitly advocates for software to be given, exploitatively, to companies, because you do not have to pay people for labour. It’s a large part of the original argument for the rebranding of “Open Source”. Thus there is a cost there that is openly admitted, whether or not you admit it to yourself as an individual or not.

              1. 9

                “Software is post-scarcity” is an age-old argument that has since been disproven repeatedly.

                The claim is not that software is ‘post scarcity’ it is that it is a zero marginal cost good, like news. The cost of creating software may be high, the cost of copying software is essentially zero. This is the economic truth at F/OSS recognises: it makes no sense to build an economic model for building anything where you do the expensive thing for free in the expectation that people will pay you to do the trivial thing. Software piracy is such a problem for proprietary COTS software because it does not recognise this and relies on using the law (and, increasingly, technical measures) to prevent third parties from copying the software that a company wrote for free.

                One you accept this, you have a few possible strategies, for example:

                • Write software for free because you want the software and don’t distribute it.
                • Write software for free because you want the software and release it under some license. If other people copy it, don’t worry about it.
                • Write software for free because you want the software and release it under some license. Try to control what people who copy it do with it and become upset if they either break the terms of the license or circumvent the intent of the license.
                • Write software because someone paid you to write it.

                The point of the article is that the second one of these is a better path to individual happiness than the other alternatives. I’ve tried most of these and this also reflects my experience.

                I’ve written software that I’ve never distributed. Most of it has bitrotted. Net tangible result: I have some space on my hard disk used by dead projects. Net personal result: Mild regret.

                I’ve contributed to a GNU project where a company violated the license and the FSF decided not to do anything. The net tangible result was that the company didn’t contribute any of their improvements back because it would have meant publicly admitting that they were violating the license. The net result on my happiness was that I was annoyed and cranky.

                I’ve written permissively licensed software where big companies have sent back the occasional patch but got far more total value out of the codebase than me. I’ve also written permissively licensed software where big companies have contributed far more than I have and permissively licensed software where they’ve used it and given nothing back. In all cases, I didn’t worry about it. If I got code back, I was happy because it was code that benefitted me that I didn’t have to write. If they made money out of the result, good for them. Net tangible result: I got the software I wanted, often better than I wanted. Net personal result: I am happy.

                I’ve written software (including quite a bit of F/OSS) because a company wanted to pay me to write it. Often this was also software I wanted, sometimes it wasn’t. Net tangible result: there is more software in the world, some of which I want to use. Also, I have some more money than I’d have otherwise (or, more recently, charity-of-my-choice has more money than otherwise). Net personal result: Almost purely transactional interaction, no major change in my happiness in either direction.

                Importantly (as the article says), when I’m releasing software and not caring if people who use it make money, then I feel no obligation to the people who are making money with it. If they send me patches that I like, I’ll merge them. If they want the project to go in a different direction then they’re welcome to fork it. I don’t take it quite as far as the title of the article suggests because (when I have sufficient time) I am quite happy to use money to help me sort my to-do list for a project. If I want to implement 10 features but have time to work on two of them, then the two that someone is willing to pay me to work on will take priority. If they want two features that I don’t object to, but don’t care about, then I’m also happy to tell them to pay someone else to do it.

                1. 8

                  I feel like you’re more focused on refuting points that are secondary to the core message I’m trying to convey than hearing what I’m trying to say to you: this piece isn’t really about software; this is about the individual writing the software and their motivations.

                  I interpret DHH as saying it’s a bad idea to do things that matter to you because you expect to be paid for them, and I agree with him. If I’m in error about what people expect when engaging in work on open source software, that would explain our disconnect. I thought it was something people did because it mattered to them, primarily. Is that not the case? I understand the concept of being compensated fairly for one’s labor, but that only makes sense within the context of a transaction. Is open source work supposed to be transactional? DHH seems to be specifically suggesting that people don’t treat it transactionally for their own well-being.

                  1. 7

                    I interpret DHH as saying it’s a bad idea to do things that matter to you because you expect to be paid for them, and I agree with him.

                    That’s what the text says, sure, but what about the subtext? I think it’s impossible to interpret this message completely without taking the context into account, which is that he is a buyer of precisely the type of labor he’s encouraging people to not expect compensation for.

              2. 7

                Because use without compensation is exploitation.

                Only if the license agreement is broken.

                1. 2

                  This may sound snarky, but I don’t mean it to be: how many of the original authors of every part of the TCP/IP stack have you paid? Make sure to include those who were involved in authoring, reviewing, editing, etc of all the RFCs.

                  Today’s tech is only possible by the unpaid contributions of countless people, many of whom aren’t even known to most of the tech (and, heck, even FOSS) community.

                  1. 2

                    Bad example, because those researchers were funded by the universities they were at, and by DARPA.

                    In general, this is why free software for a long time was only sustainable in universities and research environments, because they had sources of income that allowed them to maintain the software as part of their ongoing research. The removal of military to non-military sources killed the main sources of funding SAIL and the MIT AI Lab, which were the main nexuses for the free software movement. Bell Laboratories, one of the only companies that actually had the money and the wherewithal to channel huge budgets to their research staff, was similarly closed.

                    The ensuing corporatisation of research groups outside of those events, has made it impossible for even well-thought-out research projects to get grants, and while companies do contribute occasionally to open source (mostly the larger, more well-known companies that deliberately do it for publicity) how many of them actively contribute money or energy back into the ecosystem?

                    Open source was pitched as a solution to this, companies save money while taking the work of the community, man hours that were previously paid are given gratis, and hopefully the companies pay back their work. Being generous, I think ESR was hoping to get recognition and that OSS developers would be hired to work on their personal projects, and… that never happened. Maybe a handful of companies actually allow that.

                    That’s the fundamental difference between Free Software and Open Source. The former forces the companies to donate their man hours back to the ecosystem, and it is precisely that reason why many companies stay away from those licenses. A company is a fundamentally greedy type of organization, and greed is overwhelmingly bad for the ecosystem.

                    1. 1

                      Perhaps my concrete example wasn’t a good one. My underlying point is that the tech we use today is built on the shoulders of giants. It’s a constant evolution, created by untold number of people working in the background, whose names we may never know.

                      If everyone took the viewpoint that “I’m not going to do this unless I get compensated,” that evolution would either slow to a crawl or be nonexistent. For those that do take that viewpoint, I’m curious if they can confirm whether they have given monetarily to those countless number of unknown people–without whom, their own work would not be possible.

                      1. 1

                        You’re missing my argument

                        1. 2

                          Would you help me understand your point of view?

              3. 4

                I’m not saying that there’s something categorically wrong with developing open source on market-based terms. What I’m saying is that it isn’t a necessary condition of sustainability.

                Again, I’m not saying this is a universal truth, but I am saying that it’s a possible truth.

                Here’s what made sense to me over the past two decades of sustaining an active open-source involvement. This is my personal truth. To resist the temptation to treat my open-source work as a set of transactional, market-based exchanges.

                It’s brought profound meaning to my life, and a much needed escape.

                And, should your personal pyramid of needs allow it, I invite you to do the same.

              4. 16

                Take static vs dynamic typing, as just one example. … This is not a question we’re going to settle with science! … The same, btw, is true for objective-oriented vs functional programming.

                This is an underestimation of computer science. Static types are known to be illusions which only manifest locally under the influence of some ambient type-checker. Objects and functions are both known to be facets of a single universal applicative idiom. The problem is not as Kierkegaard described it, where we lack sufficient faith to admit our shortcomings and accept reality; it is as Wittgenstein described, where we have trapped ourselves with words into looking at the world in a limited way, and can no longer see how those words relate to each other.

                1. 2

                  Static types are known to be illusions which only manifest locally under the influence of some ambient type-checker.

                  I would like to hear you elaborate on this.

                  1. 2

                    I gave a couple examples here before. Where I said, “the subobjects do not cleanly partition the Turing object and there are some programs which don’t seem to be elements of any subobject,” I would translate and say today that the statically-typed programs (of some Turing-complete programming language) do not cleanly partition the space of all programs, and that there are some programs which don’t seem to have any (correct) static type.

                2. 12

                  I have to say good for DHH for managing to make something out of Open Source. But I agree with @kline: just because DHH reaped rewards, while not intending to, is no argument for others to follow in his footsteps.

                  I make the argument why in The Social Contract of Open Source, but essentially, Open Source is draining two scarce resources: time and energy of maintainers. If companies do not want those scarce resources to dry up, they should help buffer them with another resource: money. And since time is money, giving money to maintainers may actually give them more time.

                  Companies need to learn that they need to take care of FOSS in order for FOSS to take care of them.

                  1. 12

                    I don’t necessarily disagree with anything you said, but it’s weirdly slanted toward companies. You can just make stuff for yourself, and like minded people, and if companies contact you, simply ignore them.

                    To me the problem is that once you take money from companies, you are consciously or unconsciously beholden to their interests. I’d rather have that contract explicit in the form of a paycheck

                    1. 2

                      I guess I could have made that clearer, that I think FOSS maintainers have the right to enforce the social contract in any way they want. That does include ignoring companies if that is what is desired. And that is the desire in many cases. I think I slanted it toward companies because they get upset when FOSS maintainers do what the maintainers want instead of what the companies want.

                      I think that however FOSS maintainers enforce the social contract is fine, including taking a paycheck. For me, personally, I suck at getting hired, so getting companies to pay me as a contractor would probably be easier.

                    2. 3

                      Money doesn’t get me any more time, though. Unless maybe it’s enough money for me to quit any other jobs I have, and I happen to want to quit those jobs

                      1. 1

                        Hard agree. I’d say there are two issues:

                        1. Most OSS projects do not make it easy or obvious how to support them financially.
                        2. Most OSS projects do not require financial support in their license.

                        2 kinda solves 1. Put, in plain English, how and when you expect the company to pay.

                        Using the MIT or BSD license while also asking businesses to pay is a recipe for disappointment.

                      2. 6

                        While the article is extremely insightful, he doesn’t really go into one important point. If he weren’t (semi-indirectly) compensated for working on Rails, it is very likely he would have stopped working on it, either when running into one of these crises of meaningfulness, or when the demands would be too big to keep doing it in his spare time.

                        If Rails had become as popular as it was, and he hadn’t had the opportunity to work on it during his day job, I’m sure the demands of reviewing merge requests, making releases and responding to bug reports and on the mailing list would have either driven him to burnout or caused him to hand over the reins to someone who could sustain this effort.

                        On the other hand, in such a scenario where Rails really was that popular, it’d be likely someone would’ve offered to pay him for it if he spoke up about not being able to maintain it.

                        But it’s more likely it would have died a quiet death, as it wouldn’t have been as polished as it was now to cause such a massive uptake. And perhaps that’s alright - not all software needs to become hyper popular. But I guess that’s not how many people see it. We still live in a society where there’s this rat race towards fame and money and we’re conditioned to confuse that with meaning and purpose.

                        While he does go into being in this privileged situation and acknowledging that not everyone is at the same level of self-actualization that they are able to work on free software as an act of love, he doesn’t really offer good advice on how to get there. The closest he gets is simply saying something along the lines of “if you no longer take joy from working on free software, don’t do it”. Perhaps that’s the best advice, even if people don’t want to hear it - go out into the world, take on other hobbies and form relationships. Then, when you are whole again, perhaps come back to it and see if that desire to create software is still burning inside you.

                        1. 3

                          Yeah, I think the biggest problem with this article is that he’s generalizing from his own experience.

                          Very Works on My Machine.

                        2. 5

                          While I agree wholeheartedly with the article and almost everything it says, I think there is an aspect of this that is not addressed here. This is partly manifested in the debate in the other comments and in the debate at large, and hinted at but not explicitly mentioned in the article. It is not really about money, it is about self actualisation and freedom. Just as some google developers were upset to find that google accepted contracts from the US military’s drone program, and some other company (I forget who) was upset to find out that ICE was using their software to imprison and separate migrant families on the US Mexico border, I think a lot of the people who are upset at the current state of affairs are railing against the fact that their software is being used to exploit people financially. I think this is the core of the debate and and should be what we focus on. I am happy to share my work with the world, in fact I would feel like my work were diminished if I did not. But I do not want facebook, google, banks, credit card companies, private prison corporations, the military, ICE etc. to use it. The MIT license does not allow me to stop them. The GPL kind of does. My biggest takeaway from the article was that what I actually want is a version of the MIT license with moral and ideological clauses. Does such a thing already exist?

                          1. 2

                            You might do some searching around “ethical software”. This was one thing I found:

                            https://ethicalsource.dev/principles/

                            1. 1

                              Made me think of JSLint:

                              Before that, the JSLint license[3] was a derivative of the MIT License.[4] The sole modification was the addition of the line “The Software shall be used for Good, not Evil.”

                              According to the Free Software Foundation, this previous clause made the original license non-free.[5] It had also prevented JSLint-related software from being hosted on Google Code[4] and from being included in the Debian free software package repositories.[6] Because of this restriction, according to Crockford, IBM asked Crockford in 2011 for a license to do evil, such that their customers could use it.

                              Douglas says:

                              Of course. So I wrote back – this happened literally two weeks ago – “I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.”

                              https://web.archive.org/web/20130203112329/http://dev.hasenj.org/post/3272592502 (thanks wp)

                              1. 2

                                Yes, such a license would be non-free. I was not thinking of anything as hand-wavy as that though. Some clearly defined behaviours like “License does not apply and may not be used by any entity or person for the purposes or law enforcement, military activity, any activity that involves actively killing human beings, or any activity which directly supports these activities. License does not apply and may not be used by any non-human entity (company, corporation) that is in the top 40% of largest entities of this type according to <some trusted system for ranking company size>”. I am not a lawyer and it is likely writing something like this that would stand up in court would be a lot more wordy.

                                1. 1

                                  At that point, honestly you should probably just make it CC-NC. I can’t imagine any company using a license with that extent of restrictions. “Supports an activity that involves actively killing people” for instance excludes almost every part of the economy, since none of them will exclude the military as a customer.