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

2 comentarios:

  1. Ja, ja, que gracia me hace este Sr. Ganssle. Como se nota que no ha trabajado en España como programador en ADA. La respuesta a sus dudas a cerca del escaso uso que se hace de este lenguaje en este país es muy simple: ADA impone una filosofía de trabajo totalmente opuesta a la filosofía de las empresas mal llamadas de Consultoría / ETTs encubiertas / charcuteras, que se puede resumir en los siguientes pasos:

    - Un geniecillo del márketing con traje de Armany, corbata chillona y palo de escoba metido por el culo que no tiene ni puta idea de informática le vende la moto a una planta depuradora con una solución software para su sistema de gestion de aguas fecales "realmente novedosa" a un precio ridículo.

    - El geniecillo del márketing se lanza a la búsqueda de programadores ADA sin tener ni puta idea de que va eso del tiempo real y el código robusto. Para ello cuenta con la inestimable ayuda de Infojobs.

    - Primer problema para nuestro geniecillo: Los programadores de ADA escasean y los muy canallas se atreven a pedirle un salario y unas condicones de trabajo dignas. Nada, nada, nos olvidamos de ADA, que eso es muy caro, hay que pagar licencias y sólo le sirve a la NASA. Nosotros sólo hacemos mierda muy barata, nuestra especialidad.

    - Definitivamente, nuestro proyecto se hara en C/C++, que me sobran los programadores y además como el proyecto en principio no va a durar más seis meses, les hago un contrato basura por obra y servicio y al finalizar el proyecto a la puta calle. Con un sueldo miserable de 700 € al mes, por supuesto.

    - El geniecillo del marketing contrata a tres pobres desgraciados que en su día se creyeron aquello de que en España harían falta más de 60.000 informáticos. Por el numero de horas de trabajo realmente harían falta cinco pero eso al geniecillo no le importa, ya lo apañara explotando a los tres pringaos en jornadas interminables de trabajo y con horas extras sin pagar.

    ResponderEliminar
  2. - Comienza el proyecto: El geniecillo del márketing se va todos los días a hacerle la pelota al cliente, a comer con el de gañote en restaurantes cinco estreyas Michelin a costa de la empresa y entre cafe y cafe y busqueda de información sobre proyectos parecidos en Google, hace la toma de requisitos y prepara un sucedaneo de especificaciones.

    - Al leer las especificaciones, los pringaos se dan cuenta del lio donde se han metido y comienzan a picar codigo sin sentido. Eso si, como alguno de ellos ya es perro viejo, comienzan por la interfaz gráfica (la vista), cosa que al geniecillo le gusta mucho pues le sirve como presentación del estado del trabajo al cliente y así mientras el se toca los huevos cree que "los chicos estan trabajando a saco, que bueno soy en lo mío".

    - A mitad del proyecto comienzan las prisas: No hay unas especificaciones claras (de echo el cliente las cambia constantemente), ni existe un modelo de negocio, ni un digrama de clases ni leches, nada de nada.

    - Lo cual, que los pringaos hacen el programa que les da la gana. Como está implementado en C/C++ y el compilador se lo traga todo, se lo enseñan al geniecillo y este ve "que funciona", es decir que se ejecuta y vete tu a saber lo que ocurre. De momento la cosa cuela.

    - Llega el día de la inaguración: El geniecillo ya ha despedido a los tres pringaos (de hecho, uno se fue voluntariamente porque estaba quemado y no aguantaba más mierda). Sin preaviso, sin decir adios y sin más leches, "de eso que se ocupe el abogado de la empresa y la cachonda de RR.HH". Se ha puesto para la ocasion su nuevo traje de Armany, su corbata más fashion y su palo de escoba más largo metido por el culo.

    - Vienen a inagurar la planta el Ministro de Obras Públicas, el Presidente Autonómico, el Alcalde, el Consejero delegado... no falta nadie.

    - El geniecillo muestra su producto final al cliente, lo ejecuta siguiendo los pasos que le indicaron los pringaos, luces, cámara, acción y todo funciona.... hasta que el cliente pregunta al geniecillo si en vez de pulsar la tecla A, puede tocar la tecla B. "Por supuesto", dice nuestro geniecillo....

    - De repente, se oye un estruendo. Comienzan a saltar avisos en el panel de control y las alarmas no paran de pitar. El tanque de aguas fecales se desborda cubriendo de mierda al director de la planta, a nuestro geniecillo del márketing, al Ministro, al Presidente Autonómico, al Alcalde, al Consejero delegado y a la madre que los parió a todos juntos.

    - El hecho pasa inadvertido al día siguiente ante la prensa gracias al fabuloso trabajo de encubrimiento de los jefes de prensa de la depuradora, es decir, untando a peridistas para que se callen y soltando trolas como "ha sido un fallo técnico facilmente subsanable", "hemos encargado una auditoría externa", "tecnicamente el sistema es muy sofisticado y complejo", o "este proyecto es una gran inversión y no caerá en saco roto".

    - El geniecillo subcontrata la depuración de errores del programa a otra empresa de consultoría por un precio más ridículo todavía, la cual busca inmediatemente por Infojobs a tres nuevos pringaos que sepan C/C++ o lo que sea para que se coman el marrón de reparar semejante desastre.

    - Nuestro geniecillo consigue su bonus anual por productividad: Queda demostrado que el no tuvo la culpa del desastre, fueron esos malditos programadores que no saben lo que cuesta dirigir una empresa. Gracias a el se ha subcontratado la depuración de errores a precio ridículo (un trabajo encomiable) y ya se esta preparando para su siguiente proyecto: el sofware de control de una central nuclear.

    ResponderEliminar