Lazarus
A free, cross-platform RAD IDE for Free Pascal, providing a Delphi-like visual development experience for building native desktop applications.
Created by Cliff Baeseman, Shane Miller, Michael A. Hess (founders); Lazarus community
Overview
Lazarus is a free, open-source, cross-platform integrated development environment (IDE) for the Free Pascal Compiler (FPC). It provides a Delphi-style Rapid Application Development (RAD) experience: a visual form designer, a component palette, an Object Inspector, an integrated source editor, and a debugger, all tied together by the Lazarus Component Library (LCL) — a widget abstraction that lets the same Object Pascal source compile to native desktop applications on Windows, Linux, macOS, BSD, and other targets supported by Free Pascal.
Lazarus is not itself a programming language; it is the IDE and component framework that make Free Pascal practical for building GUI applications. In everyday usage, however, “writing a Lazarus app” is shorthand for writing an LCL-based Object Pascal program with the Lazarus tooling.
History and Origins
The Lazarus project was launched in February 1999 by Cliff Baeseman, Shane Miller, and Michael A. Hess with a clear motivation: Borland’s Delphi had become the leading RAD environment for Windows in the mid-1990s, but it was proprietary, commercial, and Windows-only. Free Pascal had emerged as an open-source Object Pascal compiler capable of producing native binaries on many platforms; what it lacked was a Delphi-like IDE and component library. Lazarus was started to fill exactly that gap.
The early years were spent building the LCL, the form designer, and the IDE itself, with releases numbered 0.8.x and 0.9.x running on Linux and Windows. macOS support was added later through successive widgetset backends — first Carbon, then Qt, and eventually a native Cocoa widgetset that became the default on macOS in the 2.x series. After more than a decade of development, Lazarus 1.0 was released in August 2012, marking the project’s first stable milestone. Subsequent 2.0 (2019) and 3.0 (2023) major releases continued to modernize the IDE, debugger, and platform support while preserving source-level compatibility with earlier Lazarus projects.
Design Philosophy
Lazarus is shaped by a small set of guiding ideas:
- “Write once, compile anywhere.” A single LCL-based source tree should compile and run as a native binary on Windows, Linux (GTK/Qt), macOS (Cocoa), and other targets, without an interpreter or virtual machine.
- Delphi familiarity. The IDE deliberately mirrors classic Delphi: a form designer with drag-and-drop components, an Object Inspector for properties and events, units with
interface/implementationsections, and a.lprprogram file analogous to Delphi’s.dpr. - Native widgets via widgetsets. Rather than drawing its own controls, the LCL maps abstract components (
TButton,TEdit,TForm) onto platform widget toolkits — Win32/Win64 on Windows, GTK2/GTK3 or Qt5/Qt6 on Linux, Cocoa on macOS — so applications look and behave like first-class citizens on each platform. - Free software. Lazarus is released under the GPL with a modified LGPL for the LCL, allowing closed-source applications to link the LCL without the GPL propagating.
Key Features
- Visual form designer with drag-and-drop placement of components from a categorized palette.
- Lazarus Component Library (LCL) providing standard GUI controls, dialogs, menus, data-aware components, graphics primitives, and printing support.
- Object Inspector for editing component properties and wiring up event handlers at design time.
- Integrated code editor with syntax highlighting, code completion, navigation (jump to declaration), and refactoring tools.
- Integrated debugger front-end (historically built on GDB, with newer FpDebug and LLDB backends) supporting breakpoints, watches, call stacks, and stepping.
- Cross-compilation to many CPU/OS combinations supported by Free Pascal, including x86, x86_64, ARM, AArch64, and various embedded targets.
- Package manager (OPM) providing access to a large catalog of community-maintained components and bindings.
- Designtime/runtime split for components, the same pattern used by Delphi, allowing third-party components to be installed into the IDE and used visually.
Evolution
Lazarus’s history is closely tied to Free Pascal. Each Lazarus release is paired with a specific FPC version, and improvements in the compiler — generics, advanced records, anonymous methods, and extended Unicode support — flow naturally into Lazarus projects. On the IDE side, the long arc has been about polish and platform parity: high-DPI rendering, native macOS support through the Cocoa widgetset, modern Qt bindings on Linux, and steady improvements to the debugger.
The widgetset architecture has been pivotal. By isolating platform-specific code behind a single LCL API, Lazarus has been able to add or replace backends — Carbon to Cocoa on macOS, GTK2 to GTK3 and Qt5 to Qt6 on Linux — without breaking application source code. This is the practical mechanism that has kept “write once, compile anywhere” a workable promise across more than two decades of changing desktop environments.
Current Relevance
Lazarus occupies a distinctive niche in 2026: it is one of the few actively maintained, fully free, cross-platform RAD environments that produces small, self-contained native binaries with no managed runtime. That makes it attractive for desktop utilities, system tools, scientific and engineering applications, and ports of legacy Delphi codebases that want to escape Windows-only deployment.
It is not a mainstream choice for new web or mobile development, where other ecosystems dominate, but for native desktop work — especially when continuity with existing Object Pascal code matters — Lazarus remains a credible and well-supported option. Well-known applications built with it, such as Double Commander, PeaZip, and CudaText, demonstrate that Lazarus can deliver polished cross-platform desktop software.
Why It Matters
Lazarus matters because it preserved the Delphi style of GUI development as a free, cross-platform option at a time when that model was otherwise being absorbed into proprietary tooling or abandoned for web technologies. By pairing the Free Pascal Compiler with a Delphi-compatible IDE and a portable component library, the project gave a large community of Object Pascal developers a way to keep building native desktop applications on modern operating systems without giving up the visual, component-oriented workflow that made Delphi famous. It is a quiet but durable example of an open-source project keeping a productive programming tradition alive long after its commercial heyday.
Timeline
Notable Uses & Legacy
Double Commander
A popular open-source cross-platform file manager (Windows, Linux, macOS) written in Free Pascal and built with Lazarus, inspired by Total Commander.
PeaZip
A free, cross-platform archive manager developed in Free Pascal/Lazarus, providing a native GUI front-end to multiple archive formats across Windows and Linux.
CudaText
A cross-platform code editor written in Free Pascal using Lazarus, with a plugin system and support for Windows, Linux, macOS, and BSD.
Mathematics and engineering tools
Lazarus is used to build domain-specific desktop applications, measurement tools, and lab software in academic and industrial settings where a small native binary and no runtime dependency are valuable.
Education
Schools and universities, particularly in Europe, use Lazarus as a free Pascal teaching environment that preserves the Delphi-style visual form designer familiar from earlier curricula.