• Ephera@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    59 minutes ago

    At $DAYJOB, we develop an application for basically linking up low-level devices over the internet. And yeah, in one codebase, we have:

    • A backend
    • A distributed system client/peer
    • A CLI
    • A web frontend
    • And simulation software to flash to those low-level devices

    All of that is in Rust, so it’s not just not wanting to learn different languages, it’s genuinely useful.
    We can use the same model types in the various clients and the backend, meaning it’s compile-time guaranteed that they work together. Just as well, we can generally use the same libraries. And while e.g. the web frontend and low-level software use frameworks, making it not entirely trivial to just jump into that part of the codebase, the barrier for entry is a lot lower.

    And yeah, ultimately that flexibility is something I find hard to give up, especially when customer requirements are as nebulous as they usually are.
    Honestly, we never had a hard reason why we should be using Rust. It was just that maybe we’d need such low-level simulation software, maybe we need the performance to process each individual network package, maybe we need to do things in the Linux kernel. The rest was just that we wanted to use Rust, because it’s a cool language.