miércoles, 13 de junio de 2012

OPENSOURCE ... ¿temblamos?

¿Miedo al OPENSOURCE?


   Después de mucho tiempo para tomar la decisión correcta, he elegido sumarme a uno de los muchos proyectos OPENSOURCE a los cuales uno se puede apuntar y colaborar.

   El mundo al que me atrevo a confrontarme es algo que a muchos de nosotros, que pertenecemos a una generación que sólo ha conocido software con licencia, nos da miedo, pánico ó yuyu. En fin podríamos llamarlo de muchas maneras, pero lo cierto es que estos motivos nos apagan ante estas decisiones.

   Bien sea porque seguimos en la creencia que este mundo no tiene apoyo, o bien sea porque las circunstancias de nuestra vida nos obligan a no aventurarnos (trabajo, vida social, falta de tiempo, etc), el caso es que hacemos pequeñas escapadas y nos adentramos en él. Pero estos mismos motivos vuelven a apagarnos y a dejar abandonada esta decisión.

   Habiendo resumido los motivos de una negativa a esta aventura, empezaremos a detallarla. Como muchos de nosotros he trabajado en diferentes empresas y con diferentes lenguajes de programación. Pero el que ha predominado durante mucho tiempo ha sido Delphi (Object Pascal). Es por este motivo que decidí empezar a desarrollar OPENSOURCE con LAZARUS.

   Lazarus no es ningún proyecto humanitario, aunque es lo más parecido a esto bajo el concepto de desarrollo/programación OPENSOURCE. Podríamos decir que es un clon de la versión de Delphi 7 que en su día abrió el mercado de la programación bajo Windows, Linux, Unix, Android e IOS para pascal. Su compilador es FreePascal, cuya existencia es anterior a este proyecto. Así que podríamos deducir que mucho código desarrollado para Delphi se puede reajustar y usar bajo Lazarus.

   Ya hice mis primeros desarrollos en este IDE hace dos años, pero los aparqué y ahí se quedaron. Aunque en su día me gustó mucho este producto, no ha sido si no hasta hace no menos de 6 meses que me tomé en serio su uso.

   Una de las necesidades que he tenido durante muchos años, es migrar un antiguo desarrollo para contabilidad. Este proyecto en su día lo realicé en Basic, pero una muy vieja versión (gwBasic o qBasic, ahora no recuerdo), con unas liberías de indexación llamadas Btrieve. Como siempre he tenido el problema de cómo retomo este proyecto, por donde empiezo, como lo cambio … no me decidía.

  Había oído hace tiempo del proyecto CONTALINEX, desarrollado en Lazarus. En su día empezó siendo un proyecto bajo Killyx (versión de Delphi para linux desarrollada por Borland, actualmente abandonado su desarrollo), desde entonces ha tenido un rápido desarrollo y muy bueno durante sus primeros años. Llegando hasta el punto de cambiar el proyecto a Lazarus y abandonando su desarrollo por considerarlo funcional en su revision 31. El motivo de no haberse continuado su desarrollo probablemente desde finales del 2007 ha sido porque sus desarrolladores le dieron mucho apoyo, hasta el día de hoy, a otro proyecto homólogo a este, FACTURLINEX. Este proyecto también se mantiene en Lazarus.

   Haciendo un poquito de historia CONTALINEX, FACTURLINEX, RECIBOLINEX y NOMINALINEX fueron un conjunto de herramientas liberadas por la Junta de Extremadura bajo licencia GPL y pretendían dar soluciones de gestión comercial y de contabilidad a cualquier empresa. Por detallar algo de lo que se desarrolló para estos productos y que se está manteniendo hasta el día de hoy, CONTALINEX permite edición del Libro Mayor, Libro Diario, Cuentas de Pérdidas y Ganancias, Balances, etc.

   FACTURLINEX es una aplicación cliente-servidor que te ofrece la posibilidad de ejecución multiusuario para la gestión integral de la facturación desde una pequeña empresa hasta una grande con 9999 sucursales. También tiene la posibilidad de funcionar tanto en tiendas (en las que las operaciones son principalmente de gestión de la información de las ventas, el almacén y la caja), como en centrales administrativas (en las que se realizan operaciones de facturación, pedidos, contabilidad gestión estratégica). Todo esto también permite conexión entre todas ellas en tiempo real.

   Pero una de sus mejores ventajas de todos estos proyectos conjuntos es que la licencia del software es GPL (licencia de uso público), con lo que sus usuarios tienen total libertad para instalar el sistema en nuevos centros de trabajo, sin que esto implique nuevo coste de licencias. Otra ventaja es que el grupo de desarrolladores que le dan soporte (participan en la resolución de cualquier problema), pone a disposición el código fuente actualizado de cualquiera de los proyectos, además de una extensa documentación técnica, con lo que cualquiera puede pedir que le realicen cambios a estos proyectos ó aventurarse y realizarlos uno mismo. Por supuesto, cualquier cambio tiene que ser notificado a este grupo de desarrolladores para seguir continuando con el progreso de estos paquetes.

   Por esto y otros muchos criterios de elección, es por los que me aventuré hace unos meses a modificar el código de CONTALINEX, bajo la guía y supervisión de los foros de desarrollo de los proyectos antes mencionados. Motivo, el comentado anteriormente, migrar mis conocimientos de contabilidad a una aplicación de escritorio multiusuario y multiplataforma.

   Bien a partir del día de hoy pienso detallar en este blog los cambios aportados y sus futuros desarrollos. Todo lo que hasta ahora he aportado al proyecto lo iré detallando en futuros post. También será usado este blog para guiar a futuros desarrolladores con esta herramienta IDE tan versátil como es LAZARUS.

   No quisiera cerrar este post, sin comentar algo muy importante. Una de las necesidades mayores que tiene este proyecto es la ayuda de sus usuarios. Así que cualquier modificación necesitada, cualquier aporte ó comentario para la mejora de su uso, incluso cualquier crítica … serán todos bien recibidos y con el tiempo aportados.

   Por lo que paso a detallar cuales son los foros de estos proyectos antes mencionados. Estos se crearon en su día para recoger y dar respuesta asistencial a todos vuestros comentarios, sugerencias y necesidades.