ClearLight está escrito en Visual Basic 6, utilizando las
mejores prácticas de desarrollo orientado a objetos disponibles en ese
lenguaje.
Para este momento (abril de 2010), ClearLight tiene acumulados cerca de doce
años de actividad de investigación y desarrollo, y ha sido objeto de cientos
de revisiones.
Está formado por un programa principal, integrado por 420 unidades de código
fuente, diez DLLs de aplicación (extensiones de la aplicación externas al
programa principal) y diez componentes de uso general (controles de usuario
y DLLs de uso general). Las aplicaciones de punto de ventas (cinco
aplicaciones genéricas y varias adaptaciones a requerimientos específicos de
cliente) comparten el nucleo de la aplicación principal al que
se agregan los componentes de interfaz con el usuario para la entrada de
datos de las ventas y -en algunos casos- clases que implementan conceptos
adicionales (como las mesas o los ambientes en el punto de venta para
restaurantes).
Con esta simple estructura, hemos logrado adaptarnos a los requerimientos
específicos de más de mil clientes, gracias a las ventajas derivadas de su
excelente diseño, cuyo objetivo primario fue la extensibilidad.
La extensibilidad es la capacidad de los sistemas de adaptarse a
requerimientos desconocidos durante la fase de diseño.
Se han desarrollado extensiones para el control de venta de boletos en
agencias de viaje, control de ocupación y facturación en hoteles, control de
ingresos para líneas aéreas, control de procesos de producción y talleres de
reparación de equipos. En cada una de ellas, sus autores se limitaron a
crear la funcionalidad especial requerida por el área de aplicación,
especialmente a nivel de uevas interfaces de usuario, y utilizan los objetos
de ClearLight (ofrecidos directamente por la aplicación mediante una
factoria de objetos "conscientes" del entorno) para procesar todos los
efectos administrativos de las operaciones.
En estos doce años hemos logrado adaptarnos a los requerimientos más
variados y específicos que se pueda imaginar, trabajando sobre una versión
única del código fuente.
Lo más bonito de todo el asunto es que todos los mecanismos de
extensibilidad forman parte del sistema operativo, y que bastó con
comprometernos con una arquitectura abierta para que todo eso fuera posible.
Los componentes de extensión pueden ser de varias clases: DLLs de extensión
de los formularios, DLLs de extensión de aplicaciones y -sobre todo- el uso
de pequeños programas desarrollados en VBScript, un lenguaje simple y
totalmente estandarizado que viene con todas las versiones de Windows, desde
Win95 hasta Windows 7 y Windows Server 2008. Independientemente de la
naturaleza de estos componentes, todos interactuan con el modelo de objetos
de ClearLight.
Por otra parte, ClearLight trabaja contra bases de datos manejadas por
cualquier versión de SQL Server 2000 o posterior. Las primeras versiones
-orientadas a empresas muy pequeñas- utilizaban bases de datos de Microsoft
Access. A partir de la versión 3 incorporamos soporte para SQL Server y
MySQL. En la versión 5 descontinuamos el soporte para MySQL (nadie lo usó
con ClearLight) Y en la versión 6 descontinuamos el soporte para bases de
datos de Access, que perdió por completo su sentido; la única razón para
usar BBDD de Access era que no requerían la compra de ningún producto
adicional, y desde hace varios años están disponibles las versiones Express
de SQL Server, totalmente gratuitas, que producen un excelente rendimiento
atendiendo hasta doce terminales.
SQL Server permite el desarrollo de extensiones declarativas en la propia
base de datos, aumentando así de manera considerable el potencial de
extensibilidad de las aplicaciones que lo usan.
En cualquier sistema de calidad comercial es posible adaptar los formatos de
los documentos a cualquier requerimiento. Tambien es común que los usuarios
puedan definir nuevos reportes. Pero los métodos de extensibilidad de
ClearLight permiten alterar los efectos de las operaciones, modificar el
diseño de los formularios, agregar elementos de información a las entidades
y soportar nuevas aplicaciones constuídas sobre su sólida infraestructura de
objetos de negocios.
Por supuesto, todas estas ventajas deben ser realizadas por un desarrollador
familiarizado con las herramientas requeridas y con el modelo de objetos de
la aplicación. Pero podemos afirmar que ClearLight está en capacidad de
adaptarse a cualquier requerimiento.
Tiene sus limitaciones, por supuesto, pero el camino no termina hoy.
Sobre la obsolescencia de las herramientas
Hemos recibido un par de críticas acerca del lenguaje usado para la
construcción de ClearLight.
Visual Basic 6 fue lanzado al mercado a comienzos de 1999, y descontinuado a
partir de 2005. El proyecto que eventualmente condujo a la creación de
ClearLight comenzó a desarrollarse a comienzos de 1998, usando Visual Basic
5.
Su "reemplazo", Visual Basic .NET, del cual se han lanzado hasta ahora cinco
versiones, no es compatible con el código escrito en VB6. Tanto Microsoft
como otras empresas han tratado de desarrollar herramientas de migración,
pero hasta ahora no existe ninguna capaz de generar una aplicacion en VB.Net
a partir de un proyecto en VB6 sin necesidad de una importante intervención
manual.
Si hoy en día comenzaramos el desarrollo de una nueva aplicación,
seguramente no optaríamos por VB6. Tampoco por VB.NET, basado en un estandar
propietario. Tal vez nos decidiríamos por Java, o por C#.
Pero ClearLight tiene diez años de desarrollo acumulados.
Y diez años de desarrollo, incluyendo técnicas y métodos de extensibilidad
basados en las características del sistema operativo no son algo que se
descarte en favor del último grito de la moda en tecnología.
El único peligro sería que el sistema resultara incompatible con las nuevas
plataformas. Pero eso es improbable en el mediano plazo.
Por una parte, los componentes de soporte de tiempo de ejecución requeridos
por las aplicaciones escritas en VB6 es el mismo que requiere VBA (Visual
Basic para Aplicaciones), la tecnología utilizada para la automatización de
Office. Microsoft intentó descontinuar VBA en la versión 4 de Office para
Mac, y el fracaso fue tan rotundo que tuvieron que reponerlo para no perder
el mercado. Office 2007 y Office 2010 incluyen VBA. Incluso, para Office
2010 se publicó una versión de VBA con extensiones para equipos y sistemas
operativos de 64 bits.
Adicionalmente, la inversión colectiva en el desarrollo de aplicaciones para
VB6 y VBA, tanto a nivel empresarial como comercial es tan cuantiosa (para
2003, el número de desarrolladores estrictamente profesionales utilizando
VB6 como herramienta primaria era de seis millones, hoy en día puede haberse
reducido a la mitad, pero sigue siendo un número considerable) que cualquier
sistema operativo que no las soporte está condenado al fracaso inmediato.
De manera que las críticas basadas en el hecho de que ClearLight
esté desarrollado en VB6 son, utilizando una calificación generosa,
superficiales.
Pero tampoco es que estemos "dormidos en los laureles". Entendemos
que las plataformas evolucionan y que no se puede vivir en la ignorancia de
esa evolución. Desde
hace cuatro años venimos desarrollando en paralelo patrones de arquitectura y
técnicas de construcción y extensibilidad, tanto en Java como en C# (la
decisión sobre qué camino tomar aun no está clara), con miras a estar
preparados para suministrar un reemplazo de nuestra aplicación en el
improbable caso de que se produzca una ruptura de compatibilidad en las
plataformas.
De manera que ni ClearLight (cuya última revisión terminó hace unos minutos)
ni las herramientas usadas para su desarrollo y mantenimiento, sufren de más
obsolescencia que la que sugieren las necesidades de mercadeo de las
empresas que producen las nuevas herramientas.
Por último, en este momento no hay en el mercado ningún sistema que
aproveche todas las innovaciones tecnológicas. Las herramientas más usadas
por nuestros competidores son Visual Fox Pro (descontinuado desde 2007),
Delphi (excelente herramienta, pero con una comunidad de usuarios más
reducida que la del largamente moribundo VB, y que ha cambiado seis veces de
dueño en los últimos quince años), todavía hay quien vende
aplicaciones escritas en MS Access y el mercado de los puntos de venta sigue
dominado por copias piratas de SAINT para MS-DOS.
Las casas de software no somos fanáticos de la innovación, a menos que sea
la de nuestros productos. El software sólamente evoluciona si se dispone de
plataformas y herramientas de desarrollo estables, sobre las cuales se
puedan acumular investigación, funcionalidad e innovación metodológica.
Nosotros somos los que estudiamos "Design Patterns: Elements of Reusable
Object-Oriented Software", las RFC del W3C y las ponencias de la
ACM, mientras los aficionados hojean Computer
World.