A Pascal Compiler That Chose a Different Runtime
RemObjects Software's Oxygene occupies an unusual position in the Object Pascal family tree: it compiles a recognisably Pascal-derived language, but targets managed runtimes — primarily the .NET Common Language Runtime and, in later iterations, the Java Virtual Machine — rather than the native code that Delphi and Free Pascal and Lazarus produce. The compiler ships from RemObjects as a commercial product, integrated into Visual Studio rather than any Pascal-lineage IDE.
The language Oxygene compiles descends directly from the Chrome compiler that RemObjects first released in the mid-2000s. Chrome was an Object Pascal dialect shaped explicitly for .NET — adopting reference semantics, garbage collection and the BCL (Base Class Library) in place of the VCL and manual memory management. When RemObjects rebranded Chrome as Oxygene in 2008, the name change signalled an ambition beyond a niche tool: the product positioned itself as a first-class .NET language with Pascal syntax. Anders Hejlsberg's work at Microsoft had demonstrated that a language designed for managed runtimes could carry enormous commercial weight; Oxygene was, in part, a wager that Pascal syntax could compete in that space.

Delphi-era developer conferences were where version changes got argued out in front of the people who had to migrate.
Photo: Matheus Bertelli / Pexels

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 distance from Delphi's own Object Pascal is real and significant. Oxygene dropped several constructs central to Delphi — units as conventionally structured, the published property mechanism and RTTI-driven form streaming — and introduced syntax for .NET concepts such as namespaces, nullable types and lambda expressions that have no direct equivalent in the Embarcadero compiler. The Delphi 2009 Unicode migration demonstrated how difficult compatibility breaks can be even within a single product line; Oxygene accepted a far cleaner break, treating Pascal as an aesthetic starting point rather than a compatibility obligation.
What Oxygene illustrates is the tension inherent in any language fork toward a managed runtime. The host platform's type system, memory model and deployment conventions exert gravitational pull on every design decision; over successive releases, the compiler's Pascal heritage becomes progressively harder to see beneath the .NET Common Language Infrastructure specification ↗ that shapes its output. The language remains Pascal in its block structure, its begin/end pairs, its explicit typing — the markers Niklaus Wirth fixed when he published the original specification at ETH Zürich in 1970. Whether that constitutes continuity or appropriation is a question the Pascal community has never quite settled about Oxygene.
More in After Borland
