jueves, 29 de abril de 2010

Respuesta para la Actualización al Clipper 32 bits

Hola Fermín.


Tú has avanzado por tus requerimientos en el Clipper un poquito más lejos que lo que yo he alcanzado. Por ejemplo, no he intentado enlazar el Clipper con PHP o sacar la impresión a pdf, aunque mis aplicaciones si imprimen en impresoras de windows.
Sin embargo, te puedo ahorrar algunos pasos que en mi experiencia ya los he sufrido :
En primer lugar, no es posible correr Clipper en ambiente 64 bits, no lo intentes ni siquiera.
Ahora, tienes tres vertientes posibles al momento de tomar tu decisión para hacer el upgrade de tu software, dependiendo del camino hacia donde quieres avanzar:
    1. Continuar con un ambiente similar al de clipper, donde puedes migrar tus funciones, me explico, tu código. No puedes usar las viejas librerías, porque la estructura de este software es diferente. El harbour es un compilador cruzado y trabaja bajo una filosofía distinta: traduce de lenguaje alto nivel a lenguaje C y luego compila y enlaza, por lo que las viejas librerías de 16 bits simplemente no puedes integrarlas. Si vas a emplear HMG, vas a emplear las API de Windows, lo que te obliga a emplear OOP (programación orientada a objetos) dentro de la planificación de tu software. Las aplicaciones de clipper utilizan programación estructurada y alguuuuuuuuun principio de OOP en las clases de objetos Get, Browse y Error, aunque no podemos ni heredar ni crear nuevas clases, sólo jugar con los objetos ya creados. Entonces, cuando migras tu aplicación, te enfrentas al hecho de que debes replantear completamente tu enfoque: crear objetos, y luego crear funciones que responden a los eventos que sufren dichos objetos. ¿Te das cuenta que es muy diferente al enfoque procedimental lineal al que estamos acostumbrados con Clipper? Lo bonito de HMG es que como ya conocemos la estructura del lenguaje, la curva de aprendizaje para dominarlo es sumamente veloz, ya que los ejemplos que trae realmente funcionan y están bien explicados. Además la IDE con la que se trabaja para crear las ventanas ya trae el compilador y genera unos ejecutables pequeños y funcionales. Inclusive ya puedes agregar objetos Activex (los que originalmente usaba visual basic) para enlazarte a aplicaciones más grandes.
    2. Abrirte al ambiente web y trabajar con HTML-Javascript-PHP. Tienes la ventaja de que tus aplicaciones correrán en servidor, se enlazarán con todas las bases de datos (inclusive dbf), y correrán en todos los ambientes (Windows, Apple y Linux). Obviamente deberás volver a empezar con tus aplicaciones y necesitarás de una curva de aprendizaje mayor. Las dificultades de este enfoque son las siguientes:
      1. No es ni procedimental ni OOP. Es otra cosa, es tratar de usar un lenguaje diseñado para presentación de texto y adaptarlo mediante librerías a un sinfín de cosas posibles. Así que olvídate de la elegancia del Clipper, Foxpro o Visual Basic.
      2. Las validaciones son lo más horrible, todo es texto y debes convertirlo en los tipos de datos a través de funciones.
      3. A pesar de todo, los resultados son muy bonitos, debido a la versatilidad para el trabajo con multimedia.
    3. Entrar al mundo Java. Muchos me lo han recomendado pero no he tenido la oportunidad de hacerlo. Es un lenguaje elegante, versátil y ultramoderno, y corre dentro desde un computador con windows hasta un celular. Sus problemas son los siguientes:
      1. Para una aplicación seria los requerimientos de máquina son enormes.
      2. A veces las actualizaciones del motor de java no son compatibles con las versiones previas.
      3. Requiere mucho empeño, la filosofía es totalmente orientada a objetos inclusive desde el código de programación, y las IDE como Eclipse o Jbeans son un tanto crípticas.

Analiza lo siguiente:
  1. ¿Requieres una migración rápida o puedes dedicarle tiempo?
  2. ¿Tus clientes van a permanecer aún mucho tiempo con máquinas de tecnología Windows XP? O van a migrar pronto a Windows 7 o dar el salto a Linux??? Esto te dará una señal de lo pronto que debes empezar la migración.
  3. ¿Vas a requerir que tu aplicación se monte en la web?
  4. ¿Cuál es la capacidad adquisitiva de mis clientes a la hora de comprar nueva tecnología? ¿Pueden adquirir un servidor dedicado para tu aplicación?

Eso para empezar, espero tu respuesta.

No hay comentarios: