On Software

Contents

This piece contains a collection of my thoughts as spurred to the forefront of my mind by some recent events. I will not pretend that it is any kind of rigorous material beyond merely serving to allow my emotions to hit the page, and the contents include:

Content Disclosure
  • My thoughts on the usage of David Heinemeier Hansson’s quote in the NeoVim project’s repository
  • My thoughts on artificial intelligence
  • My thoughts on the discourse that surrounds those technologies
  • My thoughts on the presence of bigotry and intolerance in software communities
  • Various references to modern day, real-life material issues that people from the walks of life our culture considers non-default express concern with

If any of these are not for you, that is okay. Abstention from the constant stream of our modern world is your right and you should protect your peace. There is not any call to anything within beyond stating what I hope you will consider and come to a conclusion on of your own volition.

If you are looking specifically for the juncture where the enumeration of negative things and my thoughts on them is tied together and I begin trying to form an optimistic, constructive point, skip to "Looking Up".

If you’d really like to read the thing that matters most to me and no more, jump to "Wrapping Up". If you read nothing else, those last two segments are ultimately what I want to say to you, the person gracious enough to lend me your time and attention, and who I appreciate greatly.

If you don’t even wish to read that much, just know that I hope you are doing well. I know I’m tired, and if you are too, I understand.

Sections
Preceding Context

I will apologize up front for centering discourse and negative elements of the goings on in the software world as the entry point to what I wish to say, but I promise the end result will be more than merely being negative about the state of things in the software world.

Lately I have been thinking a lot on the nature of what software is and why I love it, and also how people in software spaces that purport to be for people have become increasingly intolerant and vocal about it. For the context of the event chain that led to this thinking, the following events occurred that spurred my brain’s activity:

  • The creator of Ruby on Rails, David Heinemeier Hansson (who you will frequently see referred to by initials, i.e. DHH) has made no secret of his belief that a certain type of person (heavily implied based on the sources he cites as specifically being white) are the only true British people, and who regularly aligns with people who believe that certain type of person should be prioritize explicitly to the detriment of those who are not in that category
  • A popular open source project built on the foundation of one of the most beloved and well-known console code editors, NeoVim, became extremely popular over the last many years, and recently added a Hansson quote to their codebase’s “why you should use NeoVim” documentation
  • The users of and contributors to NeoVim opened an issue to request removal of the quote with solid evidence-based proof that Hansson’s endorsement is a net negative for the community from many well-reasoned angles, even beyond just the humanitarian argument
  • One of the main maintainers of NeoVim went into an immediately defensive position over this issue being opened on the repository, turning what started as a well-intentioned “perhaps you did not know this person believes these exclusionary things, but this will cause the project substantial reputational harm for little gain” into painting everyone as a crowd of vultures seeking to cancel him, actively insulting anyone who even politely asked for his reasoning rather than clarifying anything, revealing he has a willingness to fight for the inclusion of a single sentence promoting the editor that disrupts the community and users of the software, banning anyone who does the work to submit a pull request that removes it
  • What could have been a non-issue and simple correction that was effectively free for resolving the potential reputational harm evolves into a full-on widely reported on event in the open source sphere that massively damages the reputation of NeoVim and causes numerous users of it to drop the app
  • People return to the base Vim editor while the community figures out an alternative fork or similar to create a new project without this association

Separately, in the base Vim world, these events occur:

  • People dislike that base Vim v9 introduced artificial intelligence into the codebase and the codebase’s examples files for various reasons, and that results in the forking of the v8 version of the project that was made prior to the introduction of these elements
  • The Vim classic project is made with an ethos that the editor is for people and not machines, and this provides a space for those who wish to find an AI-free option (with a clear signaling that they also seem unlikely to tolerate exclusionary mindsets)
Exclusion

The first chain of events other, similar, ones have exhausted me to the point that my first questions about any new software project is not “does this solve a problem I have?” but “is this maintained by people who have a vested interest in constraining the definition of who the intended users or contributors are based on their immutable characteristics?”.

I am left viewing communities that were once assumed to be of the ethos that software is for people that have revealed they do not stand for those principles. When these people say that they make software for people, they tacitly have preceding adjectives that would clarify who they consider the group of “people” to actually include, often specifically meaning “people (who happen to be cisgender, heterosexual, white men)”.

Artificial Intelligence and Our Humanity

