2024-03-29 from the editor of ~insom
------------------------------------------------------------
I posted on Mastodon about feeling how I should get back
into Rust, not because I like it (I don't) but because it
seems like the only viable language for unifying all the
kinds of software I write (web, system, embedded) while
maybe being more suitable for "real" production than the
kind of C that I write (buggy :p).
I've done a little trivial embedded stuff with Rust and so
far I'm really hating it! Some of it is just being
unfamiliar with the language and I am not being fair by
trying to do a non-mainstream kind of development with it
while not being very versed in Rust to begin with.
But the other part, I think, is the ecosystem. There's a
maze of crates you can use to get things done, and they are
at various levels of compatibility with each other and with
the Rust compiler itself. This isn't the language's fault:
no one forced me to add a dependency, but looking at the
transitive graph of dependencies it seems like
almost-leftpad-levels of dependency is here, at least in the
embedded crates.
For the embedded libraries I've tried using (the
`rp2040_hal`, part of the `embedded_hal` ecosystem) a large
amount of the implementation is written by macros, which are
kind-of inscrutable for a relative beginner like me, and
lead to me being unable to find the definition of things
without getting the IDE to help me. This is very familiar
from my days of Rails programming, and one thing that's
basically impossible in Go and that has made me _enjoy_
writing Go. You just can't be _that_ clever in Go.
I don't think you _have_ to be that clever in Rust, either,
but I think there's people out there who enjoy it (good for
them: I am getting their work for free, they should enjoy
doing it) -- and as a user in the ecosystem you're
immediately slammed into decisions about blocking vs.
polling vs. async versions of APIs and crates the depend on
one (or other) of these implementations.
idk. I guess this another rant. I'd like it to be something
I look back on in a year, when I have reached Rust
transcendance, and laugh at my naivity. I will perservere.