Quitting open source

From JookWiki

Introduction

After a decade of frustration with open source, I've decided to quit contributing to open source projects. The short explanation why is that I've found myself having extreme anger responses to open source developers: I feel my heart race, I feel my chest tighten, and overall I feel violated and powerless. This is not a good response to voluntary actions with people on the Internet, especially people I want to work with to solve problems. It's not good for me, and it's not good for them.

I've tried to leave it at that and move on with my life, but I often find myself wondering why I've failed to handle interactions that many other developers experience and enjoy. So I've decided to write a fictional account of my experiences between 2014 and 2024. Maybe I can learn something, or at least get some closure.

I've chosen to fictionalize it for a few reasons. The first is that this isn't about reality, it's about a subjective experience. Getting bogged down in details misses the point. The second is that I don't want to call people out, burn bridges or create more pain in the world. I'm already upset about this, you don't need to be upset too.

Security years

During the early 2010s the public learned theirs governments were tracking what they do online. Databases were built from every piece of data that ran through public and private services. The lack of informed consent and invasion of privacy led the predominantly white middle class of American tech people to feel a government-funded invasion of privacy previously reserved only for people of color.

If you can't trust the government to protect you, then who can you trust? Most people would answer 'neighbours, friends and family', but people who spend the majority of their time online suddenly found themselves without an answer. Every conversation and interaction they've had was visible to a system they no longer trusted.

The answer that the open source community settled on was to trust no-one. Trust code instead. As long as the code was publicly reviewable and modifiable any security hazards could be found. More importantly, governments couldn't insert hazards without the public becoming aware of them.

A decades-old organization had already been championing this type of practice. Not just that, it had almost predicted this draconian situation: A world without software you could review, modify or share was a world we didn't have a say over. They advocated that all software be open source.

The organization had well-written documents on this philosophy, charismatic leaders and an unspoken promise: If you stick with us and only use open source software, you will be safe. I was sold.

Freedom years

As a software developer I benefited heavily from having access to source code. I could feel safe again using my computers and electronics. I also felt a sense of community and understanding. I met many great people, some I still know today.

I became very interested in the hardware side of open source. Many pieces of hardware such as laptops and computers shipped with closed code that could not be controlled by the person using the device. In some cases you could replace this software with open community built source software and feel safe again.

I spent time tinkering with devices running open source software and improving their usability. I had a phone that ran an open source operating system. One day I found it would crash in some applications unless you used closed code. By editing the code I managed to add support for enabling closed code depending on the application. This way applications would at least work.

I decided to contribute to this my changes to the open source operating system. Immediately this was rejected by its community: I had made a design decision that could be a security hazard in some hypothetical situation. My change was blocked over this hypothetical debate. It was more important to have a perfect solution than a useful solution.

A little while later a new piece of hardware came out. It was a type of laptop that required no closed code to run. It had an open design showing all the components and logic behind it. This was a big deal to me: While existing hardware all had to be made to work with open source, this hardware was open from the start.

The open source organization had a list of projects that could run with only open source software, so the creators of this hardware spent a year talking with the organization to add it to that list. Eventually they gave up, for a confusing reason.

The organization found it acceptable to have closed code in existing devices you couldn't replace, but found it unacceptable that new hardware could load closed code at all. In fact, the organization seemed to find the idea of being able to use closed code at all a problem. They excluded projects from the list for even giving people the option to make that compromise.

Asking around for clarification on this, I had many different answers. But under those answers was an unspoken belief shared by others in the organization's reach: It was immoral to used closed code. It was never necessary, it was always a choice to use it. It wasn't just a consequence of the people who made closed code, it was a moral failing of the user to use it: It would be better to switch careers than use it.

Around the same time I found myself interested in open culture: Things like writings, art and songs that you could freely share and modify. The organization took the stance that this wasn't important. They refused to allow sharing and modification of their writings.

Reading more of the philosophy of the organization, I found the ideology more conflicting than I had initially realized. While it believed in open source for computers, it was okay with closed code that users didn't interact with, or closed code that drove appliances like microwaves.

I was not the first to notice these conflicts: A large portion of followers of the organization did too. Much talking was done on how to move forward and embrace these ideas, but the organization denied change and shut them down.

It turned out the organization's sole leader decided its ideology and directions of its projects. Contributing to the organization's projects required strict adherence to its goals and the leader could and would veto anything they didn't like. This organization about open source was not about an open society.

Amidst all this, one of the organization's most charismatic speakers was outed as a sexual and physical abuser. As soon as he was put under pressure he decided the very governments we couldn't trust should be the governments to decide through legal means if he was guilty. He went in to hiding and hasn't been seen since.

The organization's sole leader eventually stepped down after facing sexual harassment allegations, but surprised everyone by coming back at a conference without telling any volunteers running it. It sparked outrage but nothing ended up happening.

I found myself disillusioned with the organization and its selective, inconsistent philosophy. The more I look at it now the more I wonder who this organization is for. People who only care about one type of oppression in the world? I genuinely don't know.

Accessibility years

Sometime in 2018 I met one of my now closest friends who shared much of my interest in electronics and introduced me to running an open source operating system on tiny devices. I fell in love with it instantly.

There was just one small problem: They were completely blind. At least, this was a problem for open source developers. Almost all open source developers only work on things they're interested in working on. The logic is that someone else will do the uninteresting work if it matters. If you wanted a feature implemented you would have to do it.

