¿Porqué no estan los desarrolladores interesados en Ada?

Traducción del artículo Why aren't developers interested in Ada? de Jack G. Ganssle aparecido en Embebbed en Junio del 2009. A día de hoy creo que aún es válido. Se ha intentado respetar el estilo original.

Una gran parte de encuestas realizadas muestran que en 25 años Ada no ha conseguido hacerse un hueco significativo en el mercado de los sistemas empotrados (embedded). Sin embargo los datos son concluyentes: los programas escritos en Ada tienen menos errores y son más rápidos que sus equivalentes en C.
¡Pero aún hay mas!

Los compiladores Ada funcionan como deben (estoy preparando un artículo sobre el uso erróneo de la clausula volatile en C). Los compiladores Ada se someten a pruebas exhaustivas conforme a la Suite de Tests de Evaluación para Conformidad de Ada (ACATS).
¡Pero aún hay más!
El compilador de Ada más popular, GNAT, es de libre distribución bajo licencia GPL.
Ada fue diseñado desde la base para aplicaciones empotradas con alta fiabilidad. Ni C ni C++ pueden decir lo mismo. El Perfil Ravenscar permite ajustarse con precisión a sistemas empotrados en tiempo real. La gestión de tareas es una característica residente, no un añadido caro y frívolo de los distribuidores de RTOS.
Puedes preguntarte porqué siendo rápido, mejor y libre no nos termina de convencer.
Probablemente nada tengan que ver las posibles deficiencias. Robert Dewar, presidente de AdaCore, me contó que, incluso con todas las comprobaciones en tiempo de ejecución activadas (runtime checks), esperaban como máximo un 20% de impacto en el tiempo de ejecución (performance) comparado con C, aunque lo más probable era un 10%.
Quizás podemos alegar que las comprobaciones en tiempo de ejecución es un concepto ajeno a la comunidad C. Ada incluso controla errores como la división por cero y permite definir rangos legales para enteros. Pero en C podemos escribir:
num_dosis = 0;
morfina = dolor_paciente / num_dosis;
dispensa_morfina(morfina);
No es culpa de la falta de compiladores. AdaCore a instalado GNAT en mainstreams de 16 y 32 bits.
Por lo que he visto los nuevos desarrolladores en Ada odian el lenguaje. Les resulta un trabajo muy duro crear un código compilable. Los veteranos dice: si puedes hacer que esta maldita cosa compile seguro que funcionará. Pero después de 3 proyectos la mayoría aprenden a amar Ada. Seguirán dedicando mucho esfuerzo a escribir un código correcto, pero se lo ahorrarán en tiempo de depuración. 

Es muy probable que el Sr. Ganssle esté en lo cierto. Si consiguiera que GNAT ADA funcionará con GtkAda sin decirme continuamente que no encuentra esta o aquella DLL y si pudiera instalar ambos sin pelearme con PATH, ADA_PATHs y GRP_PATHs como en la protohistoria de los sistemas operativos quizás podría opinar con más conocimiento de causa. Viendo lo que hay cada vez que quiera tomar un vuelo primero comprobaré qué aviones usan y que software implementa su aviónica, a ver si va a ser Ada.

No hay comentarios:

Publicar un comentario