KOL and MCK

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

After Borland

Fifteen Years of Keeping the Compiler Alive

KOL and MCKAfter Borland

Browser inspector panel showing HTML div and header elements with syntax highlighting

Fifteen years of releases weighed against an undertaking not to break code that already compiled.

Photo: Markus Spiske / Pexels

The Weight of a Twenty-Year Codebase

When Embarcadero Technologies acquired the Delphi compiler from CodeGear in 2008, it inherited not just a product but an obligation — to a professional base that had, in many cases, been shipping the same codebase since the Windows 95 era. Every platform addition and language feature had to land without breaking what already existed.

The tension surfaced immediately. Delphi 2009's introduction of UnicodeString as the default string type was the most disruptive single change in the compiler's history: source files that compiled cleanly under Delphi 7 silently changed behaviour when byte-indexed strings became UTF-16 sequences. Embarcadero documented the migration path carefully, but the break was real, and a measurable portion of the installed base stayed on older releases rather than port.

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

Generics arrived in Delphi 2009 alongside the Unicode change — a pairing that made the release simultaneously the most powerful and most disruptive in the post-Borland sequence. The implementation followed a syntax distinct from C++ templates, resolving type parameters at compile time against the VCL (Visual Component Library)'s existing class hierarchy. Containers such as TList<T> and TDictionary<K,V> entered the standard library, and third-party vendors including TMS Software ↗ and DevExpress restructured component suites around them.

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 64-bit Windows compiler arrived with Delphi XE2 in 2011, the same release that introduced FireMonkey as a cross-platform UI framework. Those two features pulled in opposite directions: 64-bit Windows demanded that existing pointer arithmetic and record layouts be audited, while FireMonkey replaced the VCL's Windows-native controls with a GPU-rendered scene graph. Shops wanting both found themselves maintaining parallel form hierarchies.

Mobile targets followed. Delphi XE5 (2013) added Android, and XE4 had already covered iOS, both through the FireMonkey stack. The compiler backend was retooled on LLVM ↗-based infrastructure for mobile, meaning the ARM code paths shared no lineage with the classic x86 compiler that Delphi users had relied on since 1995. Field reports of subtle behavioural differences between desktop and mobile builds became a recurring theme in the JEDI lists and community forums through the mid-2010s.

Embarcadero's Community Edition, introduced in 2018, opened the compiler to individual developers and small teams at no cost — a direct response to Free Pascal and Lazarus gaining ground among developers priced out of the commercial SKUs. The gesture acknowledged that the ecosystem's long-term health depended on new entrants, not just the renewal contracts of enterprises already committed.

More in After Borland

All of After Borland