Development status Active | Written in Object Pascal | |
![]() | ||
Developer(s) Volunteers (Lazarus Team) Stable release 1.6.4 / February 26, 2017; 12 days ago (2017-02-26) Repository sourceforge.net/p/lazarus/code/HEAD/tree/ Operating system |
Lazarus is a free cross-platform visual integrated development environment (IDE) for rapid application development (RAD) using the Free Pascal compiler, which supports dialects of Object Pascal, to varying degrees. Software developers use Lazarus to create native-code console and graphical user interface (GUI) applications for the desktop, and also for mobile devices, web applications, web services, visual components and function libraries (.so, .dll, etc., for use by other programs). The Free Pascal compiler supports a number of different platforms, such as Mac, Linux and Windows.
Contents
- Features
- Cross platform development
- Cross compiling
- Lazarus Component Library
- Database development
- Differences from Delphi
- Distribution and licensing
- History
- Applications produced with Lazarus
- Libraries compatible with Lazarus
- References
Lazarus inherits three features from its use of the Free Pascal compiler: compile speed, execution speed, and cross-compilation. The Free Pascal compiler benefits from the Pascal language structure and the steady advancements of the Pascal compiler design (spanning several decades) to compile large applications quickly, often in a matter of seconds. When compiling reference programs for performance metrics, Lazarus produces programs that exhibit near or similar performance when compared with the same programs written in C.
An application that developers create using Lazarus on one platform can potentially compile and execute on any platform for which a Free Pascal compiler exists. The usual caveats of the limitations of the target platform apply; however, for desktop applications a single source can target Mac, Linux, and Windows, usually with no modification (or very little modification). An example application is the Lazarus IDE which itself was created using the Lazarus IDE from a single code base and is available on all major platforms and also runs on the Raspberry PI.
Features
Most similar to earlier versions of the Borland Delphi, Lazarus provides a highly visual development environment for the creation of rich user interfaces, application logic, and other supporting code artifacts. Along with the customary project management features, the Lazarus IDE also provides features that includes but are not limited to:
Cross-platform development
Lazarus uses Free Pascal as its back-end compiler. Therefore, Lazarus can, theoretically, be used to develop applications for all platforms supported by Free Pascal.
Similar to Free Pascal’s run-time library, Lazarus provides a cross-platform application framework called the Lazarus Component Library (LCL), which provides a single, unified interface for programmers, with different platform-specific implementations. Using LCL, one can create applications in a write once, compile anywhere manner, unless system-dependent features are used explicitly.
Cross-compiling
As Free Pascal supports cross-compiling, Lazarus applications can be cross-compiled from Windows to Linux and FreeBSD, and vice versa. Compiling from macOS to Windows, Linux and FreeBSD is possible. Cross-compiling to macOS could be done for older (PowerPC) versions, but not for newer Intel versions, since Apple no longer releases the assembler and linker sources.
Applications for embedded devices (smartphones, PDAs, routers, game consoles) are cross-compiled from a *nix or Windows.
With Lazarus 1.3 (development version) it is possible to generate Android applications.
Lazarus Component Library
The standard application framework, Lazarus Component Library (LCL) was modeled after the Visual Component Library (VCL) in Delphi 6, and, unlike Delphi, is not restricted to Microsoft Windows operating systems. This is done by separating the definition of common widget classes and their widgetset-specific implementation. Eor each widget set is supported by providing an interface which interacts directly with the set.
Database development
Developers can install packages that allow Lazarus to support several database management systems (DBMSes). Programs can interact with DBMSes through code or by components dropped on a form. The data-aware components represent fields and are connected by the correct setting of properties to a TDataSource, which represents a table, and to the database components, which may be TPSQLDatabase, TSQLiteDataSet, or equivalent.
The following DBMSes are supported out of the box using the built-in database components:
Differences from Delphi
While resembling Delphi in many ways, there are a few limitations regarding the performance and feature set.
Distribution and licensing
Like Free Pascal, Lazarus is free software. Different portions are distributed under different free software licenses, including GPL, LGPL, MPL, and a modified version of LGPL.
Specifically, the LCL, which is statically built into the produced executables, is licensed under a modified version of the LGPL, granting extra permissions to allow it to be statically built into the produced software, including proprietary ones.
Note that installing a design-time package is equivalent to linking to the IDE. Thus, distributing the Lazarus IDE with a GPL-incompatible design-time package (e.g. the JEDI packages, which are licensed under the Mozilla Public License) pre-installed would cause a license violation. This does not prohibit proprietary packages from being developed with Lazarus, though.
Lazarus is officially distributed via Sourceforge.
History
The first attempt to develop a visual IDE for Free Pascal dates back to 1998, when the Megido project commenced. For various reasons this approach failed. Some of Megido's developers then started a new project based on a more flexible foundation. The first preliminary LCL version was ready for release in 2001, and in 2003 the first beta version of Lazarus (0.9.0.3) was hosted at SourceForge. The first final Lazarus version (1.0) was released in 2012, and significantly enhanced Lazarus 1.2 with was released in 2014. More than four million downloads had been made from SourceForge as of March 2014.
The name "Lazarus" alludes to the revival of the Megido concept. It is inspired by Lazarus of Bethany, who, according to the Gospel of John, was restored to life by Jesus four days after his death.