In @nikomatsakis' 2020 blog post, he calls for a shift in focus "from adoption to investment.
(...) for Rust to really thrive, we need to see more people paid for their work on Rust teams.
I wanna accept that call-to-action and propose one such opportunity for investment.
tl;dr: The online service Crates.io could start charging commercial users a nominal fee, collected purely through opt-in payment; no paywalls or licensing changes.
How crates.io
could turn a profit without hurtin' anybody
What I'm about to propose is in large part inspired by the talk called "Money, Money, Money - Writing software, in a rich (wo)man's world" by Russell Keith-Magee @freakboy3742.
Free software advocates talk about two types of "Free": Free as in freedom, and Free as in beer. While Free (as in freedom) software is unquestionably better for users and developers alike, Free (as in beer) software doesn't pay the bills.
Talk to any prominent open source developer, and amongst the success stories, you'll also hear some consistent troubles - that they've got great ideas and grand plans, but no time to execute; that they're about to burn out due to the pressues of maintaining their project; or that they've had yet another mailing list discussion with someone who doesn't understand they're a volunteer. All of these problems stem from a fundamental disconnect: the discrepancy between the clear demand for a software product, and the ability to convert that demand into time needed to service that demand - and that means money.
The talk holds up incredibly well, and I recommend any Rust enthusiast interested in the sustainability of programming languages & infrastructure to watch it.
In this topic I wanna continue jamming on the idea that is presented towards the end of the talk at 23:07, namely how one could turn a profit on package management infrastructure without making things awkward (i.e. without corrupt incentives and such).
Imagining what crates.io
pricing could look like
Start
There's a top-level /pricing
page to crates.io. It describes some very simple payment terms of this online service:
-
Non-commercial user? Use Crates for free!
Price: $0/month -
Commercial user? Pay for developer seats.
Price: $150/month for every developer who spends 60 hours or more per month on Rust development.
End
The goal would be to resemble the pricing conventions of a SAAS product, which companies are very used to and can quite easily get to expense.
Paying for the developer seats would be self-enforced only. Companies that can't afford to pay $150/month (which is of course subject to change) per active Rust developers could simply opt not to pay. But in the best case scenario, non-payers would still get in touch with the Crates/Rust team to discuss what a paid subscription that'd work for them might look like.
Paying could be further incentivized by letting companies opt-in to be shown on a "Paying Subscribers" list; essentially serving the same function as a list of sponsors.
Professional Rust developers could also help drive adoption by favoring companies that pay the "Crates Subscription".
The Numbers
Just 40 companies paying for one developer seat each would amount to a whole developer’s salary (most places in the world): $6000/month.
Personally I think the price should probably be set higher, but it'd be best to start on the lower end and move carefully upwards through discussion with the paying subscribers.
I welcome thoughts & feedback from anyone, though I'm especially eager to hear from the would-be commercial users.