Rust 2018: Use Relentless Positivity

Rust is a fantastic programming language, but I believe that adoption is held back largely due to a reputation for being difficult to learn. Let's fix that.

As a Python programmer, writing a C extension took courage. Rust has enabled me to be fearless. I want Rust to foster self-belief.

This post argues for a strategy that plays to the Rust's community's strengths to etch away at the perception that Rust is hard to learn. It's not original, but this strategy is all about being relentlessly positive in the face of doubt, skepticism and cynicism.

Rust gives programmers the tools to write safe, fast code. That's extremely liberating. Niall Douglas, author of nedalloc, begins a programming advice article with this warning:

The usual sagely advice regarding multithreading is to not use it except when absolutely necessary ie; there is a substantial performance advantage to be gained.

— Niall Douglas, Programming Tips

He goes on to describe a number of conventions for keeping safe. But Rust has a stronger answer for that. "Hey programmer, I've got your back. If you forget a rule, you won't bring down the system."

I believe that the Rust programmers should demonstrate that Rust is a better language to write your hot loop code.

Some examples where Rust could help:

  • Web developers programmers should have incredibly fast, incredibly secure and incredibly stable libraries for parsing JSON, XML and other input formats.
  • Rust programmers came from somewhere else. That means they understand other communities' pain points. For example, Erlang programmers should not need worry that imported native code will bring down the VM.
  • Mobile developers should have the tools to respect their users' battery life

How would this work? Well, Python provides a useful case study. Its package manager supports a binary distribution format. That format allows pre-compiled binaries to be downloaded by 3rd parties. The rust-fst package can be downloaded by any Python developer, without needing a Rust installation. It's only one example that will hopefully spur more ideas.

By re-writing C extensions and other auxillary modules in Rust, other communities become exposed to Rust in a practical and supportive way. This isn't a call for more drive-by RIIR comments. It's a call to demonstrate to the world that Rust is a tool that is both learnable and useful.

All the best for 2018 from Aotearoa/New Zealand.

p.s. I am the author of Rust in Action, a book for intermediate programmers who want to learn Rust by learning systems programming concepts. If that sounds interesting, the publisher provides a free HTML preview of the book to view at your leisure.