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.

6 comentarios:

Anónimo dijo...

porque usas software que nadie conoce ni utiliza?. y cuanto te demora hacer el proyecto?. trabajas solo o en equipo?

Oscar Zelada Pozo dijo...

Hola, te comento algo para que estés un poco al tanto… El lenguaje pascal es un lenguaje muy utilizado a nivel mundial y para este tenemos diferentes IDEs dentro, de los cuales, el que mas destaca es Delphi en la plataforma Windows. Existen un sin fin de aplicaciones desarrolladas en este lenguaje, así como una gran cantidad de componentes reutilizables para diferentes fines.

En entornos Linux no tenemos un visual basic o algo parecido para desarrollo RAD de aplicaciones Desktop Nativas. Existen entornos para desarrollo como Kdevelop /QtCreator o Glade en el mundo de C/C++ pero no hay un entorno RAD semejante al que estamos acostumbrados en Windows; hubo un intento de Borland, (la antigua propietaria de Delphi) quien creó un entorno llamado Kylix que era un delphi para linux, pero no tuvo mayor acogida. Como entenderás Borland, Kilix, Freepascal utilizan Object pascal como lenguaje de programación, Lazarus es un entorno RAD estable, poderoso y productivo.
Sobre tu comentario, me demore de 2 a 3 días en ese modulo. Espero haberte aclarado el tema un poco

Anónimo dijo...

Para Anonimo
El que tu desconozcas algun tipo de software, no significa que no lo utilice nadie.
El tiempo de desarrollo de los proyectos no es funcion directa del lenguaje de programacion
si no de distintos tipos de factores (Proceso de desarrollo, herramientas RAD, componentes, etc.)
Es altamente recomendado el desarrollo en equipo, dependiendo del tamaño del proyecto

luk2009 dijo...

Saludos Oscar, muy interesante el proyecto y me alegra leer tus opiniones sobre lazarus. Te comento que publicare un comentario y un enlace a tu pagina en www.delphiaccess.com en el espacio dedicado a lazarus. Espero verte por esta pagina con tus aportes e ideas sobre lazarus.

Fabio Ferreira dijo...

Oscar que bueno que la comunidad Lazarus crezca cada dia mas, la verdad mi primer y único amor fué delphi y ese amor se ha ido transmitiendo a Lazarus.
Me impresiona que un profesional con un alto perfil como tú si fije en este tipo de herramientas (lo cual veo muy bueno)

Unknown dijo...

Acaso no esta Skype desarrollado en lenguaje pascal...asi que del todo no es desconocido...yo lo e usado mucho para hacer mi propio procesador de texto, y ahora deseo embarcarme en una aplicacion de elementos finitos para Ingenieria