Rust in 2021
Tags: rust, discuss, development
Published: 2020-11-18 05:05:46

---
title: Rust in 2021
published: true
date: 2020-11-17 00:00:00 UTC
tags: rust, discuss, development
canonical_url: https://tjtelan.com/blog/rust-2021/
---

I missed the official call for blog post submissions, I still want to share some ramblings of my hopes for Rust in 2021.

I’ll split this up into two sections: What I hope to see from the community, and what I hope to see for myself.

## What I want for the Rust community in 2021

### I want to see Rust shed some of its reputation for being hard to learn

When I was learning Rust, I thought it was harder than necessary. But I would admit that it was due to writing strict idiomatic Rust while I was still figuring out how to be productive.

I think learners should give themselves patience to learn Rust by writing bad or mediocre code first, and focus productivity later.

I am not exactly sure how to create the conditions for this outcome. Maybe more people can publish more Rust that looks messy but “just works”.

I know that Rust in Action is being written and it is for an intermediate-level audience. But perhaps this looks more like encouragement to beginners to ignore the warnings from the compiler. Just write Rust code and form your own opinions.

### More blog posts from developers and management using Rust at work

For 2021, I don’t even care if it is from one of the many blockchain-related companies using Rust. I want to read more experiences that lay out the decision of why Rust was chosen and how the experience has been.

I am especially interested when expertise is in another language and a comparison can be made to the other language. Emphasis when performing a rewrite.

- Example: [https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine](https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine)

It’s great to hear Rust used in complicated, low-level development, but it would be normalizing to read about more trivial types of applications, just as a way to highlight Rust as being good for general purpose use.

Anecdotally, I feel like Go has been growing a reputation as being suitable as a scripting language kind for a while and Rust could also check many of the same boxes.

### More Rust in DevOps tooling

In my experience, the cultures surrounding Rust and DevOps are very similar. They both seem to attract cult-like appeal that demand adopters to adjust to thinking in a different way than they may have been taught.

The intended reasons are for a “better future experience” that usually alludes to improved cooperation at a non-technical level.

The implementations of Rust or DevOps shift considerations of future problems earlier in development. Possibly experiencing some of the friction earlier.

Rust’s benefits are often placed in a context of pure development benefit, which may be ok for now given it is primarily Devs that are writing code. But as a user, there are a few tools in the space that I’m aware of that support DevOps culture (e.g. Habitat, Linkerd) and I want to see more of them.

- Link regarding rise of Rust + DevOps: [https://d2iq.com/blog/rust-devops](https://d2iq.com/blog/rust-devops) 

### Better Rust Interoperability between languages

Rust is entering other ecosystems through libraries via [FFI](https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#using-extern-functions-to-call-external-code). People don’t even have to know or care if they are using Rust.

However, if I’m writing the code myself, it would be nice if FFI were done without needing to be so mindful of C as the common language.

C++ and Java come to mind as currently Rust interop is a complicated dance. Rust to Javascript is improving through the Deno runtime, or through WebAssembly.

My motivation is that I’d like to work in the ecosystems where these languages are most often used (Web, Mobile and Embedded), but I stubbornly want to use Rust as much as possible.

### More shared experiences from people picking up Rust as a second language.

The borrow checker has a reputation that scares people away.

Especially if they are not from a traditional CS/Engineering background. And we should be trying to bring these folks into the ecosystem.

Acceptance of Rust as another language worth knowing by “average devs” would be helped with more beginners writing or talking about it. It’s my observation that a lot of developers who are self-taught or from bootcamps are mostly in the Javascript/Python/Ruby space for mostly Web facing code. But Rust can be a perfect second language to learn about types and memory management.

I believe content from this crowd would be my favorites to read since I think they’ll give valid opinions to someone who has been using Rust for years (like me) now overlook or accept without second thoughts.

### Increase of copy/paste templates to help bootstrap common types of projects

I have just become aware of `cargo generate` because of some of the niche project spaces I’m working on: WebAssembly and embedded.

Today, I keep [my own repo](https://github.com/tjtelan/rust-examples) where I offer rough working examples using common servers or patterns.

### My technical wishlist

- Rust analyzer support for generated code
  - I want support for [Tonic](https://github.com/hyperium/tonic)’s generated code
- Better tools or patterns for debugging Async/Await
  - The debugger just makes me realize how little I understand about Futures.
- Native Rust for building games
  - The end goal being Rust on consoles or in AAA games. I know they are sometimes used through FFI. It’s not a light task to use Rust in this manner.
- Native Rust for building mobile apps
  - We can technically write apps for both Android and iOS today, but they aren’t exactly popular because building is complicated

## Where I plan to be with Rust in 2021

### I plan to write more Rust that other people find useful.

- I hope to have [OrbitalCI](https://github.com/orbitalci/orbital) into more of a Beta quality, and usable by others for feedback
- Publish more crates that allow people to write Rust to interact with existing APIs

### I plan to have serious projects

A few serious projects in upcoming Rust niches so that I can produce more educational content (and hopefully even a product that others may use!)

- Embedded
- WebAssembly
- Mobile

### I plan to start making money with Rust.

- I’ve started my own business in 2020, and I’m not yet making any money. However, I’ve decided to base a lot of my work using Rust. I am enjoying the experience so far. I intend to sharpen my skills throughout 2021 into paid work.
- I hope to make some income through [Twitch from livestreaming my coding](https://www.twitch.tv/tjtelan) and [other platforms from my writing](https://medium.com/@tjtelan). (edit: Added my affiliate links 😉)

### How do I intend to help the Rust project?

- I’m using Rust to build software for my business (in the DevOps tooling space).
- I will be producing more blog posts, with an angle of inviting Python and Javascript programmers to Rust
- I plan on making my first code or docs contribution to the Rust project in 2021.

## Conclusion

I see a lot of promise in Rust's future in 2021. Much has become stable in 2020 and all that is needed is some time and encouragement.

I have enough confidence that I plan on using Rust as my main language as well as motivation to get more involved with the community.