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.

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.

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
