One facet of Rust’s claim to fame
is we shun any zero-sum game
where it’s one vs. other
we’ll seek yet another
outcome of much higher acclaim.
One thing I learned from Aaron Turon is to search for positive-sum games. First what does that even mean? In most arguments you may run into, it will be easy to find a zero-sum game: Your win is my loss and vice versa. However, in many situations, it is actually possible to go above those petty games and find a variant that allows us both to win.
This often means sidestepping the original argument or turning it on its head to find an unexplored outcome that will often be better than the zero-sum win originally in sight. Finding it requires overcoming loss aversion and trusting the other person(s) to honestly join the search, because often the initial step on that search is a step backwards.
For example in the early days of Rust, there was a heated discussion about the removal of green threads from the language. It was rightly felt that green threads did not fit in a systems language, because they necessitated a runtime, something that would have hindered Rust from running on tiny, very constrained systems in the embedded space. On the other hand this left Rust with plain OS threads.
Fast forward a few years: Rust had lost the ability to do m:n threading, which meant a performance loss for heavily multithreaded applications (such as web). Early attempts to bring Rust to the web space showed subpar performance compared with entrenched frameworks. But we were in for the long haul. It took various folks a good deal of time, research and head-scratching, but now we’re talking about futures, pinning and async-await, which are the building blocks Rust gives us to do performant concurrent task-based programming while allowing us to fine-tune the runtime better than would have been possible with green threads.
Only by taking a step back and accepting the short term loss, the Rust community was able to tease out an outcome far better than we could initially have imagined.
Sometimes the outcome is even the loss condition of one of the participants turned into an unexpected win by something they overlooked. A famous example of this is the Sony Betamax case where the movie studios sued Sony to kill off video recorders before they gained a foothold on the market. Sony prevailed, VCRs became commonplace and raked in millions and millions to the studios in both video sales and rentals until the arrival of the DVD. The studios won because of the market that the court didn’t allow them to stop.
Another requirement for positive sum games is, perhaps unsurprisingly, diversity. Bringing together diverse experiences helps overcoming biases that come with traditional methods of training the established players in the field. This may be hard to accept for some, but we all have our personal biases, and we need each others’ help to overcome them, lest we become blinded by them and overlook positive outcomes, as the studio execs did when faced with the arrival of a new technology poised to disrupt their markets.
This warrants a disclaimer to be careful not to get distracted by misleading terms like “diversity of belief”, which is codeword for accepting racism and/or sexism. Reaching diversity is hard work (of which the Rust community still has a lot to do), and maintaining it requires intolerance against intolerance and bigotry.
Apart from trusting other participants, it is also vital not to misuse their trust. Labeling them or related ideas is an easy way to upset the delicate balance needed to freely explore the design space.
Say we pass all the requirements, now how exactly do we arrive at the result? There are a number of different techniques, but mainly we need a process to communicate our experiences, expectations and possible solutions. Use others’ contributions to reflect and question your own biases (Be careful not to discuss others’ biases, that is their obligation). Look for alternatives. Explore and research. Find common ground. Give praise to useful contributions. Keep the trolls out. This is more like gardening than hunting, and yet it’s a team sport.
There should be a good way to wrap this up, but I don’t have much else to say. Personally, I find those positive-sum games very rewarding and I hope to continue playing with a lot of you folks.