martes, agosto 01, 2006

¿ Necesita FiveWin un IDE ?

Hace tiempo que pensé que el tema del IDE de FiveWin ya había quedado zanjado, cuando hoy en el foro de FiveTech Software apareció nuevamente la pregunta sobre el trabajo de Patrick Fan, el Visual FiveWin.

Prefiero expresar aqui mis opiniones que en el foro de FiveTech, por obvias razones, este blog es mio y yo publico lo que quiero.... je je je.

Alguna vez, hace ya varios años, charlando un dia con Ignacio Ortiz de Zuñiga en Madrid, le pregunté sobre la posibilidad de tener un IDE para FiveWin, y me comentaba, no sin justa razón, que la forma en que está concebido FiveWin no fue planeada para tener un IDE.

Si no llevas mucho tiempo en esto de FiveWin, quizá no estas familiarizado con las 3 capas sobre las cuales está construido FiveWin:

Nivel Comandos XBase -> Nivel Programación Orientada a Objetos -> Nivel funciones WinAPI

En su concepción FiveWin esta diseñado para utilizarse en una primera instancia con comandos, a usanza de DBase y de Clipper 5.x, lo que lo hace mas familiar para el programador que viene de Clipper.

Para un Clippero de la vieja escuela, es mucho mas facil utilizar comandos, y esa es la fortaleza de FiveWin, FW trabaja en la forma en la que el programador de Clipper está acostumbrado a trabajar, lo cual le permite tener una curva de aprendizaje suave y sentirse familiar con el lenguaje y en poco tiempo entregar resultados.

A nivel comandos, el uso del IDE es totalmente inoperante, porque el modelo de comandos trabaja mas de manera mas procedural, mas al estilo de Clipper, es decir dialogos modales, interfases SDI.

Sin embargo, el uso de comandos a pesar de ser una forma eficiente de programar, y que entrega programas que se ejecutan sin problema, no explota al máximo la potencialidad que se logra cuando se dominan los objetos, que es el segundo nivel de programación dentro del mundo FW.

El nivel de objetos es mas bajo que el nivel comandos, pero es el nivel que mejores resultados entrega, sin embargo, es un nivel en donde muy poca gente se atreve entrar en primer lugar por el desconocimiento de conceptos basicos de Clipper como bloques de codigo, pero mas que nada por desconocimiento del motor de objetos.

Cuando te liberas del nivel de comandos (en realidad es un alivio dejar atrás los comandos), y bajas al nivel de objetos, se abre todo un nuevo mundo de posibilidades, no solo para explotar al maximo las capacidades de FiveWin y del mismolenguaje de programación, sino para crear tus propios componentes visuales, resultado de eso son clases como TGraph, TSBrowse y su hermano TSButton, los controles de CanalFive y otras mas.

Es en este punto donde comienza la separación de las interfases graficas.

(x)Harbour provee de un poderoso motor de objetos, heredado del motor objects original, sin embargo, contra lo que se pudiera pensar, la forma de defnir un objeto en (x)Harobur dista mucho de ser unica, aunque no lo creas, la definicion que usamos para crear una clase (CLASS.... ENDCLASS) es solo UNA de las tres formas en que puedes crear un objeto en (x)Harbour, ya que este provee de 2 sintaxis adicionales, una compatible con CA-Visual Objects y otra compatible con un motor de objetos muy popular en el mundo de Clipper llamado Class(y).

A partir de la POO se han creado muchas interfase graficas para (x)Harbour, de hecho, el "nucleo" que te permite "bombear" mensajes al Kernel de Windows es parte del código fuente de (x)Harbour y viene incluido, derivado de la publicación de este "nucleo" se han creado otras interfases graficas como las T-GTK MiniGUI, HWGui, Xailer, Visual xHarbour, etc. Es en este punto donde entran en juego los IDEs.

La pregunta ahora puede se podria cambiar.... en vez de ser ¿ Necesita un IDE FiveWin ?, la pregunta sería ¿ necesita el programador de FiveWin un IDE ?.

Hace mas de un año que estoy trabajando con Xailer, y la verdad, estoy sorprendido de cuanto tiempo pude vivir sin un IDE, y cada día comprendo mas a los programadores de Visual Basic, Delphi, C++ y otros, que nos miran a los Fivewinneros como sacados del tunel del tiempo.

Llevo mucho tiempo sin tener que escribir un REDEFINE, de poder trabajar mas enfocado con en la resolución del problema y perder menos el tiempo diseñando pantallas por un lado, verificando IDs, y programando comportamientos de controles "a pie", cuando los puedo hacer con algunos clicks del mouse.

Si no haz utilizado un IDE para programar con (x)Harbour, no te pierdas de la oportunidad de conocer algo nuevo, actualmente hay 3 productos que pudes probar: el Visual xHarbour que puedes bajar de www.xharbour.com, el de Harbour MiniGUI www.harbourminigui.com y por su puesto el de Xailer www.xailer.com.

El secreto para poder aprovechar un IDE es conocer bien la programación orientada al objeto, tener la documentación de las clases y tener bien claro los 3 componentes basicos de todas las clases : Datas, metodos y eventos. Si tienes buen conocimiento de POO te aseguro que en poco tiempo estarás utilizando IDEs para desarrollar tus aplicaciones y te estarás haciendo las mismas preguntas que yo.

1 comentario:

Anónimo dijo...

Hola, yo lo veo de dos puntos de vista.

Desde el punto de vista del dueño de FiveWin, no. Si Antonio pensara que es necesario, lo habría hecho o lo habría mandado hacer.

Mi punto de vista es que para un programador en FiveWin lo que le vendría bien es un centro integrado que aunara todas las herramientas. Gestor de proyectos, editor de texto, editor de recursos, debugger y alguna cosa mas. Si a eso le quieres llamar IDE pues..., si, le haría falta uno.

Un saludo

Paco