Rust: A Beautiful Language I’ll Probably Never Use for the Web

Tendai PfidzeTendai Pfidze
3 min read

...but maybe for my next embedded project

I’ve read and heard a lot about Rust—and somehow, I still haven’t gained any real insight from all the noise, except maybe a creeping suspicion that it might be... a cult.

People love Rust.
People hate Rust.
See how that could be confusing for a newcomer?

Now, I haven’t written anything remotely “next-level” in Rust, but just a few chapters into The Rust Book and I could tell: this language has something elegant going on. It feels well thought-out. Clean. Almost philosophical.

But that beauty comes with a caveat.
Despite all the frameworks and success stories, I don’t think I’d ever personally use Rust for a web application. It just feels like too much trouble.


Where I’m Coming From

My programming journey began with PIC microcontrollers—so, basically C. Which means I know a thing or two about shooting yourself in the foot, especially on small embedded systems where debugging often feels like waving a stick in the dark.

In that world, the idea of a language that catches your mistakes at compile time is more than attractive—it’s a survival tactic.


What I Like About Rust

I genuinely agree with most of Rust’s design decisions. My favorite?
Errors as values.

I’ve never been a fan of try/catch. It either turns into a deeply nested mess, or you throw everything in one big block and lose all observability. Rust’s Result type and the way match expressions return values directly? That’s not just functional—it’s aesthetically satisfying. It encourages discipline without feeling rigid.

Rust feels like a language for adults. The kind that forces you to think things through before doing something dumb.


Why I Still Wouldn’t Use It for the Web

Despite all that, I just can’t see myself choosing Rust for web development.

The web is often about speed: of iteration, feedback, and delivery. In contrast, Rust demands care, precision, and ceremony. Not bad things—but possibly the wrong things when I’m building yet another backend API or admin dashboard.

Do I really want to be wrestling the borrow checker while designing a CRUD interface?

Probably not. And don’t get me started on lifetimes—in the right hands, they’re powerful. In the wrong hands (mine, during a crunch), they’re a ticket to lifetime hell.


Looking Ahead: Embedded Rust with Embassy

That said, Rust isn’t off my radar. Far from it.

I’m seriously looking into Embassy for my next embedded project. With more powerful microcontrollers like the Raspberry Pi Pico and STM32 offering incredible performance at low prices, it’s getting harder to justify the PIC18 family that I’ve relied on for years.

In embedded contexts—where concurrency is tricky, memory is tight, and bugs can be catastrophic—Rust’s strictness feels like an asset, not a burden. Embassy’s async-first model is especially compelling. It’s a modern take on embedded, and Rust may just be the right tool for the job.


Conclusion

Rust is a beautiful language. A language I admire.
But also a language I’ll probably avoid for web applications.

It’s not about what Rust can do. It’s about whether it’s worth the tradeoffs—for your use case, for your team, for your sanity.

Still, in the embedded world where safety and predictability matter most, I’m excited to give Rust a proper try.

It may not be my everyday language, but it’s definitely not off the table.

0
Subscribe to my newsletter

Read articles from Tendai Pfidze directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tendai Pfidze
Tendai Pfidze