En comparación con Delphi.NET, ahora obsoleto, Oxygene no enfatiza la compatibilidad total hacia atrás, sino que está diseñado para ser una "reinvención" del lenguaje y aprovechar todas las características y tecnologías proporcionadas por el runtimes de .NET y Java.
Oxygene es un producto comercial, y ofrece integración completa en Visual Studio IDE de Microsoft en Windows, así como su propio IDE, Fire para uso en macOS. El compilador de línea de comandos está disponible gratis.
Oxygene no usa "Unidades" como Delphi, pero usa .NET-namespaces para organizar y agrupar tipos. Un espacio de nombre puede abarcar varios archivos (y ensamblajes), pero un archivo solo puede contener tipos de un espacio de nombres. Este espacio de nombre se define en la parte superior del archivo:
namespace ConsoleApplication1;
Los archivos Oxygene están separados en una interfaz y una sección de implementación, que es la estructura conocida de Delphi. La sección de interfaz sigue a la declaración del espacio de nombres. Contiene la cláusula uses, que en Oxygene importa tipos de otros espacios de nombres:
uses
System.Linq;
Los espacios de nombres importados deben estar en el proyecto mismo o en los ensamblados a los que se hace referencia.
Siguiendo la cláusula uses un archivo contiene declaraciones de tipo, como se conocen de Delphi:
interface
type
ConsoleApp = class
public
class method Main;
end;
Al igual que en C#, el método principal es el punto de entrada para cada programa. Puede tener un parámetro args: Array of String para pasar argumentos de línea de comando al programa.
Se pueden declarar más tipos sin repetir la palabra clave type.
La implementación de los métodos declarados se ubica en la sección de implementación:
implementation
class method ConsoleApp.Main;
begin
Console.WriteLine('Hola');
end;
end.
Por último veamos el ejemplo "hola mundo" completo:
namespace HelloWorld;
interface
type
HelloClass = class
public
class method Main;
end;
implementation
class method HelloClass.Main;
begin
System.Console.WriteLine('Hello World!');
end;
end.
La verdad no me gusta nada, soy más proclive a escribir menos y tal vez muchas cosas se pueden resolver por convención. Pero confieso que el espíritu de revivir a pascal es muy bueno, dado que era un lenguaje muy bueno y fácil de usar.