KOL and MCK

A reference on Object Pascal, the Delphi line and the libraries built on it.

After Borland

Free Pascal and Lazarus Kept Moving When Borland Stopped

KOL and MCKAfter Borland

Laptop screen showing C# code with a solution explorer and concurrent test functions

A second compiler and a second IDE, developed in parallel and answerable to no vendor's roadmap.

Photo: Daniil Komov / Pexels

When the commercial compiler stalled, an open-source fork quietly accumulated a decade's worth of platform support that Embarcadero would never match.

From a Bedroom Compiler to a Multi-Platform Runtime

The Free Pascal project ↗ traces its start to 1993, when Florian Klämpfl began writing a Pascal compiler in his spare time. The original target was i386 DOS — close enough to Turbo Pascal's world to attract early adopters who wanted the language without the Borland licence fee. What distinguished the project almost immediately was architecture: the compiler was designed from the outset to retarget, meaning that adding a new CPU or operating system meant plugging in a new code generator rather than rewriting the front end. That decision, made in obscurity, would eventually produce a compiler running on a list of targets — x86-64, ARM, MIPS, SPARC, PowerPC, RISC-V — that no commercial Pascal vendor has come close to matching.

Michaël Van Canneyt joined the project in the mid-1990s and became one of its central long-term contributors, responsible in particular for the runtime library and sustained documentation work, including years of articles in The Delphi Magazine and its successor publications that kept the broader community aware of what the compiler could do. The pair — Klämpfl on the compiler core, Van Canneyt on the library and documentation side — represented exactly the kind of complementary pairing that sustains an open-source project past its initial burst of enthusiasm. By the time Borland was losing its way in the early 2000s, Free Pascal had already reached version 1.0 ↗, with a working Object Pascal dialect compatible enough with Delphi source to make migration realistic for many codebases.

Lazarus and the Visual Layer

A compiler without a visual designer is a professional tool but not a rapid application development environment. Lazarus arrived in 1999 to close that gap. Built on top of Free Pascal, it provided an IDE modelled consciously on Delphi's: a form designer, an object inspector, a component palette. The underlying component library — the Lazarus Component Library, or LCL — replicated the VCL's architecture while routing its platform calls through native widget sets: GTK on Linux, Carbon and later Cocoa on macOS, the Win32 API on Windows. A single Lazarus application, carefully written, could be compiled to a native binary on all three without touching a line of platform-specific code.

This was the promise that Kylix had made and failed to deliver. Kylix tied Delphi to Linux through Qt via the CLX library, and when Borland walked away from the project after three releases, Qt-based Delphi code had nowhere to go. Lazarus filled the vacuum: the community that had been watching the Kylix experiment quietly redirected its energy toward an IDE that was not dependent on a single vendor's continued interest.

A conference room at a Delphi-era developer event, projector displaying a code slide, adult audience members seated, speaker at the front

Delphi-era developer conferences were where version changes got argued out in front of the people who had to migrate.

Photo: Matheus Bertelli / Pexels

Delphi 1 retail box, CD and printed manual set arranged on a desk, 1995 Borland packaging and logo legible, warm tungsten light

A parts store rather than a code library, but the same premise — take a standard piece off the shelf instead of making one.

Photo: Charlie Merrow / Pexels

The LCL's abstraction came at a cost. Widget-set differences meant that pixel-perfect VCL ports rarely compiled cleanly the first time, and some idioms — particularly those relying on Windows-specific behaviour baked into VCL components — required genuine rewriting rather than a simple recompile. Free Pascal's Delphi compatibility mode narrowed the language gap, but the library gap was always harder to close. JEDI's component collections, built for the VCL, did not translate automatically. What Lazarus offered instead was a clean compiler target for new cross-platform projects and a credible rescue path for applications whose Delphi licences were expiring.

The Platforms Embarcadero Never Addressed

Embarcadero Technologies eventually introduced FireMonkey in 2011 as its own cross-platform answer, but the targets it chose — Windows, macOS, iOS and later Android — reflected commercial priorities. Embedded Linux, bare-metal ARM, RISC-V microcontrollers, OpenBSD, Haiku: none of these appeared on the RAD Studio roadmap, and none were likely to. Free Pascal, by contrast, was already running on many of them, driven by contributors whose motivation was the platform itself rather than a product manager's release schedule.

The Free Pascal compiler has documented support for more than a dozen CPU families ↗ as of its current release series. That breadth is the cumulative result of thirty years of incremental contribution — a different kind of software project from the commercial compiler, and one whose value is precisely in the corners it occupies that no vendor has an incentive to reach.

More in After Borland

All of After Borland