La verdad es que no conozco el Ada, he hecho alguna tontería de prueba y poco
más. Para el que quiera probarlo, GNAT es un compilador libre, es el que he usado. Y En
Adahome se pude encontrar mucha información subre Ada.
Por lo poco que he visto, el Ada es un lenguaje potente, con defectos y
grandes virtudes, y que se ha utilizado en unos pocos grandes proyectos civiles.
Sin embargo, a pesar de sus virtudes y del apoyo masivo del DoD, uno de los
principales consumidores de software, prácticamente se ha extinguido. ¿Entonces
a que se debe su falta de éxito ?
El Ada es un lenguaje hard typed, es decir, muy restrictivo con los tipos, eso de considerar que, al fin al cabo todo son bytes, no vale en Ada. No hay conversiones automáticas, ni siquiera convierte enteros a float automáticamente. Está muchiiiisimo más cerca del Pascal que del C. Dicho lo cual, uno puede forjarse una primera opinión según sus filias y fobias. En mi opinión eso es una virtud, una gran virtud, especialmente para grandes proyectos.
Es altamente portable, mucho más que el C, según comentaban en una revista de Linux (lo siento, no recuerdo ni en cual, ni el autor) implementó en su casa el programa en Ada sobre un linux, y luego en la universidad lo compiló sobre windows sin ningún problema (aunque habría que ver que tipo de programa era).
Esto se debe a que los compiladores se validan, es decir, deben compilar una batería de programas correctamente para ser reconocidos como compiladores Ada, y no existen extensiones ni mejoras fuera del estandard.
Sus estructuras de control de flujo se cierran cada una de una manera distinta
if....end if -- loop...end loop -- procedure x.... end x
Lo que considero una gran idea, comparado el begin...end que se usa para
todos los bloques en pascal, con lo que a veces terminas mareado con los ends.
Mejor no hablar de las llaves de C, la pesadilla.
Entre lo que considero sus defectos, está una nomenclatura absurda. Por alguna razón a los punteros, los pointer de todas la vida en todos los lenguajes, decidió llamarlos access. A los objetos Tagged type. No sí si es que querían diferenciarse de los otros lenguajes, o simplemente estaban borrachos.
Está implementada sintácticamente la multitarea, no es una librería externa, o una extensión especifica de un fabricante.
Entonces, si es tal dechado de virtudes ¿Por qué fracasó?, ¿o al menos tuvo
tal falta de éxito?. Aunque se ha utilizado en algunos proyectos importantes
y complejos, realmente no se ha popularizado. No es paradigma de los lenguajes
de programación, como el C, no ha logrado sustituir al C, ni al C++.
La prueba más evidente de su fracaso, o al menos falta de éxito, es que las
pocas páginas que hay en internet apenas se actualizan desde 1998, y gran parte
de ellas se dedican a ensalzar el Ada frente al C, y a poner ejemplos de lo
bien que ha funcionado en una lista de unos pocos grandes proyectos. Hay casi
tanta información elogiando sus virtudes e intentando convencernos de que lo
usemos, como información técnica.
Parece que el Ada, salvo algunas excepciones, jamás consiguió salir del ejército USA, apenas ha llegado al ámbito académico, y poco más. ¿por qué?
Se apuntan varias causas
1. Los compiladores eran demasiado caros.
Si, creo que es una buena razón, Nunca hubo un compilador ligero, como turbo pascal. Es un lenguaje muy complejo para que implementar un compilador sea una tarea trivial.
2. Un programa desarrollado en Ada es lento y ocupa mucha memoria.
Según dicen los los apóstoles del Ada, esa mala fama se la dieron los primeros compiladores, hoy en día es tan bueno como el C o el C++.
3. Se consideró que sólo lo usaba DoD
Una especie de efecto red al revés. Si mi único cliente potencial es el DoD, el único que lo usa, no vale la pena hacer compiladores ni herramientas, si no hay una buena y variada oferta de compiladores ni herramientas, nadie lo usa fuera del DoD.
4. Es un lenguaje farragoso
Hacer programas triviales con Ada es pesado, lo que hace que no haya una nueva
generación de programadores que se inicien en él.
En general, se le considera un lenguaje inútil porque no lo usa nadie, y que para hacer cualquier cosa has de escribir El Quijote. Los hackers lo desprecian y dicen que es obvio que ha sido diseñado por un comité. No hay nada como una mala prensa para fracasar.
En mi opinión es un buen lenguaje. Pero a pesar de sus virtudes, el Ada está moribundo, y los proyectos que hoy en día existen, poco a poco irán cambiando de lenguaje. Personalmente, he curioseado en Ada, y no creo que le vuelva a echar otra ojeada, menos hacer nada serio con él.