With the second chain of events, artificial intelligence’s usage is understandably contentious in my mind, but not for the reasons people frequently cite. Why these reasons are relevant will become clear as we proceed. I have strong apprehensions about these technologies (in particular, forms of generative models for media creation and large language models), and I feel genuinely that these pieces of technology have a non-zero number of use cases that their users are not inherently in the moral wrong for reaching for.

I feel that a good number of users of these tools are much more on the exploited end of the gradient based on the ways these technologies seem to override our cognition and emotional processing even when we have full knowledge of the risks associated with their usage. Their users are also very human just like the rest of us, which is the most important thing to me - to lack knowledge and seek it, to be frustrated at the lack of a tool for your use case existing, or not knowing how to find these pieces of information makes these technologies understandably appealing in my mind even though I am in strong disagreement that they should be used.

A good amount of the reason why I hold the beliefs I do about why these pieces of tech are used to negative effect by those promoting them is that I feel they harm our ability to consistently create human connections and understand the social relationships we have with one another. In using them, people frequently experience detrimental effects in terms of our their own mental health and lose connection to the work they, themselves, created.

I do not want anyone to be convinced that productivity and efficiency are the end-all, be-all, de facto goals of why we create. I want people to make things they can be proud of and love and that empowers them to learn and grow, and these technologies obfuscate the path to that very human experience in favor of faster results that often create long-term stress due to the removal of the context needed to fully process our own creations meaningfully.

Given we are constantly rewarded when we optimize for productive output, whether it be at our jobs or through social media, we are also necessarily provided things that short-circuit our pattern matching to ensure we do not disengage. This limits our interactions to limited depth and tells us that the number next to a heart icon can replace real connection, which isn’t a judgment on people who use these services, either.

I know for a fact I have many times been pulled into incorrect ideas and actions driven by the negative emotions these platforms incite in us. My reason for strong words on these technologies is that they are very likely harming you, the person using it, and I don’t wish that upon anyone.

Why It Matters

These chains of events and those like it have laid bare to me that these people do not genuinely care about the craft of creating software in the same way I think of it as being a craft. This is less a “no true Scotsman” situation and more that we disagree fundamentally on what software should be created for. Whether it be through large language model usage to take unnecessary shortcuts that prevent you from being able to self-educate through the process of struggling and seeking the help of those gracious enough to share their expertise or the bleeding of hatred into the community surrounding a project, it is clear that these people do not consider software a human problem, but a problem for them, people similar to them, and very few other people, if any.

They fail to correctly identify that software is inherently a political fixture when they say they aim to keep politics out of their code, as it cannot be disentangled from the fact that real human beings use software for real human problems, and as such it is impossible to merely focus on algorithms, how you organize your code, what types of programming languages you choose, or any other slice of what goes into a piece of software getting made. The end result is generally a minimum of the sum of its parts, and whether it elevates beyond that sum is determined by that human-first line of thinking being present or not.

This exhaustion is extremely frustrating as someone who cares deeply about the craft of making software and ensuring it remains accessible to anyone who wishes to opt-in to contributing to or using it. However, I also want these toxic elements and the community discussion surrounding them to lead to something more than simply being disappointed yet again. I do not want to be a person who points these issues out with no constructive or actionable plan for remediation.

In my heart of hearts, I genuinely feel software should both be a public domain utility designed for the betterment of how we all interact with computers and the people who use them as well as making it clear that these principles are not merely important but structurally foundational to what the intention of software is when not controlled for the purposes of profit. I make software because I love this craft and the problem spaces within it, and I desire to ensure my end users are the group of “anyone who wants to enjoy interacting with technology or who has a need that is not yet being met which is possible to solve with code”. Software undeniably exists to improve lives, the equation has merely been held hostage by those with interests other than the good of humans who have human problems and with a great interest in their personal benefit.

Looking Up

Perhaps it is naive of me, but I envision a world where these utilities for the public good are inverted from where they are now. That which has been made to alienate, upset, and exhaust us today may be a tool, and it is said that you cannot dismantle that which is built with the tools of the people who seek to oppress, control, or otherwise exploit us with those tools themselves; but software is not owned by those entities as much as they create the illusion it is, and the tools they use are layers atop software itself. Software is idea made tangible - you can delete code left and right but you can’t simply stop ideas without a concerted effort to convince those who have them to change or to quash them as these systems so often choose to do instead.

Given this is the case, software is the tool of tool-making for the technology space and I cannot imagine something more human and worth basing connection on than a desire to see one another thrive instead of get torn down and to enable us to be more expressive and open all while attracting others who wish to also perpetuate that mindset.

