Mostrando entradas con la etiqueta Ada. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ada. Mostrar todas las entradas

GNAT Ada GPS + GtkAda en Windows 7

Después de unos cuantos días de volverme loco intentando que funcionara el IDE GPS para Ada y las librerías de componentes gráficos GtkAda con Glade 3.8.1 por fin resolví el misterio:
  • Entramos en Libre Adacore para descargar el software. Elegimos la versión académica, se nos pedirá nuestro email y a continuación elegimos los paquetes que nos interesan, en este caso GNAT 2012 y GtkAda 2.24.4. Seleccionamos formato ZIP, descargamos y decomprimimos. Obtendremos la carpeta AdaCore[...]\x86-windows\2012 y dentro de ella gnatgpl y gtkada.
  • Instalamos GPS 5.1.1 desde la carpeta gnatgpl, se recomienda dejar la ruta de instalación por defecto (C:\GNAT\2012).
  • Aunque el instalador indica al terminar que se encarga de establecer las variables del sistema en mi caso no fue así, por lo que las establecí manualmente: hay que añadir la ruta de la carpeta /bin al PATH en primera posición: PATH=C:\GNAT\2012\bin;%PATH%

Este punto es la clave de la correcta instalación. Si por casualidad tuvieramos otro Gtk ya instalado, como GIMP, posiblemente de una versión anterior, el builder encontraría antes las DLL desactualizadas y al intentar ejecutar nuestro programa nos daría error. Este fue mi caso pues tenía instalado GtkSharp sin recordarlo.

Si probamos a codificar un HelloWorld ahora el compilador funcionará sin problemas siempre y cuando desarrollemos únicamente aplicaciones para consola. Nos interesa usar componentes gráficos, así que instalamos GtkAda:
  • Instalamos GtkAda 2.24.4 desde gtkada. La ruta de instalación debe ser la misma que la del IDE (C:\GNAT\2012). Aunque la documentación oficial no lo recomienda y en teoría debería funcionar bien si la configuración de las rutas es correcta, con ellos evitamos editar de nuevo el PATH dado que los ejecutables Gtk están en la misma carpeta /bin.
  • Creamos la variable del sistema ADA_PROJECT_PATH para que apunte a las librerías Ada de Gtkset ADA_PROJECT_PATH=C:\GNAT\2012\include\gtkada
En algunos foros recomiendan crear también la variable GPR_PROJECT_PATH apuntado al proyecto GtkAda: set GPR_PROJECT_PATH=C:\GNAT\2012\lib\gnat, aunque hasta el momento no lo he necesitado en mi sistema.

Ya podemos compilar y ejecutar una demo como la que aparece en Ada Denmark Wiki.

Enlaces para empezar: Ada 2012 Tutorial, Ada Programming, Start Ada,  Transformaciones de Lorenz en Ada, GTK+ and Glade3 GUI Programming Tutorial, Tutorial GPS, GtkAda 2.24.4 Tutorial

¿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!

Ada Lovelace, la primera programadora

Augusta Ada King, Condesa de Lovelace, nacida Augusta Ada Byron y conocida para la posteridad como Ada Lovelace (1815 - 1852), única hija reconocida del poeta Lord Byron, escritora y matemática del siglo XIX. Es la primera persona a la que se le reconoce la creación de un programa para un ordenador, la máquina analítica de Charles Babbage, con el que trataba de calcular números de Bernouille. Aunque hay algunas controversias sobre su contribución (se la ha tildado de maniaca depresiva y de no enterarse realmente de lo que Babbage se traía entre manos) le debemos la primera exposición de ideas como ésta:
[La máquina analítica] puede actuar sobre otras cosas además de números, pueden hallarse objetos cuyas mutuas interrelaciones se puedan expresar como operaciones abstractas y que pueden ser susceptibles de adaptarse a la acción de la notación usada y a los mecanismos del dispositivo...
Supóngase, por ejemplo, que las relaciones básicas de los sonidos en la ciencia de la armonía y la composición musical fueran susceptibles de tales expresiones y adaptaciones, el dispositivo podría componer elaboradas piezas de música científica de cualquier grado de complejidad.