Medtech devices - choosing tech stack

Rust has adequate bindings for both Tensorflow and PyTorch. While they both seem pretty complete, I've personally found the PyTorch option to be the better to work with, at least for how I'm using it.

For scientific computing there's nalgebra and ndarray. Both crates are quite mature and cover a lot of the same functionality, but nalgebra offers nice stack-allocated options for physics/graphics with fixed-size vectors and matrices while ndarray is tailored specifically for large "dynamic" arrays. I also just saw an announcement for a CUDA extension for ndarray, which I'm looking forward to trying out soon.

I recently started back in on PyO3 and have been very impressed by the latest updates to the API. And there are dedicated crates to for working between numpy and ndarray/nalgebra.

If your product is safety-critical, Ferrocene is an option for compliance with IEC 61508.

Beyond just TypeScript I'd guess that anyone with strong functional programming experience would pick up Rust quite well; not just Haskell for generics/traits but anyone that is good at designing architectures around immutable state. Lifetimes are usually one of the biggest challenges with Rust, and anywhere you can avoid mucking about with mutability you can pass around all the shared references you want.

And maybe just one final note - while I can't comment on the full range of deployment/integration, the Rust toolchain is an absolute pleasure to work with.

3 Likes