Saltar al contenido

¿Vale la pena aprender Ada en lugar de otros idiomas? [c++, c#]?

Recuerda que en las ciencias un error casi siempere puede tener más de una resoluciones, así que te enseñaremos lo más óptimo y mejor.

Solución:

Sí. Mucho, en mi opinión.

Ada es muy buena en dos puntos que a menudo se pasan por alto en otros lenguajes de programación:

  • El sistema genérico: paquetes, funciones y procedimientos pueden ser todos genéricos. Esto funciona en conjunto particularmente bien para arraigar el SECO [Don't Repeat Yourself] principio. Sí tú puede exagerar con los genéricos, pero lo que he visto en proyectos (en otros idiomas) es que la programación de cortar y pegar parece ser más común. [and that just introduces multiple points-of-failure if a bug needs fixed on that spot of code.]
  • Multitarea nativa. Una de las mejores cosas de una función de asignación de tareas a nivel de idioma es que los subprocesos múltiples no se sienten “añadidos” y no es una extensión difícil de manejar, sino que está integrada en el idioma.

Dicho esto, hay otras buenas razones para aprender/usar Ada. Uno es el compilador quisquilloso, al ser tan quisquilloso te obliga a empezar a pensar en formas que reduzcan naturalmente los errores de programación. (Al igual que la prohibición de and y or en el mismo condicional.)

Otro es el concepto de subtipos; los subtipos son lo opuesto a los objetos en OOP, en lugar de ramificarse a medida que avanza, reduce el tipo (son valores aceptables) cuanto más se aleja del tipo base. Piénselo en términos de conjuntos adecuados; Integer es su tipo base, Natural son sus Enteros no negativos y Positive son sus enteros positivos… y con Ada 2012, puede tener exclusiones interesantes en sus subtipos, digamos Primes que son subtipos de Positives (perdón por ser un un poco vago en ese último punto; todavía estoy aprendiendo las cosas de 2012).

Con Ada 2012, también puede tener condiciones previas y posteriores en sus subprogramas; esto solo puede hacer que sus bibliotecas sean más estables. (Como puede null-excluyendo punteros.)

El consejo de Peter Norvig probablemente sea relevante aquí:

Cuando me preguntan “¿qué sistema operativo debo usar, Windows, Unix o Mac?”, mi respuesta suele ser: “usa el que usen tus amigos”. La ventaja que obtienes al aprender de tus amigos compensará cualquier diferencia intrínseca entre sistemas operativos o entre lenguajes de programación.

Enséñese usted mismo a programar en diez años

Todo el ensayo es una buena lectura.

Por cierto, Ada fue el primer idioma que aprendí. Aprender Ada primero tuvo una gran ventaja: nadie usa Ada, por lo que me vi obligado a aprender otro idioma antes de hacer cualquier otra cosa y, por lo tanto, ganar perspectiva. Uno de los peores problemas que pueden tener los programadores principiantes es la creencia de que la forma en que se hacen las cosas en su primer idioma es simplemente la forma en que se hacen las cosas. Aprender un nuevo idioma es fácil e inmensamente valioso.

Si su maestro y la mayoría de sus compañeros usan Ada, probablemente sea mejor ir con Ada. Es un lenguaje muy bueno, tanto para programas de pequeña como de gran escala. Es muy legible y lo protege (hasta cierto punto) contra muchos errores comunes.

Ada es para software Ingenieria. Como dijo darkestkhan, no es un lenguaje de “piratear y esperar lo mejor”.

El consejo de Paul Stansifer es muy bueno: Aprende varios idiomas. Asegúrese de tener muchas herramientas a su disposición, no se limite a un solo idioma. La perspectiva que obtienes al aprender diferentes idiomas es muy valiosa. Definitivamente hay más de una forma de despellejar a un gato: echa un vistazo a Haskell, por ejemplo. Obtendrá una perspectiva completamente nueva sobre cómo resolver problemas.

La sintaxis del lenguaje es lo de menos de aprender a programar. La parte difícil es aprender a modelar problemas complejos del mundo real en algo que tenga sentido en el alcance muy limitado de un lenguaje de programación. Con su fuerte sistema de tipos, modelo de asignación de tareas, herramientas genéricas y sólidas para programación concurrente y en tiempo real, Ada es ideal para este trabajo.

Dado que está preguntando específicamente sobre robótica, un buen libro para obtener podría ser “Creación de aplicaciones paralelas, integradas y en tiempo real con Ada” de John W. McCormick, Frank Singhoff y Jerome Hugues. Es una muy buena lectura.

http://www.cambridge.org/gb/knowledge/isbn/item5659578/?site_locale=en_GB

Aquí puedes ver las comentarios y valoraciones de los usuarios

Si sostienes algún inconveniente y capacidad de aclarar nuestro división te recomendamos realizar una observación y con gusto lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *