Languages Platforms IDEs | Download Pricing |
A cross-platform compiler without compromises.


Elements comes with your choice of four different programming languages. You can pick your favorite, or you can mix different languages – even within the same project:

^^ Choose a language by clicking on one of the icons above

Oxygene is Object Pascal, reinvented for the 21st century.

Oxygene is the language we have been relentlessly innovating and driving forward over the past decade. We started with a vast super-set of Delphi, back in the day — and 15 years later, Oxygene now is the most advanced general purpose programming language out there.

If you use(d) or like(d) Delphi or Free Pascal, you will love Oxygene. And if you never used Pascal before, you are in for a real treat!

Learn more about Oxygene.

namespace WPFApplication;


  Window1 = public partial class(Window)




When you hear C#, you think ".NET" – but that's no longer the case.

RemObjects C# takes the C# language you know and love from working on .NET, Mono or Xamarin, and truly brings it to all platforms.

Decoupled from the .NET runtime, you can write Android SDK apps running on the JVM in your favorite language. Or you can use C# to write native Cocoa apps for Mac and iOS. In fact Fire, our Mac IDE, is written in 100% pure Cocoa C#. Just because we could.

You have the full C# language syntax – with some extensions, even – and full access to the native platform APIs, be it the Java or Android libraries, the vast Cocoa frameworks from Foundation to UIKit, and more.

Learn more about C# in Elements.

namespace MyIPhoneApp;

using UIKit;
using SiriKit;

public class RootViewController : UIViewController 
    public RootViewCentroller() : base withNib("RootView")

Swift is taking the world by storm.

Originally created by Apple for its own platforms, Elements takes Swift everywhere, from .NET to WebAssembly, from the Java VM to native Windows or Linux apps. And of course, RemObjects Swift also supports the Apple platforms – better and cleaner than Apple's own Swift compiler, some say.

You have the full Swift language syntax – with some extensions, even – and full access to the native platform APIs, be it the Java or Android libraries, the extensive .NET Framework Class Library, or more.

Learn more about Swift in Elements.

import android.os
import android.widget

public class MainActivity: Activity {

    public override func onCreate(_ savedInstanceState: Bundle!) {
        ContentView = R.layout.main

The Java Language is finally going on trial separation with its runtime, and going fully cross-platform.

With Elements, you are now able to use the Java language to write code for .NET, Cocoa and Island – as well as, of course, for the Java Runtime and Android itself. Elements also brings Java to the next level, with advanced features such as support for properties and more.

Whether you're an Android developer just looking for a better development experience than ADS, or are looking to expand your project and reuse your Java expertise on iOS, .NET, the Mac or Android NDK code — Elements is for you!

Learn more about the Java Language in Elements.

package MyIPhoneApp;

import UIKit.*;
import SiriKit.*;

public class RootViewController extends UIViewController {

    public RootViewCentroller() {
        super withNib("RootView")

P.S. Elements' implementation of the Java language is not to be confused with its support for the Java Platform in the existing three languages. Bad naming decision on their part, we'd say ;). With Elements, you can use the Java language for any platform. Or any of the four languages for the Java platform.

Elements makes you productive creating great apps and software projects.

The Elements compiler tool chain gives you a choice of four programming languages and related tools that allow you to build apps for all major platforms. From iOS to Android, from Windows to the Mac, from ASP.NET to Java services.

No matter which language you choose, Oxygene, C#, Swift, or Java, you can use it across all the platforms. And each of the languages is super-charged with advanced features that will bring the joy back into programming and make you more productive than ever.

If you work on Windows, Elements integrates deeply with Visual Studio. And if you work on the Mac, you can use Fire, our own state-of-the-art development environment. Both support development for .NET, Cocoa, Java/Android and the new Island platform, and provide a first-class development experience for all three Elements languages.

Featured Case Study: Curaçao Weather Report

Learn how Vision Thing B.V. used Elements to write their mobile application for iOS and Android, alongside a server back-end and a Windows-based reporting app — all in Swift. Read More.


Elements supports four different development platforms.

Think of it not as "cross-platform development", but as truly and natively supporting each of these platforms as a first class citizen and development solution.

Learn more about each platform below:

^^ Choose a platform by clicking on one of the icons above to learn more.

Echoes: Target .NET, ASP.NET, WinRT, Mono, Xamarin and More

“Echoes” is the name for Elements' support for the Microsoft Common Language Runtime (CLR), also often referred to as .NET.

Elements lets you write apps for all flavors of the CLR, from the standard .NET Framework, over the open source Mono and Xamarin platforms, to WinRT for Universal Windows apps, and even Silverlight. Of course Elements also supports ASP.NET for web development as well. This website itself is implemented in Oxygene using ASP.NET.

“Echoes” is our platform of choice for creating Windows apps, websites, and cross-platform servers and command line tools via Mono.

Explore our Docs for the .NET Platform.

Cooper: Develop Apps for Android and Pure Java

The “Cooper” platform encompasses Elements' ability to build apps for the Java Runtime (JVM) and Android.

This lets you build apps for every place that Java can run – from PCs to embedded devices – and of course includes extensive support for today's most relevant use of Java: creating native Android apps.

You have full access to the standard Java class library and (on Android) all the standard Android libraries. You can also seamlessly reuse any existing Java and Android libraries (.jars or .aars) out there – from Google Services over third parties to open source components. And the executables you create will be pure cross-platform Java byte code.

“Cooper” is our platform of choice for creating Android apps.

Read more in our Docs for the Java/Android Platform.

Toffee: Native Cocoa apps for macOS, iOS and tvOS

Under the “Toffee” platform, Elements lets you build native apps for the Apple platform, via Cocoa. This encompasses iOS, macOS, tvOS and watchOS.

Elements lets you create apps for all four of Apple's platforms, using the native Cocoa APIs and compiling to CPU-native code for the respective platforms (64-bit Intel for macOS, and 32-bit and 64-bit for iOS and its siblings).

You have full access to the Cocoa class libraries, from Foundation up to AppKit/UIKit and all the frameworks Apple provides. And you can seamlessly reuse any existing Cocoa libraries out there – from third parties to open source, simply by importing their headers.

“Toffee” is our platform of choice for native apps for the Apple platform, including iOS, macOS and tvOS.

Dive into the Docs for the Cocoa Platform.

Island: Compile CPU Native Code for Windows and Linux

“Island” is the newest Elements platform, introduced with Elements 9.

Since we started Elements with just a single language (Oxygene) and a single platform (.NET) back in 2004, users have begged us to add support for creating CPU-native Windows executables as well. Island offers that, and adds native Linux, Android NDK support to the mix, as well as WebAssembly.

Now you can use Elements to write high-performance CPU-native code for Windows, Linux and the Android NDK – with more targets to come. You have full access to the platform's native C-level APIs such as the "Win32" API on Windows, and glibc on Linux, and you can link to any existing libraries by importing their C headers.

Island also comes with its own minimal RTL and basic class library that gives you an object system, native String and collection types, and supports Elements RTL.

“Island” is our platform of choice for creating small Windows and Linux utilities and server apps, and to implement highly-efficient bits of code to be embedded in .NET based Windows apps.

Read more about Island or browse the Docs.

Development Environments

Elements provides you with two choices for your development environment, depending on whether you work on Windows or the Mac. And with Water, we have an exciting third option for Windows coming, later this year:

^^ Choose an IDE option above to learn more.

If you develop on Mac, you will love Fire, our Mac IDE for Elements.

Three years in the making, we first introduced Fire in 2016, and it has instantly become a favorite among our users. And it's getting better every week.

Fire was designed from the ground up to be a great Mac app, to be fast and lean, and to focus on letting you get your job done well. It is responsive, unobtrusive, yet vastly powerful with a sophisticated code editor, great debugger support and an innovative navigation model.

Fire also supports development for all of the Elements platforms, including .NET, Java and native Windows and Linux apps, right from your Mac.

Read more about Fire.

If you're a developer on Windows, we've got great news for you: Water.

Water is our brand new IDE for Windows, build upon the experience and design philosophy from Fire, but re-imagined from the ground up for the Windows environment. Water takes our work from Fire for re-thinking what a modern and productive IDE experience should look like, and applies it to Windows – but it's not a simple "port" or a cross-platform IDE, it is the Elements IDE, truly re-designed around a Windows-first developer experience.

Just like Fire, Water supports development for all of the Elements platforms, including .NET, Java, Cocoa, Linux and WebAssembly apps, right from your Windows PC. And Water co-exists with Visual Studio, so you can work with the same projects in any of our three IDEs.

Read more about Water.

Elements also integrates into Visual Studio, the standard .NET IDE from Microsoft. This this a great choice when you use Elements side by side with Visual C# or Visual Basic.NET, or want to use visual designers for creating Windows GUI apps in WinForms, WPF or UAP, and for ASP.NET.

Elements comes with its own copy of Visual Studio 2015, so you don't need to own or purchase a separate license – but if you already own and use Visual Studio 2015 or 2017, say with Visual C#, Visual Basic or Visual C++, then Elements will integrate right into that copy.

Even in Visual Studio, Elements supports development for all platforms. For debugging and testing Mac, iOS, tvOS or Linux apps, Elements will seamlessly connect to your Mac or Linux machine via our CrossBox technology.

Read more about Elements in Visual Studio.

Command Line

Whether on Mac, Windows or even Linux, you can use your favorite external editor and Elements' command line build chain to work on and build your projects.

Elements lets you use msbuild/xbuild or the standalone ebuild command line compiler from terminal, your automated build scripts, or even triggered from within your favorite text editor. EBuild is our new cross-platform open source build chain that we're moving all Elements lagauges and platforms over to.

Read more about EBuild.

What's new?    |    Forums    |    Twitter    |    Facebook