Lázaro (software)
Lazarus es un entorno de desarrollo integrado (IDE) multiplataforma gratuito para el desarrollo rápido de aplicaciones (RAD) utilizando el compilador Free Pascal. Su objetivo es proporcionar un entorno de desarrollo fácil de usar para los programadores que desarrollan con el lenguaje Object Pascal, que es lo más parecido posible a Delphi.
Los desarrolladores de software utilizan Lazarus para crear consolas de código nativo y aplicaciones de interfaz gráfica de usuario (GUI) para el escritorio y también para dispositivos móviles, aplicaciones web, servicios web, componentes visuales y bibliotecas de funciones para diversas plataformas, incluidas Mac, Linux y Windows.
Un proyecto creado usando Lazarus en una plataforma se puede compilar en cualquier otra que admita el compilador Free Pascal. Para las aplicaciones de escritorio, una única fuente puede apuntar a macOS, Linux y Windows, con poca o ninguna modificación. Un ejemplo es el propio Lazarus IDE, creado a partir de una única base de código y disponible en todas las plataformas principales, incluida Raspberry Pi.
Características
Lazarus proporciona un entorno de desarrollo WYSIWYG para la creación de interfaces de usuario enriquecidas, lógica de aplicaciones y otros artefactos de código de soporte, similar a Borland Delphi. Además de las funciones de gestión de proyectos, Lazarus IDE también proporciona:
- Diseño de ventanas visuales
- widgets GUI o componentes visuales como cajas de edición, botones, diálogos, menús, etc.
- Componentes no visuales para comportamientos comunes como persistencia de configuraciones de aplicación
- Componentes de conectividad de datos para MySQL, PostgreSQL, FireBird, Oracle, SQLite, Sybase y otros
- Conjunto de widget de datos que permite al desarrollador ver datos en componentes visuales del diseñador para ayudar con el desarrollo
- Depurador interactivo
- Finalización del Código
- Plantillas de código
- Destacado sintaxis
- Ayuda sensible al contexto
- Administrador de recursos de texto para la internacionalización
- Formato de código automático
- Extensibilidad mediante componentes personalizados
Desarrollo multiplataforma


