in reply to Projects where people can die

As I mentioned in my response, there are different kinds of life critical software.

For something like a 911 (police|fire|ambulance dispatch) system, Perl would probably be viable, as the system is going to be quite large and complex, requiring access to databases (to locate where and from whom calls originate, locations of firehouses, availability of personnel), GIS (which is the best firehouse, directions to the victim), and the ability to handle many calls, and route them to many human dispatchers. While this is certainly a life-critical system, it's certainly not in the same category as, say, the software for a digital flight control system or ABS.

I'm not sure what language I'd use for programming a life critical embedded system, such as DFCS or ABS; this is extremely far out of my range of expertise. I know they've been done, successfully, in assembler, Fortran, Jovial, Coral, Ada, and C. I know of embedded (but not necessarily "life critical") systems programmed in Forth (which was created for this purpose) and Basic. I believe the Occam language was developed as a verifiable language for writing life-critical software. I've no idea if it's being used for this.

I think that the discipline around the entire project is far more important than the selected language. A lot of early life-critical software was written in assembler. Any sensible programming language gives enough rope for a programmer to (figuratively) hang (him|her)self, even Ada. Assembler provides enough rope to hang everybody in the neighborhood.

emc

At that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation.

—Igor Sikorsky, reported in AOPA Pilot magazine February 2003.