Devs Use Closed Software
writing.kemitchell.com
writing.kemitchell.com
People think that accruing more tools will make them happier. Every other hobby has a name for this: "gear acquisition syndrome", or the perpetual state of thinking that the next investment will make you happy, or turn you into the 10x engineer you thought you were destined to be. This is a lie, and it's something that companies spend every last cent getting you to believe. The reason why some developers make $10,000 landing pages? They know they'll make back the cash if you're convinced their product will make you any happier.
The real world, ground-truth is that devs use whatever they want.
It takes weeks of setting it up with nice plugins but once it's done, things are smooth :)
https://www.reciperadar.com/ was built entirely using open source software and tools (with the arguable exception of GitHub, Google and a brief foray into Figma, all used internally but without involvement in the software service (and all potential dependencies that are identified for replacement with GitLab, self-hosted mail and Penpot, respectively)). It's not great software, but it's a demonstration that it's possible.
tl;dr: I think Mr. Mitchell has good points, but I also feel like he did not address the parts of my post that actually discouraged me.
I didn't expect to have anyone respond with a blog post like this. That said, Mr. Mitchell has some good points.
First, he is right that my original article is too absolutist. I will own that mistake. Please remember, however, that the post was written in the middle of a depressive episode, when I was feeling more discouraged than I had been in a long time. I wasn't thinking completely straight.
Second, he makes a good point about trying hard to serve people, but what he missed is that I had done that. In the types of software I want to write, I could see very well that closed source was not going to fly with my intended audience. On lobste.rs, @alexandria said [1]:
> People will only pay for closed source software if they can’t already acquire a ‘good enough’ alternative for free.
As far as build systems and version control systems go (the top two projects I am working on), there are plenty of 'good enough' alternatives that are Open Source, so developers only want Open Source, for the most part. Of course, there are companies that will use closed source, if it is better, but individual developers, by and large, don't, especially because they often don't need the features that make the closed source ones better.
The reason I am targeting individual developers is because they are the most likely to be "early adopters" of new technology. I was hoping that, after getting enough of them as users, they would convince their employers to start using my software.
Third, and this follows from the previous point, Mr. Mitchell has himself said that, over time, software moves from closed source to Open Source, then to public domain [2]. I had read that post of his before posting mine, and I understood what he was saying. I guess what I did not say well is that, for the software I was planning to write, the transition from closed source to Open Source has already happened, which means that going closed source would not work.
Fourth, I don't feel like Mr. Mitchell addressed the points from my original post that actually made me discouraged: the appropriation of Open Source by companies who fail to give back or outright steal (by violating FOSS licenses). Those things are the reason I was discouraged because, even if I do get individual programmers to use my software, then they get their employers to use it, what will prevent their employers from just ripping me off and violating the license I put on my code?
The fact that developers will use closed source in some cases, as Mr. Mitchell says, does nothing to address these problems.
With that said, I don't regret putting that post out and submitting it here and to lobste.rs, and that's because my "call to action" at the bottom, asking people to contact me if they knew things that could encourage me, worked. A lot of people emailed me with encouragement, and that eventually brought me out of my funk.
One person in particular, who I won't name in case he does not want to be named, wrote to me about an article he wrote a long time ago about how it's possible to make a living selling closed source software that is only closed source temporarily before being open sourced after a certain amount of time. He helped me see why that works, and he also helped me figure out a method for not violating my ethics in doing so.
(My ethics include always providing source code to my users [3], like an architect should provide blueprints to the owner of the building they designed. What this person helped me realize is that even if it's closed source, I can provide source code to my customers with a license that prevents them from redistributing it. Yes, this is an argument for copyright still applying to software.)
That, along with Mr. Mitchell's assertion that all software eventually moves toward the public domain, helped me form a plan.
First, I'm going to get the software ready, of course. But when it's ready, I'm going to release it under the terms of the two most radioactive licenses possible: the SSPL and the AGPL, and users will have to comply with the terms of both. This shouldn't matter for individual developers.
However, it will matter to companies, so next, I will do my best to make sure my users know that they can ask me to relicense more permissively once they are asking their employers to use my software. When they ask, I will.
I will also develop closed source add-ons that companies can use, and these add-ons will be open sourced after a certain period.
In essence, my software will follow the transition from closed source to copyleft to permissive licensing that Mr. Mitchell described; it's just that instead of more permissively-licensed competitors rising up and out-competing me, I'll relicense my stuff to prevent the need for competitors to do so.
That does beg the question of why I wouldn't start permissively licensed in the first place, and the answer is to make my software radioactive enough that at least some companies won't touch it at the beginning. It's a game of numbers because I don't have to prevent all companies from ripping me off, just enough of them. And after my software grows more important (if that ever happens), then I suspect that companies would be less likely to rip me off, even if the software is permissively licensed.
It's funny, but Mr. Mitchell did help me, in a way, with his post about the lifecycle of software licenses.
[1]: https://lobste.rs/s/xa1yn4/devs_use_closed_software#c_gxxkbm
[2]: https://writing.kemitchell.com/2020/03/07/No-Posse.html
[3]: https://gavinhoward.com/2020/08/the-software-industry-is-bro...