Est. 1999 Intermediate

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

Paradigm Multi-paradigm: Object-Oriented, Imperative, Component-based (RAD)
Typing Static, Strong (via Free Pascal / Object Pascal)
First Appeared 1999
Latest Version Lazarus 3.x series (rolling releases on the 3.x branch)

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/implementation sections, and a .lpr program 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

1999
Lazarus project founded in February by Cliff Baeseman, Shane Miller, and Michael A. Hess as a free, cross-platform alternative to Borland Delphi, built on the Free Pascal Compiler.
2001
Early public releases (0.8.x series) demonstrate a working Lazarus IDE with the Lazarus Component Library (LCL) running on Linux and Windows.
2003
Lazarus 0.9.0 released, broadening platform support and stabilizing the LCL widgetset abstraction so the same source can target multiple GUI backends.
2007
Lazarus 0.9.24 era brings improved support for macOS (Carbon) alongside the existing Win32 and GTK widgetsets.
2012
Lazarus 1.0 released in August, the project's first stable milestone after thirteen years of development, paired with a Free Pascal 2.6.x release.
2015
Lazarus 1.4 released, with continued maturation of the Cocoa widgetset for native macOS support.
2019
Lazarus 2.0 released in February, bringing high-DPI improvements, an updated debugger interface, and refinements to the LCL.
2022
Lazarus 2.2 released, with continued maturation of the Cocoa widgetset on macOS and broader 64-bit platform support.
2023
Lazarus 3.0 released in December, paired with Free Pascal 3.2.2, continuing modernization of the IDE, debugger, and cross-platform widgetsets.

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.

Language Influence

Influenced By

Delphi Object Pascal Free Pascal Turbo Pascal

Influenced

Free Pascal LCL ecosystem MSEide+MSEgui CodeTyphon

Running Today

Run examples using the official Docker image:

docker pull
Last updated: