Nosotros los programadores de Visual Foxpro; estamos muy "mal acostumbrados" a su IDE, es decir, nos encanta la Consola de Comandos, el DataEnvironment, las propiedades del Form y las Clases Visuales entre otras cosas. Todo junto hace que el desarrollo de aplicaciones orientadas a Bases de Datos sea increíblemente rápido y más cuando se usa DBF (a pesar de que su auge fue en los 90's, aún se siguen ocupando en proyectos viejos pero vigentes).
Creo que la diferencia es que Fox cuenta con lo que yo llamaría "La ventaja del Local", es decir, dentro del mismo IDE se pueden crear los Programas, Formularios, Bases de Datos, Gestión de Gráficos, Aplicaciones de Terceros, Archivos de Configuración, Reportería y demás. Toda su arquitectura nos mal acostumbra y es por eso que a la hora de buscar otras alternativas de lenguajes de programación, siempre nos estamos preguntando cosas como ¿Tiene consola de comandos?, ¿Se pueden gestionar las Bases de Datos dentro del IDE?, etc. Siempre estamos comparando los lenguajes con VFP y eso me parece por una parte bien y por otra mal; me parece bien porque lo que estamos tratando de buscar es un lenguaje donde nos sintamos un poco cómodos con relación a VFP, pero por otro lado me parece mal porque a mi criterio, no es posible comparar y juzgar lenguajes entre sí porque se supone que cada lenguaje es bueno para un área lo que nos da como resultado un empate tecnico entre TODOS los lenguajes de programación existentes, lo más que se puede hacer es comparar sus características y tratar de adaptarlos a nuestros requerimientos de programación o lo que es peor pero lógico; adaptarse a su paradigma.
En fin, dentro de éste enredo de comparaciones y testeos de otros lenguajes, me he creado una serie de preguntas que yo mismo trato de responder cada vez que testeo un nuevo lenguaje, las preguntas son las siguientes:
1. ¿Puede accesar mediante ODBC / Acceso Nativo a tablas DBF?
El acceso a tablas DBF es importante porque se supone que tenemos aplicaciones que por lo menos utilizan una tabla DBF y necesitamos mantener esa compatibilidad mientras ocurre la transición de la herramienta. Otro motivo puede ser porque estamos muy acostumbrados a usar un fichero DBF para almacenar datos de configuración de la empresa o la aplicación.
2. ¿Se pueden ejecutar Scripts externos?
Ésta pregunta para mi vale oro porque sin esta posibilidad no hay manera de crear software flexible, es decir, yo en lo personal siempre dejo puertas traseras o backdoors en todas mis pantallas de mantenimiento y transaccionales. Esto da como ventaja el poder manipular y/o personalizar nuestras pantallas según el requerimiento del cliente.
En lo personal ocupo siempre los backdoor para personalizaciones y validaciones de datos en distintas acciones del formulario (nuevo, guardar, eliminar, etc)
Por lo tanto las ejecuciones de scripts son fundamentales a la hora de evaluar un lenguaje de programación, nótese que estoy preguntando por una característica que deberían de tener todos los lenguajes como plus ya que de lo contrario estaríamos creando software rigido o enlatado y eso no es bueno para los que desarrollamos software personalizado.
3. ¿Qué tan flexible es el reporteador?
Otro talón de aquiles que muchos lenguajes padecen, bien sea porque no tienen un reporteador tan siquiera decente o peor aún, que dependen de aplicaciones de terceros para lograr este fin. Busco siempre un reporteador flexible porque otros de los dolores de cabeza es la personalización de comprobantes o reportes para las distintas empresas que usan nuestra aplicación. No es posible pretender que todas las empresas usan los mismos reportes; cada empresa tiene su manera de trabajar, algunas usan más datos que otras y por lo tanto la personalización de reportes es fundamental a la hora de buscar alternativas de software.
4. ¿Se puede integrar con otros ejecutables creados por el mismo lenguaje?
No es tan relevante pero sería bueno que se puedan integrar otros ejecutables a nuestra aplicación porque eso nos da como resultado el poder desarrollar módulos adicionales que el cliente necesita, es decir, les coloco un ejemplo:
Supongamos que vendemos software contable, perfecto, un software contable es casi que universal así que se le puede vender a empresas de diferentes rubros. Digamos que le vendemos nuestro software a una clinica odontológica pero ésta reclama por el control de las historías clinicas y agenda de cita entre otras cosas. Nuestro software gestiona facturas más no historias clinicas ni mucho menos odontogramas ni profilaxis, entonces ¿Cuál es la solución?, crear un módulo adicional para gestión de clinicas odontológicas que se pueda integrar a nuestra aplicación de ventas para llevar el control de la facturación y cartera. En VFP ésto es 100% realizable y gracias a esa ventaja es que podemos vender software contable con cientos de módulos adicionales que se integran perfectamente y además nos aumentan las ventas porque otros clientes puede que necesiten nuestros módulos.
Éstas preguntas son muy fundamentales para mi porque cada una de ellas representa al 100% mi necesidad de desarrollo y de ellas dependerá la flexibilidad que pueda brindar como empresa a mis clientes, repito nuevamente que no es posible para mi desarrollar software enlatado porque al menos en el pais donde resido no tendría salida de ventas porque de 10 empresas que compran software, las 10 necesitan personalizaciones de todo tipo. Es por eso que el desarrollo de software flexible o personalizado es muy importante para mi ya que de lo contrario me moriria de hambre al tratar de vender enlatados.
Espero que éste artículo te haya servido de guia para evaluar tus propias preguntas.
Hasta la próxima!
No hay comentarios:
Publicar un comentario