This touches many areas of life in the modern day, and there are so many places we can improve upon what exists today if we are empowered to wrest control of this software from companies, bigots, and those who seek to participate in programming for reasons other than the craft and how it facilitates solving for human needs. I envision a possible world where:

  • The tools for interacting with medical systems are cheaper or free to access
  • Digital artists are not only not extorted during their creation process, but can ask for better instruments for their craft and more of them
  • Accessibility aids are themselves made more accessible to encourage all people to default to the consideration of others no matter how different we are
  • Educational systems are not only bolstered by projects in the public domain, but also can be revised and improved for those in the margins of how their processing works so that waiting and relying on systems that don’t seem to care about them has an actionable pathway to introducing the tools necessary to help others with the same issues
  • The tools of scientific research and the synthesis of understanding are accessible to people so that we are all working towards constructing resilient epistemological systems that resist the influence of those who have letters next to their net worth numbers, while also providing an on-ramp to self-education and a higher baseline of collective understanding
  • Anything and anything I have not listed in this non-exhaustive list that you can imagine might benefit a real person.
Connection

We are all inundated by a world that shovels software designed against human connection and our best interests, but it doesn’t need to remain this way. Software can and should be about the erosion and dismantling of the barriers between us and the empowerment of all, from the average person to the person in the most niche of niches. We do not have to collectively take for granted that software is controlled by people with power, who nearly never have our best interests at heart. This is not an unchanging reality, and we can make software for you and I.

Give me software made by humans for humans, not out of moral necessity but because I love software, and I love humanity. I do not want elements that remove the humanity from software, I want elements that facilitate making humanity as core to the end result as the algorithms that drive the underlying processes and maintainability of software systems.

It upsets me deeply that not everyone can agree on this with me - I cannot understand solving for the needs of those who use the tools or appreciate the art we create not being the primary motivator behind why we put things out into the world. It upsets me deeply that software has evolved into something people justifiably have come to associate with strife between us, psychological harms, and endless dark patterns. It upsets me that the people who think the way I do are so often unheard in the grand scheme of things despite knowing based on our shared, felt human connection that they love the craft and can show me they have honed expertise wielded by the hands of a person who cares.

Wrapping Up

All of this leads me to a conclusion that I feel is crucial if you wish to understand me and people like me - software being for tool-making in tandem with motivated people acting out of love for humanity and their craft will always trump any discourse or exclusionary individuals in our spaces.

I love software, I love people, and I’d love to do the work to bridge the gap so that those things can come together to make a world where we constantly challenge one another to improve and to iteratively and repeatedly ask ourselves at every juncture not what feels the most looming in the world, but what feels the most actionable. No matter how great we become collectively, nor how high our quality of life is, we should always strive to ask the core question of "how can we care for one another more?".

So I leave with you these thoughts which are not a call to action per se, nor do I feel you are in the wrong if you are too tired and/or beaten down to realistically do these things, but that I am going to strive to change my own habits to reflect:

  • In a world that constantly tells us this is simply the way things are, consider rejecting the premise that you, the people you care about, and the people who you will come to one day care about are not important enough to be considered
  • In a world that tells us that software must be for profit, consider the joy and love that we can share for one another and the things we create so that we can supplement (and hopefully one day replace) the things we do to survive with them.
  • In a world that tells us to stratify ourselves and constantly contrast between ourselves, consider looking for the people who seek to connect, learn, and understand each other and prioritize those who create and build over those who merely enumerate issues with no actionable steps that weigh on the mind or that actively seek to stop you from safely experiencing life to the fullest
  • Remember that you matter, the people you care about matter, and the people you don’t know yet matter. In the face of a world that attempts to constrain software to existing for dollar amounts on spreadsheets, consider choosing human beings instead when given the opportunity.
Most Importantly, You

Perhaps we may be far from the ideal world I have in my mind, but I refuse to accept it is impossible, and I simply reject that we cannot be better wholesale. Too much time has been wasted on the things that weigh us down.

I look forward to the joy of seeing what you create no matter how small, learning why you care so much about it, and the type of people that energy attracts regardless of whether it is a widely regarded piece of software, a step in your learning and self-improvement process, or something else I didn’t anticipate entirely.

I’d love if we could see one another authentically in that manner. I’d love to leave the world a better place than when I entered it if I can, and if you share that desire I especially wish to see what you will do.

I’ll do my best to be here if you choose to join in.

Sincerely, and with all the love my heart can muster,

Elianora Rose