Lazarus utiliza Free Pascal como compilador de back-end. Como Free Pascal admite aplicaciones transversales, las aplicaciones Lazarus pueden ser cruzadas de Windows, Linux o macOS a cualquiera de los objetivos de compilación Pascal gratuito compatibles. Las aplicaciones para dispositivos integrados (smartphones, PDAs, routers, consolas de juego) se pueden completar en cualquier plataforma de escritorio.
Lazarus proporciona un marco de aplicación multiplataforma llamado Lazarus Component Library (LCL), que proporciona una interfaz única y unificada para los programadores, con diferentes implementaciones específicas de plataforma. Utilizando LCL, es posible crear aplicaciones en un escribir una vez, compilar en cualquier lugar de manera, a menos que las características dependientes del sistema se utilicen explícitamente. LCL fue modelado originalmente después de la Biblioteca del Componente Visual (VCL) en Delphi 6, pero no está restringido a Windows. Esto se hace separando la definición de clases de widget común y su aplicación específica de widgetset. Cada conjunto de widget es compatible con proporcionar un interfaz que interactúa directamente con el conjunto.
Desarrollo de bases de datos
Los desarrolladores pueden instalar paquetes que permiten a Lazarus apoyar varios sistemas de gestión de bases de datos (DBMSes). Los programas pueden interactuar con un DBMS a través del código o por los componentes caídos en un formulario.
Los siguientes DBMS son compatibles desde el primer momento:
- dBase y FoxPro,
- InterBase y Firebird
- Microsoft SQL Server y Sybase ASE
- MySQL y MariaDB
- Bases de datos ODBC
- Oracle
- PostgreSQL
- SQLite
Diferencias con Delphi
Lázaro se parece a Delfos en muchos aspectos. Es compatible con el modelo de objetos componentes (COM) desde la versión 2.2.0 y ofrece la mayoría de las funcionalidades de red de Delphi. Sin embargo, existen limitaciones en cuanto al rendimiento y el conjunto de funciones.
Lazarus no admite lo siguiente, mientras que Delphi sí lo hace:
- Datasnap (Utiliza la funcionalidad de la empresa propiedad Embarcadero, no un sistema documentado públicamente).
- Paquetes cargables dinámicamente
- . Las bibliotecas NET (código .NET, sin embargo, pueden invocar el código Pascal Object o cualquier otra biblioteca nativa a través de los Servicios de Invocación de Plataformas).
- Extensivo Microsoft Conectividad de oficina (Lazarus sólo puede abrir Microsoft Excel con una simple tabla llenada.)
LCL no es totalmente compatible con VCL. Esto hace que el extenso repositorio de widgets VCL disponibles sea inaccesible sin conversión. El esfuerzo de conversión implica principalmente cierta edición, aunque existen algunas diferencias fundamentales. Al realizar la portabilidad, las unidades faltantes en las bibliotecas son un problema considerablemente mayor que las incompatibilidades entre LCL y VCL. Los componentes de Delphi se pueden convertir para que funcionen en Lazarus. Esto puede ser complejo, aunque menos que para las versiones de Lazarus anteriores a 0.9.30, basadas en FP 2.4.x.
En Windows, el tamaño predeterminado de un archivo ejecutable es mayor que el equivalente de Delphi 6 o 7, ya que Lazarus almacena información de depuración dentro del ejecutable, en lugar de archivos separados. A partir de la versión 0.9.30, Lazarus admite símbolos de depuración externos mediante opciones del compilador. De este modo, el tamaño de los archivos de programa se puede reducir significativamente. Alternativamente, la información de depuración se puede eliminar de los EXE (por ejemplo, usando un puerto del comando strip
de UNIX).
Distribución y licencias
Al igual que Free Pascal, Lazarus es software libre. Se distribuyen diferentes partes bajo diferentes licencias de software libre, incluidas GPL, LGPL, MPL y una versión modificada de LGPL. LCL, que está integrado estáticamente en los ejecutables producidos, tiene la licencia de una versión modificada de LGPL, lo que otorga permisos adicionales para permitir que se integre estáticamente en el software producido, incluidos los propietarios.
Instalar un paquete de tiempo de diseño equivale a vincularlo al IDE, de modo que distribuir el IDE de Lazarus con un paquete de tiempo de diseño incompatible con GPL, como los paquetes JEDI con licencia pública de Mozilla, preinstalados, causaría una licencia violación. Esto no prohíbe que se desarrollen paquetes propietarios con Lazarus.
Historia
El primer intento de desarrollar un IDE para Free Pascal se remonta a 1998, bajo el mandato "Megido" proyecto. Después del fracaso del proyecto, algunos de sus desarrolladores iniciaron un nuevo proyecto basado en una base más flexible. El nombre "Lázaro" alude al resurgimiento del concepto Megido. Está inspirado en Lázaro de Betania, quien, según el Evangelio de Juan, fue devuelto a la vida por Jesús cuatro días después de su muerte.
La primera versión preliminar de LCL estuvo lista para su lanzamiento en 2001. En 2003, la primera versión beta de Lazarus (0.9.0.3) se alojó en SourceForge. La versión 1.0 de Lazarus se lanzó en 2012. En 2014 se lanzó un Lazarus 1.2 significativamente mejorado. Se habían realizado más de cuatro millones de descargas desde SourceForge hasta marzo de 2014.
Versiones
Número de versión | Fecha de lanzamiento | Plataforma | Comentarios |
---|---|---|---|
Versión antigua, ya no se mantiene: 0,05 | Enero de 2001 | Windows | Primera publicación de la biblioteca de componentes |
Versión antigua, ya no se mantiene: 0.1 | Enero de 2001 | Windows | Rediseñar la biblioteca de componentes para apoyar el desarrollo sensible a la plataforma para Linux y Windows utilizando GTK+ y otros widgetsets. |
Versión antigua, ya no se mantiene: 0.5 | 30 de enero de 2001 | Windows, Linux | Corrección de errores y nuevas características que apoyan el desarrollo multiplataforma y los esqueletos del proyecto. |
Versión antigua, ya no se mantiene: 0,8 | 9 de octubre de 2001 | Windows, Linux | Codetools implementado, bug fixes. |
Versión antigua, ya no se mantiene: 0.8.2 | 17 de enero de 2002 | Windows, Linux | Encontrar funciones ampliadas. |
Versión antigua, ya no se mantiene: 0,8.4 | 19 de agosto de 2002 | Windows, Linux | Gráficos mejorados y soporte de fuentes, soporte para la sintaxis Delphi 6. Los DFMs binarios ahora se convierten automáticamente en LFMs. |
Versión antigua, ya no se mantiene: 0,8.5 | 26 de octubre de 2002 | Windows, Linux | LCL se decoupled de interfaces. |
Versión antigua, ya no se mantiene: 0.9.0.3 | 4 de septiembre de 2003 | Linux | Primera publicación sobre SourceForge |
Versión antigua, ya no se mantiene: 0.9.1 | 27 de febrero de 2004 | Windows, Linux | Soporte para paquetes, numerosas propiedades agregadas y mejoradas. |
Versión antigua, ya no se mantiene: 0.9.4 | 3 de enero de 2005 | Windows | El apoyo mejorado, la versión pública más antigua alojada en SourceForge |
Versión antigua, ya no se mantiene: 0.9.6 | 25 de febrero de 2005 | Windows | |
Versión antigua, ya no se mantiene: 0.9.8 | 19 de julio de 2005 | Windows | |
Versión antigua, ya no se mantiene: 0.9.10 | 3 de octubre de 2005 | Windows, Mac OS X (PPC) | Corrección de errores, extensibilidad de IDE mejorado, editor de documentos para archivos FPDoc. Incluye Free Pascal 2.0.1 |
Versión antigua, ya no se mantiene: 0.9.12 | 7 de febrero de 2006 | Windows | Nuevos paquetes para soporte de bases de datos, aplicaciones CGI e impresión. |
Versión antigua, ya no se mantiene: 0.9.14 | 2 de abril de 2006 | Windows, Mac OS X (PPC), Linux | Bugfixes, más controles en la interfaz WinCE y Qt4 |
Versión antigua, ya no se mantiene: 0.9.16 | 28 de mayo de 2006 | Windows, Mac OS X (PPC), Linux | Corrección de errores, ayuda en línea para ventanas IDE y para aplicaciones LCL, mejoras en la interfaz de widgetset QT. Incluye Free Pascal 2.0.2 |
Versión antigua, ya no se mantiene: 0.9.18 | 23 de septiembre de 2006 | Windows, Mac OS X (PPC), Linux | Bugfixes, lista de procedimientos implementada, nueva herramienta de línea de comandos "lazbuild" |
Versión antigua, ya no se mantiene: 0.9.20 | 5 de noviembre de 2006 | Windows, Mac OS X (PPC), Linux | Bufixes, plegable de código implementado, widget QT mejorado. |
Versión antigua, ya no se mantiene: 0.9.22 | 26 de marzo de 2007 | Windows, Mac OS X (PPC), Linux | Nuevos componentes para escribir servicios de Windows y daemons Linux, soporte para cursores de ratón personalizados. Incluye Free Pascal 2.0.4 |
Versión antigua, ya no se mantiene: 0.9.24 | 15 de noviembre de 2007 | Windows, Mac OS X, Linux | Primer lanzamiento estable para Win64, WinCE y Mac OS X basado en Intel. Mejoras en interfaces de widgetset Qt, Carbon y Gtk2. Barra de herramientas personalizable. Incluye Free Pascal 2.2.0 |
Versión antigua, ya no se mantiene: 0.9.26 | 5 de octubre de 2008 | Windows, Mac OS X, Linux | Se reescribió el sistema gráfico interno. LCL ahora utiliza cadenas Unicode codificadas como UTF-8 en todas las plataformas. FPDoc ayuda en herramientas. Primera versión para funcionar nativamente usando el widgetset Carbon en Mac OS X. |
Versión antigua, ya no se mantiene: 0.9.26.2 | 13 de marzo de 2009 | Windows, Mac OS X, Linux | Corrección de errores, mejor apoyo de iconos. Incluye Free Pascal 2.2.2 |
Versión antigua, ya no se mantiene: 0.9.28 | 29 de septiembre de 2009 | Windows, Mac OS X, Linux | Mejoras de editor y depurador incluyendo soporte para fuentes de doble byte como el este, japonés, chino y árabe, tamaños de archivos más pequeños de aplicaciones generadas. Incluye Free Pascal 2.2.4 |
Versión antigua, ya no se mantiene: 0.9.28.2 | 25 de octubre de 2009 | Windows, Mac OS X, Linux | Principalmente correcciones de errores. |
Versión antigua, ya no se mantiene: 0.9.30 | 22 de marzo de 2011 | Windows, Mac OS X, Linux | Gran número de nuevas características, incluyendo docking y varias ventanas de código fuente. Basado en Free Pascal 2.4.2. |
Versión antigua, ya no se mantiene: 0.9.30.2RC1 | 30 de septiembre de 2011 | Windows, Mac OS X, Linux | Incluye Free Pascal 2.4.4. |
Versión antigua, ya no se mantiene: 0.9.30.2RC2 | 26 de octubre de 2011 | Windows, Mac OS X, Linux | Lanzamiento del candidato a Lazarus 0.9.30.2. |
Versión antigua, ya no se mantiene: 0.9.30.2 | 5 de noviembre de 2011 | Windows, Mac OS X, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 0.9.30.4RC1 | 3 de marzo de 2012 | Windows, Mac OS X, Linux | Corrección de errores, incluye Pascal gratuito 2.6.0. Lanzamiento del candidato a Lazarus 0.9.30.4. |
Versión antigua, ya no se mantiene: 0.9.30.4RC2 | 7 de marzo de 2012 | Windows, Mac OS X, Linux | Lanzamiento del candidato a Lazarus 0.9.30.4. |
Versión antigua, ya no se mantiene: 0.9.30.4RC3 | 11 de marzo de 2012 | Windows, Mac OS X, Linux | Lanzamiento del candidato a Lazarus 0.9.30.4. |
Versión antigua, ya no se mantiene: 0.9.30.4 | 14 de marzo de 2012 | Windows, Mac OS X, Linux | Corrección de errores |
Versión antigua, ya no se mantiene: 1.0RC1 | 29 de julio de 2012 | Windows, Mac OS X (Intel), Linux | El candidato de lanzamiento para Lázaro 1.0. |
Versión antigua, ya no se mantiene: 1.0RC2 | 21 de agosto de 2012 | Windows, Mac OS X, Linux | El candidato de lanzamiento para Lázaro 1.0. |
Versión antigua, ya no se mantiene: 1.0 | 28 de agosto de 2012 | Windows, Mac OS X, Linux | Primera versión final. Esta versión estable incluye Free Pascal 2.6.0. Múltiples correcciones y mejoras del IDE, incluyendo una función macro, ampliación del código-folding y nuevas funciones de depurador. |
Versión antigua, ya no se mantiene: 1.0.2 | 10 de octubre de 2012 | Windows, Mac OS X, Linux | correcciones de errores, adiciones menores a LCL y widgetsets |
Versión antigua, ya no se mantiene: 1.0.4 | 2 de diciembre de 2012 | Windows, Mac OS X, Linux | correcciones de errores, adiciones menores a IDE, LCL y widgetsets, así como LazReport y TAChart |
Versión antigua, ya no se mantiene: 1.0.6 | 3 de febrero de 2013 | Windows, Mac OS X, Linux | correcciones de errores, adiciones menores a IDE, LCL y widgetsets, así como LazReport y TAChart |
Versión antigua, ya no se mantiene: 1.0.8 | 19 de marzo de 2013 | Windows, Mac OS X, Linux | Corrección de errores. Incluye Pascal gratuito 2.6.2 |
Versión antigua, ya no se mantiene: 1.0.10 | 12 de junio de 2013 | Windows, Mac OS X, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.0.12 | 24 de agosto de 2013 | Windows, Mac OS X, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.0.14 | 16 de noviembre de 2013 | Windows, Mac OS X, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.1.99 | 16 de septiembre de 2013 | Windows, Mac OS X, Linux | Versión alfa para Lazarus 1.2 |
Versión antigua, ya no se mantiene: 1.2RC1 | 3 de noviembre de 2013 | Windows, Mac OS X, Linux | Lanzamiento del candidato a Lazarus 1.2 |
Versión antigua, ya no se mantiene: 1.2RC2 | 13 de enero de 2014 | Windows, Mac OS X, Linux | Lanzamiento del candidato a Lazarus 1.2 |
Versión antigua, ya no se mantiene: 1.2 | 4 de marzo de 2014 | Windows, Mac OS X, Linux | Múltiples características nuevas, incluyendo un grabador de macros, soporte para gráficos con capas y script Pascal. Basado en Free Pascal 2.6.2 |
Versión antigua, ya no se mantiene: 1.2.2 | 23 de abril de 2014 | Windows, Mac OS X, BSD, Solaris, Linux | Corrección de errores. Basado en Free Pascal 2.6.4 |
Versión antigua, ya no se mantiene: 1.2.4 | 16 de junio de 2014 | Windows, Mac OS X, BSD, Solaris, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.2.6 | 12 de octubre de 2014 | Windows, Mac OS X, BSD, Solaris, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.4.0 | 19 de abril de 2015 | Windows, Mac OS X, BSD, Solaris, Linux | Mejoras de editor, manejo de recursos y nuevas características adicionales. Basado en Free Pascal 2.6.4. |
Versión antigua, ya no se mantiene: 1.4.2 | Julio 14, 2015 | Windows, Mac OS X, BSD, Solaris, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.4.4 | 4 de octubre de 2015 | Windows, Mac OS X, BSD, Solaris, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.6 | Febrero 18, 2016 | Windows, Mac OS X, Linux | Múltiples características nuevas, incluyendo docking, grupos de proyectos y editor mejorado. Basado en Free Pascal 3.0.0. |
Versión antigua, ya no se mantiene: 1.6.2 | Noviembre 13, 2016 | Windows, Mac OS X, Linux | Corrección de errores. |
Versión antigua, ya no se mantiene: 1.6.4 | Febrero 26, 2017 | Windows, macOS, Linux | Corrección de errores. Basado en Free Pascal 3.0.2. |
Versión antigua, ya no se mantiene: 1.8.0 | Diciembre 6, 2017 | Windows, macOS, BSD, Linux | Mayor liberación con muchas características nuevas incluyendo un administrador de paquetes en línea. Basado en Free Pascal 3.0.4. |
Versión antigua, ya no se mantiene: 1.8.2 | 28 de febrero de 2018. | Corrección de errores. | |
Versión antigua, ya no se mantiene: 1.8.4 | 22 de mayo de 2018 | Windows, macOS, BSD, Linux | Corrección de errores. |
Versión más antigua, sin embargo, mantenida: 2.0.0 | 5 de enero de 2019 | Windows, macOS, BSD, Linux | Múltiples características nuevas incluyendo soporte de Cocoa y la introducción de un transpilador Pascal a JavaScript. |
Versión más antigua, sin embargo, mantenida: 2.0.2 | 16 de abril de 2019 | Windows, macOS, BSD, Linux | Corrección de errores. |
Versión más antigua, sin embargo, mantenida: 2.0.4 | Agosto 6, 2019 | Windows, macOS, BSD, Linux | Corrección de errores. |
Versión más antigua, sin embargo, mantenida: 2.0.6 | Noviembre 1, 2019 | Windows, macOS, BSD, Linux | Corrección de errores. |
Versión más antigua, sin embargo, mantenida: 2.0.8 | 16 de abril de 2020 | Windows, macOS, BSD, Linux | Corrección de errores, mejora el widgetset Cocoa. |
Versión más antigua, sin embargo, mantenida: 2.0.10 | 11 de julio de 2020 | Windows, macOS, BSD, Linux | Corrección de errores, adiciones menores, primera versión basada en Free Pascal 3.2.0. |
Versión más antigua, sin embargo, mantenida: 2.0.12 | 21 de febrero de 2021 | Windows, macOS, BSD, Linux | Basado en Free Pascal 3.2.0. Lista de correcciones disponibles. |
Versión más antigua, sin embargo, mantenida: 2.2.0 | 5 de enero de 2022 | Windows, macOS, BSD, Linux | Basado en Free Pascal 3.2.2. Múltiples mejoras, entre otras en el IDE, el LCL y los widgetsets. |
Versión más antigua, sin embargo, mantenida: 2.2.2 | 19 de mayo de 2022 | Windows, macOS, BSD, Linux | Corrección de errores. |
Versión más antigua, sin embargo, mantenida: 2.2.4 | 28 de septiembre de 2022 | Windows, macOS, BSD, Linux | Corrección de errores. |
Versión más antigua, sin embargo, mantenida: 2.2.6 | 6 de marzo de 2023 | Windows, macOS, BSD, Linux | Corrección de errores. |
Versión estable actual: 3.0 | 21 de diciembre de 2023 | Windows, macOS, BSD, Linux | Múltiples mejoras, entre otras en el IDE, el LCL, los widgetsets y el depurador. |
Ejemplos de aplicaciones producidas con Lazarus
- ASuite es un lanzador de aplicaciones de código abierto gratuito para Windows. Desde 2.1 Alpha 1, está completamente escrito en Lázaro/FPC.
- Beyond Compare es una utilidad de comparación de datos para Windows, macOS y Linux. Las versiones de macOS y Linux se compilan utilizando Lazarus/FPC.
- Cartes du Ciel es un programa planetario gratuito para Linux, macOS y Windows. El software mapea y etiqueta la mayoría de las constelaciones, planetas y objetos que puedes ver con un telescopio. Está completamente escrito en Lazarus/FPC y publicado bajo GPL.
- C-evo es un juego de estrategia de código abierto basado en el turno que ha sido portado de Delphi a Lazarus.
- Cheat Engine es un escáner de memoria de código abierto/hex editor/debugger. Es útil para hacer trampas en juegos de ordenador. Desde la versión 6.0 se compila con Lazarus/FPC.
- EPANET, un paquete de software para modelar sistemas de distribución de agua.
- HNSKY, Hallo Northern Sky es un programa planetario gratuito para Windows y Linux. Desde la versión 3.4.0 escrita y compilada con Lazarus/FPC.
- MyNotex es un software libre para Linux útil para tomar y gestionar notas textuales.
- PeaZip es un archivador de código abierto, hecho con Lazarus/FPC.
- TorChat se está alejando de Python y está siendo reescrito en Lazarus + Free Pascal.
- Total Commander 64-bit versión.
- Double Commander es un gestor de archivos de código abierto multiplataforma con dos paneles lado a lado. Está inspirado en Total Commander, además de algunas ideas nuevas.
- CudaText es un editor de texto de código abierto multiplataforma.
- SimThyr es un programa de simulación continua para la homeostasis tiroidea.
Ejemplos de bibliotecas Delphi compatibles con Lazarus
- GLScene es una librería basada en OpenGL que proporciona componentes visuales y objetos que permiten describir y renderizar escenas 3D.
- OpenWire es una biblioteca de código abierto que permite realizar conexiones entre componentes LCL similares a LabVIEW o Agilent VEE.