viernes, noviembre 04, 2005

Revisando las GUIs para (x)Harbour

Este post me lo habíua estado pensando, porque todo parece indicar que las cosas en mundo visual de xHarbour están a punto de cambiar y de manera muuuuuy radical.

En un principio lo único que teníamos para hacer programas para Windows con (x)HB y que además sabiamos que funcionaba y es estable, era FiveWin (Antonio Linares es el padre del proyecto Harbour.... ¿ cómo no iba a funcionar FiveWin con Harbour ?).

De hecho FW funciona tan bien con (x)Harbour que hasta hay una version de FW para Pocket PC que me han dicho que funciona muy bien, y ojo, que el mercado de las pocket no ha sido atacado aun por casi ningún lenguaje de programación a excepto claro, por los de Microsoft.

FW tuvo durante muchos años "el monopolio" por llamarlo de alguna manera de las interfaces gráficas para Clipper y posteriormente para (x)Harbour, pero el advenimiento de (x)HB como proyecto Open Source y el hecho de tener disponible TODO el código fuente del compilador, desveló muchos secretos de la "fórmula de la CocaCola" de FiveWin, como por ejemplo el motor de objetos, pero sin duda la parte mas importante fue conocer que era y como funcionaba el famoso "núcleo", es decir, esa partecita de FiveWin que envía mensajes al Kernel de Windows y que permite comunicarse con el API de este sistema operativo.

Derivado de la revelación de los secretos de la programación de GUIs para (x)HB, comenzaron a surgir nuevas librerías y clases, también como proyectos Open Source, que prometían una interfaz gráfica para Windows, como fueron en su momento What32, Whoopi y MiniGUI, sin duda esta última la mas éxitosa de todas, desafortunadamente el creador del proyecto ha decidido cancelarlo definitivamente, con lo cual MiniGUI ya no será desarrollado más, con lo cual, podemos concluir que de momento, las primeras GUIs Open Source para (x)HB han pasado a mejor vida, es decir.... están muertas.

Hace unos días, en una charla por messenger con TheFull (Rafa Carmona), me indicaba que ya tenia lista su versión Alpha 1.0 de su TGtk para (x)Harbour y me invitaba a descargarla para probar que tal iba el tema.

