← Back to context

Comment by ijustlovemath

1 month ago

As a medical device founder, I personally wouldn't start any new projects in C++, unless I had realtime requirements. Embedded computers are performant enough today that you can easily write app code in safe languages with great tooling, and wont have to worry about complying with increasingly stringent V&V and memory safety standards from the FDA. And if I had to write c++, I'd use libraries and toolchains that were actually verified and had really great FDA quality documentation, which this project does not.

There was a discussion on real time Linux this week and I was SHOCKED to see comments from people who work on embedded devices that "real time" is vibes. i.e. a stack that tries to be predictable but isn't necessarily.

I'm curious for your expertise on that: my guess is some people can get away with that, but if you're operating ex. a medical laser, you gotta take it more seriously and actually guarantee ex. "This code will be delayed at most 8 ms, it's thread is guaranteed to get CPU time by then"

  • This is the difference between soft and hard realtime. For something that's heavy on signal processing, with some softer comms requirements (eg a B115200 serial interface for commanding/uploading programs), I'd probably reach for an FPGA + Linux MCU (a vendored Linux made for these kinds of applications).

    I certainly would never describe a product as real time if there was not a true realtime component to it, but I think people think it sounds cool and slap it on anything that's high performance. Happy to answer any specific questions on my email, see the profile.

Could you give examples of your preferred stack of language and li raries?

  • .NET is pretty popular! We use a combination of Kotlin, Python, and Rust. Because of the V&V burden of extra libraries, we tend to only use standard libraries

  • Siemens, Philips use .NET. Although, I believe it is mostly due to their partnership with Microsoft rather than the technical side of things.

    • Are you sure? Philips' medical side have an in house GUI library (Qt-esuqe) called Sense and it's mainly implemented using C++.