in reply to Projects where people can die
Suppose you want Perl to be the language in that project.
What would be your cautions regarding the choice of Perl?
How would you go about using CPAN modules?
You don't use Perl. Perl isn't designed for life-critical applications; it's designed to make life easy for the coder. That's great when the coder is the guy you care about; in this case, it isn't. The guy who's life is on the line is the guy you care about; and you're going to formally prove that he will never die, no matter what your system does.
That takes a hell of a lot of engineering and formal design work, and a relativly small amount of coding.
In any highly serious (life-critical) app, you need formal design, you need formal analysis of the entire state of the system, you need a rock hard, iron-clad spec of the entire thing, and you need QA built in from the ground up.
Coding time and effort for these sorts of projects is simply irrelevant. The effort it will take to prove every possible logical outcome of the code, and to test every possible branch path is going to dwarf the code itself, no matter what language you use to write it in. The tests will take ages to run; but they will be comprehensive. The certification will take forever to get; but it will formally prove safety (to the degree that you've deemed an acceptable risk). For every line of code you write, there will be hundreds of hours of proof to ensure that that particular line won't kill anyone.
You'll use a language that compiles directly onto the hardware you're running, like C, or Ada; you won't use any language that requires an operating system, or you'll have to certify every single line of the OS, too. You don't want to do that. Just certifying the correctness of the compiler is going to take years and cost hundreds of thousands, if not more.
My friends work on subway controls for automatic train systems. They literally spend days debating the impacts of the changes to a single function; they have to prove to all members of the team that what is proposed is correct, and they do so multiple times, at multiple levels of review, so that no one person's mistake will cause a fault in the end product. Coding is the very least of their worries; not that it's easy, but it's at least all the code has to do is match the spec. The spec itself has to be provably correct; and that's the hard part.
If you're serious about hard-real time control systems, you don't use anything resembling Perl. If you really think you should use Perl, go talk to some professional engineers who build these sorts of systems, and let them change your mind.
Perl is good for many things. Life critical apps are not one of them. CPAN doesn't enter into it.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Projects where people can die
by merlyn (Sage) on Sep 07, 2006 at 21:21 UTC | |
by swampyankee (Parson) on Sep 07, 2006 at 21:55 UTC | |
by Anonymous Monk on Sep 07, 2006 at 23:48 UTC | |
by zentara (Cardinal) on Sep 08, 2006 at 13:17 UTC | |
by swampyankee (Parson) on Sep 08, 2006 at 14:37 UTC | |
by zentara (Cardinal) on Sep 08, 2006 at 16:38 UTC | |
| |
|
Re^2: Projects where people can die
by chromatic (Archbishop) on Sep 08, 2006 at 06:30 UTC | |
by Anonymous Monk on Sep 08, 2006 at 15:36 UTC |