¿Por qué los viejos profesores de CS aman el lenguaje de programación Ada?

Entonces, nunca me enseñaron ADA. Pero cuando tomé CS101, me enseñaron Turbo Pascal. El siguiente semestre, comenzaron a enseñar C / C ++ como el CS101 básico.

Pero hay características de los dos idiomas que los hacen fáciles de enseñar, aunque quizás un poco tedioso para programar: la verbosidad del lenguaje en sí.

Por lo que recuerdo de Turbo Pascal y lo que puedo ver de ADA, ambos son lenguajes muy descriptivos y descriptivos. Entonces, al enseñar los conceptos de programación, es muy fácil para el instructor decir: “aquí, estás declarando ‘i’ un número entero. Solo será un número entero. Aquí, estás declarando ‘nombre’ como una cadena. Solo será una cuerda.

En C / C ++, todavía tiene este tipo de datos sólidos, pero las declaraciones son breves y menos informativas para alguien que no está familiarizado con los conceptos de programación.

Realmente no hay una forma / lenguaje / enfoque correcto o incorrecto para aprender o enseñar un lenguaje de programación. Finalmente, todos aprenden algunos idiomas más y tienen que adaptarse a las diferencias en la convención de esos idiomas. Pero su comprensión interna de los idiomas y la estructura del lenguaje evolucionará para convertirse en algo más genérico, que podría aplicarse a cualquier idioma.

Pero sí, al principio, el objetivo no es convertirlo en el programador más eficiente de la historia. El objetivo es transmitir los conceptos de manera más eficiente a las personas que pueden no estar familiarizadas con los conceptos de programación. La sintaxis altamente verbosa y los lenguajes descriptivos como ADA y Turbo Pascal (y también Visual Basic) son adecuados para esta tarea.

Tendrás que desaprender algunas cosas cuando cambies de marcha a otros idiomas. 🙂

Debido a que obviamente son tipos académicos que han sido maestros durante tanto tiempo que olvidaron, o nunca se dieron cuenta, qué dolor real en lo que Ada sabía para desarrollar sistemas del mundo real.

Ada trató de ser el lenguaje “perfecto”, e incorporó lo que en ese momento se consideraban las “mejores prácticas” del desarrollo de software (en realidad, los obligó a ir por la garganta, nos guste o no), lo que, por supuesto, a un académico le encantaría.

Desafortunadamente, aquellos de nosotros que intentamos desarrollarnos en Ada para vivir de proyectos industriales en general terminamos odiando el lenguaje.

Es la diferencia entre la “teoría” académica de algo y la “verdad fundamental” del mundo real sobre cómo ponerlo en práctica.

Cuando se definió ADA, pensé que era demasiado grande y demasiado complejo (para el estado de las implementaciones del compilador). También tenía limitaciones que dolían demasiado, un cambio de terminología que era doloroso y afirmaciones de bondad que eran falsas y tal vez verdaderas si reemplazaba el significado de las palabras para que coincidieran con la terminología de ADA.

Sus innovaciones más elogiadas, como el procesamiento y las tareas, fueron difíciles de usar y demasiado específicas para implementar.

Mientras tanto, la tecnología del compilador ha mejorado, y la usabilidad del lenguaje ha mejorado aún más. Cuando se concentra en ADA como un medio para limpiar la abstracción de datos del programa, se vuelve bastante excelente. Puede ser verbo, pero tiene muchas características buenas. Ya no es obligatorio y puede usarse solo para lo que es bueno, en cambio, para todo.

En particular, es bastante bueno para los conceptos que son difíciles de enseñar y admite una programación limpia. Esto, junto con el hecho de que las personas más jóvenes se concentran en otras características y tal vez ni siquiera saben ADA podría ser una de las razones por las que sientes que los viejos maestros de CS aman ADA …

Hay muchos ejemplos en la Web sobre por qué Ada es un buen lenguaje de programación, en particular para proporcionar garantías sólidas sobre la confiabilidad y la seguridad, razón por la cual se creó y continúa siendo utilizado para sistemas militares y otros sistemas críticos, especialmente en Europa.

Recomiendo que la gente mire el libro “Sistemas analizables en tiempo real programados en Ada” por Burns and Wellings.

Si comprueba las edades de los principales desarrolladores e investigadores de Ada, son “viejos” solo para los estándares de los millenials.

Declaraciones de tipo fuertes y rigurosamente aplicadas.

Estructuras de datos claras y bien controladas.

Reglas bien documentadas y validación del compilador.

Excelentes mensajes de error del compilador y errores de tiempo de ejecución.

Si puede hacer que su código Ada se compile, probablemente entienda lo que está haciendo y probablemente se ejecutará como se esperaba.