Back Original

An Open Letter to Everyone I've Butted Heads With

Note: This blog post is not a reaction to recent events or some kind of apology. Nothing happened; this is just me doing self-reflection.

Zig turned 10 years old, and I've been thinking a lot about the project overall, and what another ten years of my life might look like.

More specifically, I've been thinking about my interactions with people over the years, both positive and negative.

Since Zig's inception, I never stepped down from the "creator" role. Although the core team has grown to about five active people, I never stopped triaging. I never stopped thinking critically about the language. I never stopped helping newbies get their bearings. I never stopped welcoming contributors to join the project. I never stopped reviewing code. I never stopped working on major features.

While I'm not willing to put up with advertisements, I am perfectly willing to help beginners and advanced users alike in a traditional forum setting, where relationships can be forged.

Over the last decade, I've had a fair share of negative interactions with various individuals. This actually really bothers me, because I love people. Naturally, I love my friends and family, but I also love my neighbors, and random people walking down the street. I love chit-chatting with people I haven't met before. When I was a teenager I used to make fun of the idea of "small talk", but now I proudly have mastered the art in order to spark conversations with strangers. I love people in other countries. I love people who are different than me. I love people who make fun of me. I love people with different political opinions than me. I love the person who cuts me off in traffic and flips me off. They're just having a bad day, you know?

So I've been trying to figure out: why do these negative interactions happen?

The reasons behind this can be complex, but I think in relation to Zig, there is one pattern in particular that has strong explanatory power.

Programming language and toolchain technology can have a huge impact. Specifically, even minor differences can affect the day-to-day lives of a large number of hours for a large number of people. For example, time spent waiting to compile is multiplied by a person's time spent in a workday, multiplied by how long they are employed to use that technology, multiplied by how much that technology is used in the industry.

Meanwhile, workers do not have the choice of which technology to use. They are generally stuck using what their company tells them to. Of course, one can use tricks like "it's easier to ask forgiveness than it is to get permission", but people who are bold enough to employ such tricks are typically the same people who are capable of being entrepreneurs themselves.

Anyway, my point is that most people on our beautiful, precious planet will not have the opportunity to create a programming language project that reaches a level of maturity such that it can be part of their careers, or even a realistic choice for their hobby projects.

And that's incredibly frustrating.

Just because you don't have the madness required to dedicate 10+ years of your life working on an unproven technology, doesn't mean you don't have a valid opinion about tabs vs spaces.

You, along with 99.999% of programmers, are faced with the reality of picking your favorite set of practical programming language technologies for tackling whatever problems you encounter. This presents two nasty problems:

There is a huge range of decision-making in which the effects weigh heavily on any particular individual, and yet forking is not a realistic option.

In these moments, it's only natural to be angry. I really, truly get it. I do! Because I'm a hypocrite. I do the exact same thing. There are plenty of projects that I depend on and use daily, but I know that, sadly, I'll never have time to compete with them or even meaningfully contribute to them. For example, as much as I'd love to create a mainstream operating system, I simply have too many other competing interests lined up first. And I catch myself, repeatedly, complaining about operating systems and saying harsh things about those who develop and maintain them.

In other words: it comes down to lack of agency. When we care about something, but we perceive futility in our efforts to change it, our only resort is to lash out.

Directly addressing those whom I've had unpleasant Zig-related exchanges with:

First of all, I've had plenty of bad days. I've done issue triaging while grumpy. For that, I'm sorry. I hope in the future, I can have a more consistent pattern of expressing the warmth I feel inside my heart for my fellow humans through my everyday interactions on the Zig issue tracker.

Even if I disagree with you, even if I blocked your GitHub account, even if I locked an issue after you made a comment, even if I ignored your pull requests for a long time and then closed them without even a word, I still think that you are not only justified in wanting what you want, you are also justified in feeling angry about not getting it.

My friend - it's not personal. I care about you. I actually do value your opinion. I'm interested in your thoughts and feelings. I want to make you happy. I'm sad that I can't serve you better with my open source project. I want to. I wish I could.

I'm hustling. I'm playing the game. I'm doing what it takes to make this thing mainstream and a viable, practical choice for individuals and companies. If you talk shit about Zig in public, I'm going to fight back. But I respect you. I see you. I understand you. I don't hate you. I would literally buy you a drink.

With the dawn of another decade, I hope to maintain this perspective in my day-to-day interactions. I think I can level up - cranking up the empathy dial with my interactions - even the contentious ones - while still cultivating this budding technology; protecting it from those who would destroy or corrupt it; growing it into a flourishing global community that brings digital prosperity to all who congregate under its inclusive, welcoming tent.

Thanks for reading my blog post.