One Year of Rust

Published August 8th, 2016

I've been using Rust since 1.0 launched. I had heard of it before 1.0 but didn't pay much attention to it and spent some time flirting with D before making the full switch to Rust. I fought with the compiler for a while and had to retrain my mind to think about how to write programs well but in the end it was all for the better and I find I'm way more productive in Rust. I wanted to write a bit about what I've learned and accomplished over the past year, document some of the community's achievements , what we can do better, and what I had wished I knew when I started.

What I've done

In no particular order I want to list what I've managed to accomplish with Rust this year (this is mostly for myself).

Amongst the public things there have been some private side projects that I'm happy with how they're moving along and my Rust has gotten way better. I rarely run into Ownership or Lifetime issues at this point which is a great feeling. If you're new to Rust it gets easier the more you use it. Some of my projects are behind because of life and my job coming close to 1.0 but I do want to work more on them when I have the time, especially with helping new Rust users learn.

How the community has changed

When I first started the only good documentation that existed was Steve Klabnik's original version of the book, blog posts from pre 1.0 and the nomicon wasn't even done, nor was my particular favorite for new users Too Many Linked Lists. Multiple toolchains and multirust was alright but needed a lot of work. Tooling was pretty much non existent. The community had pushed for a 1.0 compiler and it kind of left other things that languages need by the wayside like IDEs and editor plugins, though I will say cargo was really nice and what I wished Haskell could have had at the time (I learned about stack later when I started my job with it). Beyond that though libraries to build things were sparse or didn't exist for a use case. Rust felt as a language truly like a new frontier to explore and learn from and I'm glad I made the decision to jump on then, but man those first few months were rough.

What have we gained in the past year as a community though?

We may have a long way to go in terms of these things but they've also drastically improved in the last year alone which gives me hope about the next year. With things like MIR, better error messages, and other things I truly believe Rust, it's tools, and community a year from now will be completely different from what we know now and in a good way.

What can we do differently?

I feel like more emphasis on onboarding new users and making it more accessible to them should be a priority. Often the complaint of it's hard to learn is thrown around. We've made progress but we need to make it even easier to learn. Further develop the tooling so that companies will use it in production. Stabilizing more crates to 1.0 will greatly help us as well. Having clear focused goals for the Rust community and better communicating that to users so that they can understand what's upcoming in terms of the project, what RFCs have passed, what RFCs that have passed are actually having code developed and overall organizing this information in an easy to access area for everyone to reference. These are things I feel would greatly benefit Rust on the whole both professionally and for the community as we grow. Also better support for embedded development systems would go a long way as many people request it but it doesn't seem to be a priority and Rust could really shine here. Things like no std don't work without workarounds and that's not good if we want embedded systems to also be first class citizens.

What I wish I knew/had done while learning Rust

Here's a list of things I wish I had done earlier or knew earlier:

Conclusion

I feel like I've accomplished a lot this year, as has Rust on the whole and I'm excited to see where we go. I think we have a few things we can improve on and I'm looking forward to writing about it next year and to see what we all have done since then. It's definitely an exciting time to learn and be a part of the Rust community!