Elements comes with your choice of six different programming languages. You can pick your favorite, or you can mix different languages – even within the same project:
Oxygene (Object Pascal)
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!
namespace WPFApplication;
uses
System.Linq,
System.Windows.*;
type
Window1 = public partial class(Window)
constructor;
begin
InitializeComponent();
//...
end;
end;
end.
C#
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
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.app
import android.os
import android.widget
public class MainActivity: Activity {
public override func onCreate(_ savedInstanceState: Bundle!) {
super.onCreate(savedInstanceState)
ContentView = R.layout.main
//...
}
}
Java
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 all 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 languages for the Java platform.
Mercury
Mercury is a BASIC language implementation that is backward code-compatible with Microsoft Visual Basic.NET™. With Mercury, you will be able to build your existing VB.NET projects for .NET, and leverage your Visual Basic™ and VB language experience to write code for all Elements platforms.