About Oxygene

Next generation Object Pascal language for .NET, Windows Phone 8, Java, Android and iOS apps.

Oxygene is a modern, object oriented programming language for the 21st century. Oxygene builds on the strong foundation of Object Pascal, but extends it with many groundbreaking language features that will change the way you create software. Unique language features in Oxygene include Class Contracts, Futures & Parallelism, Aspect Oriented Programming, Sequences & Queries, Mapped Types, Duck Typing, and many more.

Oxygene allows you to create apps for all the major platforms.

Language Basics
Oxygene is a fully object oriented language that lets developers write code that runs on the .NET/Mono, Java/Android or Objective-C Runtime Environments, respectively. It is based around and builds on the language structures of Pascal and Object Pascal.

Oxygene generates code that uses Garbage Collection (GC) on the .NET and Java runtimes and Automatic Reference Counting (ARC) on the Objective-C runtime. This means that regardless of platform, the management of object life times is taken care of without explicit code needed from the developer, although the exact underlying semantics may differ slightly.

The Frameworks
One of the tenets of Oxygene is that it does not abstract away the different runtime environments it supports, but instread embraces each platform, according to RemObjects' philosophy on native development. The result is a development experience that is virtually identical on the language level, but provides full access to the capabilities of each underlying framework and generates truly native applications on each of the platforms.

.NET and Mono
On .NET (and its open source Mono counterpart), Oxygene works directly against the assemblies provided by the framework or by third parties. The Oxygene developer sees the same classes and types that are visible to C# or VB and the output generated by the Oxygene compiler are 100% pure .NET assemblies as well, virtually indistinguishable from those created using other .NET languages.

Oxygene developers have access to the full range of framework APIs, such as the .NET base classes, WPF, WinRT, WinForms, System.XML, Sytem.Data, and so on, as well as to any and all third party libraries written in C#, VB or Oxygene itself.

Oxygene also has full support and language integration for platform-specific features such as LINQ, the Parallel Framework, and more.

Applications created with Oxygene for .NET, especially servers and command line untilities, can (when using the right set of APIs) seamlessly run on both Windows (using .NET or Mono) and Mac OS X and Linux with the same executable. In fact, a lot of our own internal infrastructure here at RemObjects is implemented with servers created in Oxygene and Data Abstract for .NET and runs on our Windows, Linux and Mac OS X Servers, without much (or any) extra work to support these extra platforms.

Java and Android
When Oxygene was brought to the Java runtime, one of the main goals was to preserve the core benefits of what made Oxygene great and carry them over to the new platform. As such, Oxygene for Java also works directly against the frameworks and class libraries provided by the platform; Oxygene projects directly reference .jar files and have full access to the classes and types defined in them. The classes you define yourself and that make up your code are true Java classes, and compiled to .jar files indistinguishable from those created by a Java compiler.

For Dalvik, which is Google's variation of the Java runtime as used in Android, RemObjects support full integration with the tool chain to provide final Android executables, using the same sets of tools and conversions that a Java Language pp would go through, but all fully integrated into the Oxygene build and deploy cycle.

RemObjects also extended the language with new elements to make it integrate well with its new surroundings. Anonymous Interface Implementations, for example, make it easy to provide event-handlers and callbacks, Java platform style.

A language and compiler is only half the story for being productive and creating great apps and solutions. Oxygene rounds off the development experience with a strong development environment built on the Microsoft Visual Studio 2012 IDE.

For developers who already have a copy of Visual Studio 2012 Professional or higher installed (for example for use with C# of Visual Basic.NET), Oxygene seamlessly integrates itself with the existing development environment, so that you can use the Oxygene Language next to C# and Visual Basic.

For developers starting out fresh, Oxygene comes with its own version of the Visual Studio 2012, dedicated exclusively to Oxygene development for .NET and Java.

Working together, the just released Visual Studio 2012 environment and Oxygene's advanced IDE features take developer productivity to the next level.