Showing posts with label lazarus. Show all posts
Showing posts with label lazarus. Show all posts
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.
Tuesday, October 29, 2013
Lazarus, un cuasi-clon de Delphi
Por razones meramente académicas tuve que incursionar en Lazarus, una herramienta de aplicación rápida (RAD, por sus siglas en inglés), que permite programar en un ambiente muy similar a Delphi 7. La filosofía es la misma y Lazarus empezó precisamente como un esfuerzo comunitario para dotar de una herramienta al mejor estilo Delphi pero de código abierto y gratuita.
Hoy en día, me da la impresión, Lazaus es lo suficiente estable y maduro para realizar una buena cantidad de programas en un ambiente verdaderamente poderoso y amigable. Desde luego, no tiene la miriada de componentes que ya Delphi tiene (ver por ejemplo el sitio Torry.net), pero sin duda se ha hecho un estupendo esfuerzo por tener una herramienta funcional de verdad.
Mucha de la documentación de Lazarus puede verse en los diferentes sitios wiki que explican -muchas veces con lujo de detalles- todo lo que hacen las diferentes bibliotecas y componentes. Es a veces incluso abrumador cuando uno busca una información particular. No obstante esto, es siempre mejor en estos casos pecar por exceso.
Dos cosas son diferentes a Delphi. Una de ellas es que evidentemente, compila mucho más lentamente (porque es claro que es difícil vencer a los compiladores turbo de la empresa original, Borland), pero eso no es demasiado grave. Con respecto a los programas de Delphi, para convertirlos a Lazarus, hay poco que convertir en algunos casos (dependerá de la complejidad del software), pero aún así, muchas veces hay instrucciones parecidas, que no iguales, entre una plataforma como Lazarus y la comercial, Delphi.
Por ejemplo, tenemos que en Delphi, puedo mandar pintar un pixel con el color que quiera con la siguiente instrucción:
Image2.Canvas.Pixels[i,j] := RGBToColor(B,G,R);
Mientras que en Delphi 7 se hace así:
Image2.Canvas.Pixels[i,j] := RGB(B,G,R);
No es la gran diferencia, pero hay que saber que existe esata instrucción en Lazarus (RGBToColor) para poderla aplicar y que el sistema no marque error.
Lazarus tiene otras ventajas aparentes sobre Delphi, sin embargo. Una de ellas es ese sueño de crear código en una plataforma y poder correrlo en todas las demás plataformas y sistemas operativos. En principio al menos, código fuente de Lazarus escrito para Windows puede copiarse a Mac o Linux, y recompilar con las reespectivas versiones de Lazarus para generar programas ejecutables en esas plataformas. Eso simplemente no lo puede hacer Delphi.
Quizás la gran diferencia entre Delphi y Lazarus es que la calidad del software comercial, amén que es un esfuerzo que se está haciendo desde 1994, hacen a Delphi aún superior a Lazarus si se trata de crear aplicaciones robustas y de usar la enorme cantidad de componentes y código de terceros. Aún así, Lazarus es un muy buen esfuerzo y claramente con el tiempo será mucho mejor. Es una estupenda opción si se usa Linux (donde Kilyx, la versión de Delphi para Linux se malogró) o Mac OS X, aunque aún con algunas limitaciones.
Subscribe to:
Posts (Atom)


