2009-07-18 24 views
6

Después de leer this question Me pregunto si sería una buena idea usar Haskell (u otros lenguajes de programación funcionales) en industrias de misión crítica.Programación funcional en plantas nucleares?

Aparte de Erlang, la mayoría de los lenguajes seguían los paradigmas imperativos/diseño por contrato (Ada, Eiffel, C++).

Pero, ¿y los funcionales?

El código resultante sería fácil de mantener, estable y muchos de los posibles errores podrían ser eliminados por sus estrictos sistemas de tipo en tiempo de compilación. ¿O la evaluación perezosa es más peligrosa que útil? ¿Hay otros inconvenientes de seguridad?

Respuesta

10

Creo que podrías. El lenguaje parece adecuado para tales situaciones, suponiendo que confías lo suficiente en el compilador para usarlo en una situación de misión crítica.

Recuerde que en situaciones de misión crítica no solo se trata de su código, sino también de todos los demás componentes. Eso incluye compilador (el compilador Haskell no está entre los más fáciles de revisar), hardware certificado apropiado que ejecuta el software, hardware apropiado que compila tu código, hardware que inicia la compilación del compilador que compilará tu código, infierno, incluso cables. que conectan todo a la red eléctrica y la frecuencia del cambio de voltaje en el zócalo.

Si está interesado en mirar la calidad del software de misión crítica, sugiero mirar NASA software quality procedures. Son muy estrictos y formales, pero estos muchachos arrojan millones de dólares en el espacio con la esperanza de que sobreviva condiciones bastante adversas y lleguen a Marte o donde sea, y luego operen de forma autónoma y envíen algunas bonitas fotos de marcianos a la tierra.

Así que, ahí lo tienes: Haskell es bueno para situaciones de misión crítica, pero sería un proceso costoso iniciar su uso allí.

Cuestiones relacionadas