Saturday, November 16, 2013

Una re-evaluación de Lazarus


Por motivos meramente académicos, decidí que mis alumnos aprendieran a usar una herramienta RAD. Muchos de ellos programan como hace años se hacía, usando un editor como VI o EMACS y llamando al compilador GCC. Cuando había un error, regresaban al editor y recompilaban hasta que, eventualmente el programa que estaban haciendo funcionaba.

Pero los sistemas RAD (Rapid Application Development) tienen un editor, compilador y depurador (debugger, pues), que hacen la vida del programador más fácil. Y en ese sentido Lazarus cumplía con las características de lo que andaba buscando. Amén de ser software de código abierto, la promesa de Lazarus es la de crear un entorno de programación que funcione igual en Mac OS X, Linux y Windows, y que es muy semejante a Delphi, que no es otra cosa que Turbo Pascal para Windows.

Mis alumnos usan dos plataformas en general: Mac y Linux. Uno que otro usa Windows. Como Lazarus se puede instalar en cualquiera de esos sistemas operativos, pensé que la vida iba a ser fácil y que de alguna manera se lograría la promesa de "write once, run everywhere", que no es otra cosa que "escríbase una vez y córrase en cuanta plataforma de cómputo exista". Pues bien, hallé que Lazarus tiene dificultades para instalarse en Mac OS X, por ejemplo, y que en Ubuntu (en red), es lento, insufriblemente lento. En mi Ultrabook -con Windows- no es un dichado de velocidad Lazarus, pero es aceptable su desempeño.

Pero ojalá hubiese sido sólo eso. Hallé que la biblioteca gráfica (aparentemente en Linux usa, por ejemplo GTK+), Lazarus presentaba resultados inconsistentes, dependiendo de si usaba Mac OS X, Linux o Windows. El más cercano de los resultados esperados se obtiene en Windows, pero en Mac OS X y Linux, la salida de ciertos filtros gráficos elementales resulta francamente inexplicable.

Quizás haya que decir que he comparado los resultados de Lazarus versus Delphi 7, el cual ya es una herramienta comercial muy bien pulida y que no padece las dificultades halladas al intentar utilizar Lazarus como una plataforma de desarrollo. En mi opinión, este sistema de código abierto es un ejemplo de un buen esfuerzo que aún no tiene un resultado lo suficientemente robusto y sólido para usarse en cualquier entorno de desarrolladores. Comparado contra el equivalente a este producto, en términos comerciales, Delphi 7 deja muy atrás a Lazarus.

Es evidente que los programas comerciales tienen un plus, que desde luego los hace más poderosos que los equivalentes de código abierto, pero obviamente hay que pagar un precio por ello -literalmente. Hay que decir, no obstante, que no todos los programas de código abierto tienen este comportamiento en donde finalmente la gente casi tiende a decidirse por la contraparte comercial. Pero en el caso de Lazarus he quedado insatisfecho y por qué no decirlo, decepcionado. Pensé que ya era una herramienta lo suficientemente trabajada. Me he equivocado, pero bueno, es un riesgo inevitable al usar software no comercial. Aún así, seguiré viendo los avances de Lazarus. Quizás la siguiente versión sea más púlida y corrija estos extraños errores. Ya veremos.

3 comments:

Daniel said...

Nada mejor que trabajar a la vieja escuela. Vi y GCC siguen y seguirán siendo herramientas útiles en el desarrollo de software. Invariablemente esto va cambiando y pues hay ciertas otras herramientas que facilitan el trabajo, que lo hacen ser mejor y demás, pero es lo mismo, mejor hacer cálculos mentales que tener que recurrir a una calculadora.

Morsa said...

Yo creo que en el caso del software "tiempos pasados no fueron mejores". Las herramientas actuales le quitan mucvha chamba rutinaria a los programadores, los cuales se pueden ocupar de otras cosas en lugar de andar resolviendo por enésima vez el poner un editor, o un botón, o cargar una gráfica con un formato específico, como jpg o png.

saludos

Daniel said...

Que ni qué, actualmente hay varios IDEs que realmente ahorran un montón de trabajo en cuanto a código... Quizá sea cuestión de un equilibrio, ni tanto alboroto con hacer un programa con cientas de útiles funciones ni seguir utilizando los que funcionaban bien pero ahora se van haciendo obsoletos...