Me fuí para su página (http://www.zonalibre.org/blog/thefull) y me descargué todo lo necesario para comenzar a probar, que no son pocas cosas, necesitas aparte de la TGtk, el compilador MingW C, el MAKE y ¡ Oh sorpresa !, después de mover aqui y allí, apretar un poco y desapretar por fin pude tener mi primer ventana, creada con una sintaxis muy similar a FiveWin, y eso sin leer el manual, que si lo llego a leer termino antes, porque la verdad TheFull explica todo en detalle y sin dejar escapar nada, pero ya se sabe... ¿ cuando se ha visto que un programador lea un manual ?

Rafa y Kim se han pegado una buena paliza haciendo una librería GUI que funciona perfectamente con xHarbour.... ¿ qué ventaja tiene la lib de Rafa contra un producto como FiveWin ?..... pues muy simple..... la libreria de Rafa y Kim es MULTIPLATAFORMA, es decir, el mismo código escrito para Windows trabajará para Linux, o para Macintosh porque todo el trabajo de la parte gráfica descansa sobre GTK, otro producto OPEN SOURCE, Rafa y Kim han hecho posible conectar (x)HB con GTK y obtener asi programas que funcionan con interfaz gráfica bajo Windows y Linux (de momento, supongo que el Mac o el Unix estarán a la vuelta de la esquina).

La ventaja de usar GTK es que este producto se encarga de "enrutar" los mensajes desde nuestro programa a la interfaz gráfica sobre la cual se esté ejecutando el programa, de tal forma que un DEFINE WINDOW, funcionará igual en Windows, Linux o Mac, ya que es GTK quien "charla" con la intefaz gráfica nativa del sistema operativo y la "convence" de dibujar una ventana, menú, dialogo o lo que sea (llamados Widgets) utilizando APIs nativas de la interfaz gráfica.

Merece la pena hechar un vistazo al trabajo de Rafa y Kim porque además es totalmente gratuito.

Por otro lado hace unos dias, la gente de xHarbour.com (www.xharbour.com versión comercial de xHarbour), anunció el lanzamiento de la primer versión de prueba de Visual xHarbour, pero..... ¿ que es visual xHarbour ?

Visual xHarbour o VxH para simplificar, es una la GUI "oficial" de xHarbour, es decir, una jerarquía de clases, funciones y componentes visuales creados por la propia gente de xHarbour.com, para tener su propia interfaz gráfica.

La novedad que incluye el VxH, es su propio IDE (Entorno Integrado de Desarrollo), del tipo Delphi o Visual Basic, que soporta edición de ventanas, escritura de código y hasta un depurador paso a paso con interprete de comandos. La verdad, este producto tiene muy buena pinta, si no fuera por los constantes GPFs (Errores de proteccion general) que ocasiona, y porque además el demo solo puede utilizarse durante 6 minutos, tiempo totalmente insuficiente para hacer cualqueir cosa, no bien haz terminado de medio familiarizarte con el entorno, cuando se ha acabado el tiempo y el programa se cierra ( si antes no se ha cerrado porque ha causado un GPF).

De momento el consuelo que nos queda es saber que hay un Visual xHarbour.... ¿ Cuando será estable ? .... ah, eso si no lo sé.... ¿ cuando alcanzará el nivel de un FW ?..... hmmmm muy dificil, hay muchas funciones ya hechas, pero de ahi a que el producto sea estable, falta un largo camino por recorrer, yo le anticipo por lo menos un año antes de poder ver una versión 100% funcional y que funcione sin problemas de VxH.

Del lado de los IDEs, el mas estable es hoy por hoy Xailer (www.xailer.com) que ha liberado su ULTIMA Pre-release, que además es super estable, el próximo lanzamiento de Xailer será por fin la anhelada versión 1.0. Actualmente Xailer es un IDE super estable y las aplicaciones realizadas con el funcionan perfectamente.

No me gustan mucho los entornos integrados, porque siempre hay algo que se extraña de las viejas formas de programar, pero el IDE de Xailer satisface muy bien los gustos de un programador exigente. El diseñador de formularios es estupendo, se han incluido DataServers que son super útiles para manejar archivos de datos y del lado de los controles se han incluido todos los nativos de Windows, y los favoritos de todos en FiveWin como el BtnBmp, el GetBmp, los folders con imágenes, el Browse es impresionante tanto para arreglos como para archivos de base de datos, eso sí, todos look Windows XP. El IDE de Xailer te permite hacer todo desde un solo sitio, desde diseñar los formularios, escribir el código fuente, incluir liberías de terceros, hasta compilar, enlazar y ejecutar un proyecto incluyendo un depurador que puede ejecutar línea a línea un programa, todo se hace con los botones de la barra. Del editor de código no hablamos, es un editor de código y punto, se extrañan muchas características de un editor mas potente como MultiEdit, que es el que yo uso, pero que le vamos a hacer, de todas formas el editor trabaja bien.

Una de las cosas buenas que tiene Xailer es la documentación, que viene en formato CHM y en PDF, la documentación abarca mas de 800 páginas, e incluye documentacion de TODOS LOS COMPONENTES, Metodos, Eventos y Datas, todo esta documentado tanto en Inglés como en Español.

Da gusto ver como nuestro viejo y querido lenguaje xBase va retomando fuerza otra vez, es impresionante la cantidad de cosas que se están haciendo para (x)HB, y esto ya no hay quien lo pare, el xBase está de vuelta nuevamente.

3 comentarios:

Jaime Irurzun dijo...

"[...] todo parece indicar que las cosas en mundo visual de xHarbour están a punto de cambiar y de manera muuuuuy radical. [...]"

¿Y esto...? Cuenta!

Rene Flores dijo...

Jaime.....

Espera a la reunion de Olivares 2000......

Anónimo dijo...

Rene:

Queria comentar algo.
En tu Post leo
[...]como fueron en su momento What32, Whoopi y MiniGUI, sin duda esta última la mas éxitosa de todas, desafortunadamente el creador del proyecto ha decidido cancelarlo definitivamente, con lo cual MiniGUI ya no será desarrollado más,[...]
Sin embargo, deseo aclarar que el proyecto Minigui sigue abierto y en constante actualización por su creador Roberto Lopez.
Todo esto se ve reflejado en los Foros, ya sea en Ingles, castellano o portugues, y en la publicación de nuevas versiones.

Saludos

Gerardo Daniel Pérez