jueves, 4 de marzo de 2010

FreePascal y Lazarus el Renacer

Finales del año 2009 empecé a desarrollar un proyecto interesante el cual consistía en desarrollar un reproductor multimedia que tenga la lista de reproducción en una base de datos y se realicen actualizaciones periódicas desde un servidor remoto. Una de las condiciones del proyecto es que se desarrolle íntegramente utilizando software libre.
Mi experiencia como desarrollador me indico que la plataforma de desarrollo podría ser la siguiente:
  • Motor de base de datos Firebird
  • Entorno de desarrollo del reproductor multimedia Qt basado en libvlc
  • Actualización de la base de datos QT
  • Descarga de videos , se desarrollará en QT
  • Interfaz de creación de la programación Freepascal y Lazarus.
En este articulo me centraré principalmente en el desarrollo de la interfaz del módulo de creación y mantenimiento de la base de datos desarrollado en Freepascal y Lazarus.
Estuve tentado a utilizar Java para el desarrollo de esta interfaz pero lo que necesitaba era optimización de recursos y velocidad en el desarrollo, no era necesario levantar todo el jdk para cargar todo el aplicativo, además valgan verdades una aplicación desktop Java siempre es más lenta que una aplicación nativa.
He seguido de cerca el proyecto Lazarus desde que apareció y la verdad que las versiones antes de las 0.9 eran versiones muy inestables y casi no se podía trabajar con ellas, gratamente me sorprendí al testear la versión 0.98 la cual es una versión estable y se puede trabajar con las ventajas del compilador freepascal de ser multiplataforma ejecutándose en Windows, Linux, freeBSD, etc. La productividad de freepascal es bastante buena pudiendo desarrollar interfaces para mantenimiento de base de datos sin mucho esfuerzo y en poco tiempo.
Los componentes para conexión de base de datos son bastante buenos y permiten el desarrollo compatible con Delphi.
Todo esto me decidio que el desarrollo de esta parte del proyecto se desarrollaría con Lazarus y Firebird como base de datos, hablar de las bondades de Firebird estaría de más hay varios artículos al respecto en este Blog.
Una de las cosas que me llamó la atención fue el tamaño del ejecutable un poco grande lo cual se justifica pues tiene enlazado de manera estática las librerías , dando independencia al ejecutable, este al inicio no se valora pero cuando el ejecutable se tiene que correr en diferentes distribuciones vale la pena esos MB de mas, antes de distribuir finalmente el aplicativo este se puede reducir de tamaño quitando la información de depuración y reduciendo este con programas como UPX, finalmente el resultado lo vale.
Otra cosa que me sorprendió fue el soporte de drag and drop y la implementación de controles shelllistview y shelltreeview de manera muy sencilla.

Una tremenda alegría al comunicar esta noticia a todos los desarrolladores amantes de pascal !ya contamos con un entorno estable, productivo y multiplataforma! LAZARUS.
Mucha gente en el mundo del desarrollo creia que el lenguaje pascal había muerto el nombre Lazarus lo dice todo "FreePascal y Lazarus el Renacer"

Bueno, a continuación unas capturas de pantallas, ya que las imágenes hablan más que mil palabras:





Pequeño detalle me olvidaba todo esta corriendo sobre fedora 12 Constantine aca una captura.