Denominamos Interfaz Gráfico de Usuario (o GUI del inglés Graphics User
Interface) a toda aplicación que interaccione con el usuario a través de un sistema
gráfico de ventanas por medio del ratón y el teclado. Para diseñar este tipo de
aplicaciones se cuenta con las bibliotecas de GUI, marcos de programación que facilitan
en gran medida la implementación de este tipo de programas.
Haskell es el lenguaje funcional puro de referencia. El objetivo de este proyecto
es desarrollar una biblioteca de GUI para Haskell, que denominaremos YAHU,
acrónimo de Yet Another Haskell graphics User interface. La idea es proporcionar al
programador de entornos gráficos de usuario un marco de desarrollo básicamente
parecido a los usuales en los entornos imperativos, para que la curva de aprendizaje sea
pequeña, y pueda utilizarse desde la misma introducción del programador al lenguaje
Haskell, pero proporcionando un nivel de abstracción mayor que el usual en las
bibliotecas para los lenguajes imperativos que facilite las tareas de programación. Así,
esperamos aportar una buena contribución al desarrollo de Haskell.
Otro de los objetivos del proyecto es facilitar la portabilidad de la biblioteca, si
bien el trabajo de desarrollo se hará en un entorno win32. Para lograr este objetivo, se
implementa YAHU sobre la parte de bajo nivel de WxHaskell, que constituye una
traslación al lenguaje Haskell de la biblioteca de GUI WxWindows, implementada en
C++. El propósito explícito de WxWindows es proporcionar una interfaz de
programación portable a través de múltiples compiladores, sistemas operativos y
arquitecturas. Por otro lado, para escribir YAHU usamos el estándar Haskell98, lo que
asimismo garantiza la compilación de la propia biblioteca YAHU en un amplio rango de
configuraciones, si bien implementaremos estructuras sintácticas alternativas basadas en
extensiones al estándar donde sea conveniente.