Como usar Harbour minigui...algunos conceptos (por Ricardo Sassy) 28-agosto-2009 |
- xHarbour y Harbour
- son intérpretes que toman un código fuente en formato xBase (prg) y lo transforman a lenguaje "C".
- ooHg y Minigui
- son librerías que permiten incluir comandos y funciones de manejo de ventanas dentro de programas xBase (prg).
- Qac
- es un utilitario que automatiza todo el proceso de interpretació n,
compilación, linkeo y generación de ejecutable, evitándose el uso por separado
de cada uno de los programas necesarios para obtener un ejecutable (exe) desde
un fuente (prg).
Para generar programas en formato ventana (gráfico) se necesita lo
siguiente:
- Un intérprete que traduzca el código xBase a formato pseudo C (etapa de PRG a C)
- Una librería gráfica para poder usar (optativamente) comandos de ventanas (archivo LIB).
- ooHg
- Minigui Experimental
- Minigui Oficial (Hmg)
- Un compilador para compilar el programa en fomato C (etapa de C a OBJ)
- Bcc5.x de Borland
- PellesC
- Mingw
- Un enlazador para obtener un ejecutable (etapa de OBJ+LIB a EXE)
Todos estos elementos pueden ser combinados libremente, o sea que se puede
usar -por ejemplo- xHarbour+Minigui+Mingw u
otra combinación podria ser Harbour+ooHg+Bcc55.
La combinación del intérprete (xHarbour o
Harbour) más el compilador (Bcc u
otros) equivaldria el reemplazo del compilador Clipper, que permitía
transformar un prg en obj.
Luego las librerías gráficas (ooHg u
otras) funcionan de manera equivalente a todas las librerías de terceros que se
podían usar con Clipper (Superlib, Nanforum, etc.), o sea que su uso no es
obligatorio salvo que se quiera obtener un programa de "ventanas".
Si bien las características de las librerías son similares entre si, cuando
se opta por una librería gráfica y se empiezan a escribir programas se hace
dificil pasar a otra librería porque la sintáxis no es del todo compatibe entre
si (salvo que se programe de manera muy neutra sin usar las "extensiones" de
cada librería).
Algo similar ocurre con xHarbour y
Harbour ya que si bien son "parecidos" no son "lo mismo".
Por eso es muy importante hacer de antemano un "estudio de mercado" y luego
elegir las herramientas con las que se va a trabajar definitivamente.
Como dato que ayude a tomar una decisión te menciono algunas de las
características (es una opinión personal y subjetiva):
- xHarbour
- tiene más funciones y
extensiones pero está virando lentamente a una plataforma comercial. No seria
raro que en el futuro las mejoras y agregados sean sólo de pago.
- Harbour
- estuvo un tiempo bastante
quieto pero hace un año recobró nuevos brios y está en un nivel de desarrollo
muy estable y completo.
- Hmg
- es la librería que de alguna forma
marca el rumbo. Su creador Roberto Lopez privilegia la estabilidad por sobre la
funcionalidad. No permite notación oop pura. Las nuevas versiones se liberan
muy espaciadamente pero su uso es altamente confiable.
- Minigui Experimental
- es la más
completa y que más extensiones tiene, pero su núcleo está basado en vectores y
matrices por lo que su aprovechamiento de la memoria y velocidad de trabajo no
son las ideales (con riesgo de que en determinado momento el núcleo colapse).
No permite notación oop pura. Muy frecuentemente aparecen nuevas versiones con
correcciones de bugs y nuevas funcionalidades.
- ooHg
- es una librería que no tiene la
totalidad de las extensiones de la experimental pero su funcionamiento es muy
estable y velóz. El código ejecutable que genera es muy compacto y eficiente.
Permite notación tradicional, semi oop y oop pura. Es ideal para programar
mediante el uso de clases y objetos. No aparecen nuevas versiones muy
frecuentemente pero los bugs denunciados son corregidos casi
instantaneamente.
- Bcc55
- es uno de los compiladores más
utilizados pero no genera ejecutables de 64 bits y hay algunas dudas acerca de
la licencia de uso del ejecutable final (royalties).
- Mingw
- lentamente está comenzando a ser
el compilador estándard. Permite generar ejecutables de 64 bits pero en 32 bits
el código ejecutable que genera es un poco más grande que el de Bcc. Por tratarse de un compilador GNU no hay
problemas de licencias.
- PellesC
- No es el más utilizado pero al
igual que Mingw no tiene problemas de
licenciamiento.
A todo esto puede sumarse el empleo de ide's para generar las pantallas en
forma asistida (wysiwyg) y las herramientas -como QAC o Brmake-
que simplican la tarea de juntar todo el trabajo de obtención del exe en un
único procedimiento, evitándose el uso de bat's o scripts de compilación.