4 ms·
> you don't want dynamically-generated code controlling your x-ray machine... I don't see how it follows that you can't have a functional language controlling
by lectrick 11y ago
> you don't want dynamically-generated code controlling your x-ray machine...
I don't see how it follows that you can't have a functional language controlling an x-ray machine. You can make an appeal to complexity, I suppose, but this can be managed. If Erlang is used to create a 99.999999999% reliable cellphone infrastructure (http://stackoverflow.com/questions/8426897/erlangs-99-9999999-nine-nines-reliability http://stackoverflow.com/questions/8426897/erlangs-99-999999...), I believe it can handle medical device functions :P I mean seriously, at that level of reliability, even if you have a health-critical device with literally just 10 assembly instructions, a cosmic ray could still flip a bit (http://status.aws.amazon.com/s3-20080720.html http://status.aws.amazon.com/s3-20080720.html) and cause a catastrophe!
And as far as Java (which I'm not necessarily a fan of, I'm just making a counterargument) and medical devices, look here: http://www.oracle.com/us/technologies/embedded/embedded-java-for-healthcare-433550.pdf http://www.oracle.com/us/technologies/embedded/embedded-java...
- humanrebar 11y ago> You can make an appeal to complexity, I suppose, but this can be managed. If Erlang is used to create a 99.999999999% reliable cellphone infrastructure (http://stackoverflow.com/questions/8426897/erlangs-99-999999... http://stackoverflow.com/questions/8426897/erlangs-99-999999...), I believe it can handle medical device functions :P Imagine you gave someone cancer every time a call was dropped. Even 0.00001% is a big risk, depending on what you're doing. You also want something that reliable out of the gate, not after years of beta testing. > even if you have a health-critical device with literally just 10 assembly instructions, a cosmic ray could still flip a bit (http://status.aws.amazon.com/s3-20080720.html http://status.aws.amazon.com/s3-20080720.html) and cause a catastrophe! Sure. That's why there are dead-man switches, watchdogs, heartbeats, acks, checksums, etc. in the majority of ('all' is a strong word) safety critical software. If random corrupt data gets written to the wrong location, the consuming subsystem (hardware or software) should do the safest thing possible.
- TickleSteve 11y agotrue, I should explain better.... I was sort of referring to the fact that most functional languages are also dynamic/meta-programming type of environments, not compiled to straight non-modifiable all-ROMable code that absoutely will not change at run-time. Those are the features that are frowned upon, not the functional programming features. So for examnple, a LISP or Haskell that compiles down to a straight binary that is all static is absolutely possible, but you do lose out on the nice features. There has been research into a SIL4 jvm, but I cant find any product that came out of it. Bare in mind that you need 100% traceability, 100% code coverage, etc all the way from your byte-code down to bare-metal, thru the JVM/runtime/etc. >http://www.oracle.com/us/technologies/embedded/embedded-java.. http://www.oracle.com/us/technologies/embedded/embedded-java.... Thats just plain old embedded Java... nothing to see here, we're talking SIL rated java... its a different animal