This ideology creates a massive barrier to entry for open source. If a blind person can't use your software or development tools, how can they even make it usable for themselves in the first place?

In the case of the open source operating system, nobody was doing the work to make it useful for people who couldn't see. The existing support had been added by a company in the early 2000s but had slowly been rotting away and removed as developers redesigned parts of the operating system. They ensured the functionality was unchanged for able bodied people, but didn't bother supporting disabled people. A bit like a ship of Thesus that leaves with ramps and arrives with stairs.

As a developer I decided to do my part: I found a very popular project to contribute to and improve support for blind users. I sent the code off and after a lot of talking it was merged. But over time the same thing happened: Developers would add new code and break the very support for blind use I added. The developers were convinced of the importance of supporting blind users, but disagreed on who should do it or how to do it. They wanted a perfect solution instead of usable one.

I had found another project that needed fixes. The developer explained they were going to fix the issues eventually, so I forked it and shared my changes to make things work in the mean time. The developer was angry and upset at this, as if I had bypassed their decision making. I had unintentionally violated a taboo. I deleted my fork and gave up.

After a few years I had to assist my friend with replacing the open source operating system on their computer with a closed code system. They could no longer use the open source system as it would crash when performing a task only really done by blind people. A fix was available for this for this bug but wasn't accepted by the project's developers. The developers had moved on to other projects working to replace this one, but that new project itself was even worse for blind users. I did try to help my friend modify the software for their computer, but it was too much work for a system falling apart.

I wonder if the open source organization would argue my friend doesn't need to use closed code. Probably. I use to believe compatibility with closed code was the core blocker of this operating system going mainstream, but I'm not so sure now. I don't know if the developers will ever accommodate people that can't pull themselves up by their own bootstraps.

I was fairly angry with the community at this point, but I still found a lot of joy in working on projects with my friend. We had a dream of creating a portable music player for blind users. It wouldn't be too big of a project: There are plenty of designs for devices out there that we could reference, ours would have just included a speaker and fancy software. With the help of a 3D printer we could actually make a few dozen of these devices.

The dream killer for this project was been that completed products being sold require certification to ensure they don't produce electromagnetic interference. This costs tens of thousands of dollars. Not very practical for hobbyists like us, even if we had the required knowledge on how to pass the tests.

This doesn't stop most hobbyist projects as there are exemptions for projects sold as parts for other projects. This is why you see a ton of hobbyist electronics boards around that require programming to work, but nothing that can be used out of the box. This excludes use by people with impairments have trouble assembling or using these parts: It's incredibly difficult to solder pin headers on to a board when you can't see either.

Talking to other electronics hobbyists has shown a complete lack of interest in making things more inclusive, or even taking this issue seriously.

At this point I just gave up on open source and electronics being a useful tool to empower blind users. Closed code was almost always the solution to the problem of accommodation for blind users. The barriers here aren't physical or psychological but societal.

Operating system years

I was paid to write a lot of operating system code for a device. It was an exciting challenge and learning process. I had benefited heavily from the open source operating system so I decided to share my code so others could use it. To do this I submitted my code to the operating system for inclusion.

This was not an enjoyable process. I had to use my legal name to contribute, which excludes a wide variety of people such as transgender people or abuse victims. I had to learn how to send my changes using an antiquated system that doesn't have an undo feature, this shot my stress up fairly high. I even made a mistake due to unclear instructions and got yelled at by a developer for it.

Eventually though I managed to get my changes sent off and... There was no real response or feedback. In fact none of my changes got a response or feedback. I asked for help and I was told to re-send my changes in case the developers missed my changes. I did so, and eventually I managed to get one set of changes in.

But the rest just had no feedback. So what was I suppose to do? Nobody really had an answer: The developers were busy doing other things and couldn't review my changes, or they have had thoughts about it but haven't sent a reply yet. Having my contributions ignored had become a regular theme in open source development for me.

Of course there is no promise my changes would even be looked at, but it felt insulting to spent a huge amount of time preparing them for submission only to hear nothing back, not even a thanks or apology for being busy. Once again I was in a position where I was trying to push for changes the developers had no interest in.

I decided to create a fork with my changes so others can use them. This immediately received pushback from the developers. They explained my fork would become old and I wouldn't be able to keep up with their changes. They explained the best thing to do is to work with them on getting my changes in to their project, and the sooner I did that the easier we could find design issues earlier.

This framing of it being my choice to contribute really upset me. I had already tried very hard to contribute but gotten complete silence. There was nothing more I could do yet I was still being painted as the problem. At no point did the developers even consider the work I had put in trying to contribute, or considered their failure to communicate.

This was the point I realized open source just doesn't care about the things I care about. I don't know what it does care about, but in every place I've tried to contribute it's been made clear to me that my contributions aren't wanted. So I quit.

Conclusion

I feel better after writing this and sharing a small slice of my experiences. In reality most of the bad experiences I've had with developers happened with multiple projects over multiple years. I'm a hopeful person, but I don't have any reason to believe things will be different for the hundredth time.

I still believe in open source. I make sure all the code I write is open source and publish it online for others to use. I also understand that I benefit heavily from other people's work: I couldn't complete my projects without using their code and contributions.

Open source development however seems to be a vehicle purely for developer interests. Any interaction with users is met with scorn and annoyance.