Translate

domingo, 30 de septiembre de 2018

Oxygene

Oxygene (anteriormente conocido como Chrome) es un lenguaje de programación desarrollado por RemObjects Software para Common Language Infrastructure de Microsoft, Java Platform y Cocoa. Oxygene está basado en Object Pascal, pero también tiene influencias de C#, Eiffel, Java, F# y otros lenguajes.

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. 

Dejo link: https://www.elementscompiler.com/elements/oxygene/language.aspx