Screenshot Preview

Oxygene - Summary

by RemObjects Software - Product Type: Add-In

Summary

Oxygene by RemObjects Software

URLs: oxygene, remobjects

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. It 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.

The IDE

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.

What's New in Oxygene 6

Oxygene for Cocoa - Previously also known under its codename "Nougat", the biggest and most significant addition to version 6.0 is the introduction of the new and third platform for the Oxygene language: the Cocoa platform (and the Objective-C) runtime.

Oxygene for Cocoa introduces an all new compiler back-end that lets you create fully native applications for Mac and iOS, compiled straight to x64 (Mac) and ARM (iOS) instructions, fully leveraging the Objective-C runtime, the Cocoa classes, and the native UI widgets on Mac and iOS.

Features and benefits of the new Oxygene for Cocoa edition include:

Brand new compiler back-end for the Objective-C runtime using LLVM

New Language features, including

Automatic Reference Counting

Support for Oxygene for Cocoa strong, weak and unretained object references

Multi-part method names

Auto-boxing of numbers and strings

Toll-free bridging support between Cocoa objects and Core Foundation entities

Inline methods

…and more

Complete tool-chain integration into Visual Studio, including:

Profile and Certificate management

Build, link, .app-pack, code-sign, IPA generation build cycle integration

Support for working with .XIB and .Storyboard UI files

Full Cocoa debugging support integrated into the Visual Studio debugging environment

Support for profiling and testing of apps in Instruments

Extensive set of project templates to get you started

New Language Features

Aside from Cocoa support, a variety of (smaller) enhancements have been made to the language.

"unit" level visibility has been introduced for all three platforms, giving you even more control over what parts of your code can access the classes and members you define, even within the same project and executable. unit visibility is available for types and members, and unit and protected and unit or protected visibilities are available on members, additionally.

Support for low-overhead and precise comparisons between signed and unsigned integers of the same size has been added. Most languages will either fail to compile such comparisons, or will perform a binary comparison that will have wrong results for negative values. Starting with Oxygene 6, it is now valid and safe to compare, say, an Int32 and a UInt32 (all platforms).

Two Pascal classics, the write() and writeLn() compiler magic functions have been added to Oxygene for all three platforms, making it easier to write information to the console from code shared between .NET, Cocoa and Java.

Another enhancement for sharing command-line application code across platforms is the introduction of a unified entry point signature for all three platforms. Despite different requirements by the underlying environments, Oxygene will now accept a Main() method with optional array of String parameter and Int32 result, in all three editions, and take care of the rest for you.

Block (a.k.a. "delegate", on .NET) types can now be defined inline, for example in method or property declarations, without requiring an explicit named type declaration (on .NET and Cocoa). In addition, the new block keyword has been introduced to replace the (now deprecated) delegate keyword, for more consistent terminology across all three platforms.

Support for futures has been expanded, allowing the assignment of "async anonymous methods" to future types. Futures also work consistently across all three platforms now, including Cocoa.

A new Compiler Directive $GLOBALS (or $G for short) has been added to turn support for global functions (off by default) on or off more granularly, on a per-file level (before, Globals would only be turned on project-wide).

New standard conditional defines GC (on .NET and Java) and ARC (on Cocoa) are provided, to conditionally compile for ARC vs. GC. Also, new ECHOES, NOUGAT and COOPER defines have been added to mark the three editions, as well as the more official COCOA (which joins the existing DOTNET and JAVA defines).

Other New Features

A new Prefer 32-bits flag option is provided for .NET executables, in order to mark them to run as 32-bit (on 64-bit systems) by default, without requiring to explicitly mark the executable as being "x86-specific", which would preclude execution on ARM devices, such as on Windows RT.

The Android toolchain has been improved to more reliably detect various Android SDK variations and with support for the new ATD Bundle version of the Android SDK download and updates for toolchain changes in the 4.2.2 SDK.

The .target files that drive the Oxygene build process have been streamlined, improved and renamed more consistently. In addition, brand new cross-platform-capable (i.e. friendly to Mac command-line builds) infrastructure has been put in place for resolving references, in all three editions.

The code editor has been improved to optionally support different color coding for local types versus external types.

Finally, starting with Oxygene 6, RemObjects are focusing their IDE integration development solely onto Visual Studio 2012 and later/future versions of the IDE. Support for Visual Studio 2010 has been phased out.

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

Pricing: Oxygene 6.0 (.NET, Cocoa and Java) 1 User License - Includes Maintenance and Basic Support (1 Year), Oxygene 6.0 (.NET, Cocoa and Java) 1 Subscription Renewal License - Includes Maintenance and Basic Support (1 Year)

Evals & Downloads: Read the Oxygene End User License Agreement, Download the Oxygene 6.0 evaluation on to your computer- Expires after 30 days

Operating System for Deployment: Windows 7, Windows Server 2008, Windows Vista, Windows Phone 8, iOS 6.0, Android 4.2 (Jelly Bean), Android 4.1 (Jelly Bean)

Architecture of Product: 32Bit, 64Bit

Product Type: Add-In

Compatible Containers: Microsoft Visual Studio 2012, .NET Framework 4.5, Cocoa

Keywords: Oxygene, oxygene .net, Oxygene 5 for Java, Oxygene for Java, pascal

Development

ide, ides, integrated development environments, integrated dev environments, dev environments, development programs, development environment, development environments, software development tool

Part numbers: PC-542718-562591 542718-562591 PC-542718-562593 542718-562593

Product Search

Enter search words:

Why buy from ComponentSource?

ComponentSource offers a unique global service, used by over 1,000,000 software developers worldwide.

More Info | About Us