Recently there was a call for blog posts for the Rust 2020 roadmap, this post is my response to what I believe the Rust community should focus on for 2020.
To give some context of my experience with Rust, I started writing Rust when 1.0 launched in May 2015, and ever since I've tried to spend as much of my spare and professional programming time with it as possible. My first project was rusty-cloc
a prototype of what would later become Tokei. Since working on Tokei I'm now fortunate enough to be part of and contribute to both the Rust Release Team and the Governance Working Group, as well as having a full time position writing Rust code.
2020 will mark five years that I have been working with Rust and everyone in the Rust community. I'd like to talk about what I want to do to make not just 2020, but the next five years, the best years for the Rust community.
Monocropping
For the 2019 roadmap Jonathan Turner wrote a blog post called the The Fallow Year that posited that we should let the new designs "field" rest (go fallow) while we focus on other areas. To extend that metaphor, I would say Rust has fallen into monocropping in 2019 by focusing too much on our technical debt, when we needed to be addressing our social debt.
In the four years I've been in community I've met a lot people and quite a few who have since left Rust or programming altogether, while everyone has different reasons quite a few of these people have cited burnout as one of the contributing factors to them stepping away.
We need to focus on making a sustainable culture and organisation that can last for the next 5–10 years of Rust's life. The first step in which is being able financially independent from corporations like Microsoft, Amazon, and yes even Mozilla. While Rust is very fortunate to have such robust infrastructure on the technical side with Azure & AWS, our actual scaling issues have been in our human infrastructure.
These companies haven't prioritised in investing in a sustainable ecosystem for Rust. When 1.0 launched there was ~30 members of The Rust Programming Language, now in 2019 we have ~200 members. This is nearly 7x the amount of members, yet we've changed very little to be able to adapt to this growth. No where is this more evident than out of the now 200 or so members, the number that are paid for their time on Rust is still in the single digits, and this doesn't look to change any time soon.
I have no doubt that even if nothing new was added for five years people would still be writing Rust code for their projects. I don't think we can say the same for the people who develop and maintain it. It's simply not a sustainable development environment, we're only putting on more pressure on individuals without any real reward. Not addressing this will only make the problem of burnout worse in our community, and eventually kill it.
A Foundation
For various reasons there's currently no Rust foundation or way to directly contribute fianancially to Rust's development (I recommend Aaron Turon's RustFest Rome talk to know more about them). Right now we don't have a solution to these problems, nor do we have a clear path to move towards solving them.
However, I don't think we've talked enough about what solving these problems might bring, and I would like to talk about some some concrete tasks that non-profit entity could do to enable us to do more and create a better environment for everyone in the Rust community.
- Paying members for their work.
Money isn't the solution to all problems, it does however solve a lot problems in a lot of people's lives. People shouldn't have to burn the candle at both ends between Rust and seperate paid work to continue to be part of the community. Rust has provided a lot of great technicial stability, I want to have a way to provide that same stability to our members.
- Budgeting
Currently The Rust Programming Language has no budget, we only have companies who've approved funding for specific people or projects. We should want have an executive decision about where our funding goes. We would be able to fund and run projects that excite us and that we want to support that aren't maybe profitable or attractive enough for corporation's to support.
- Event planning
The Rust Programming Language currently runs two conferences (RustConf + All Hands) every year, both of these conferences are currently dependent on a lot of core team membership to organise and the core team already don't really have the capacity for this. Instead we should have this entity take on the responsibility to fund and budget for these events, having a more consistent dedicated team that would be able to handle most of the work without involvement would reduce a lot of stress for both the people organising these events as well as the attendees.
Conclusion
I gave away my answer by making it the title, but I want make Rust's 2021 edition theme Sustainability. Instead of focusing our resources in 2020 towards technical problems, I would want to put them towards creating an independent non-profit entity run by the Rust community built to support and sustain development on The Rust Programming Language.
Our community is built on our ability to solve hard problems, if we can build one of the fastest and most beloved programming languages, we can figure out how to support the people who helped make it that way.