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 respectivas 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. Igualmente es una opción interesante si no se quiere desembolsar una buena cantidad de dólares por la versión comercial de Delphi que ahora, incluso, puede desarrollar apps para Android e iOS.
Referencias: