There has never been a better time to throw of the shackles of Delphi and make the move to Oxygene.
Many Delphi have been looking to embrace the Elements compiler and specifically Oxygene, our Object Pascal language, as an alternative that lets them keep using the language they know and love – Pascal – but know they can rely on a development environment that's being actively driven forward, and supports all modern platforms natively.
With our recent Elements 10 releases and moving forward, we are putting a lot of emphasis on making it ever easier and more seamless for Delphi developers to switch over to Oxygene – whether in full, or just partially for new projects.
Let's have a look what switching to Oxygene brings to the table for Delphi developers:
Oxygene is the Object Pascal language you know and love – taken to 11.
While Delphi's language has virtually stagnated over the past 15 or so years, we started out with a strong superset of what made Delphi great – back in 2004 – and have been innovating and improving the language relentlessly, year over year.
If you don't want to learn new features for now, that's fine. All the code you'd write in Delphi will work the same in Oxygene as well. And over time, you can embrace newer features to help you become even more productive in Pascal. Like nullability. Or future types. Or LINQ. Or the very nifty Colon operator.
Language wise, Oxygene is "the Delphi that could have been", if only it had not stood still for the past decade and a half.
New since Elements 9 and evolving weekly as part of our open source portfolio, we have a new compatibility library that makes it even easier to port or reuse Delphi code in Oxygene!
The Delphi RTL aims to bring across many of the important RTL and (non-visual, non-db) VCL functions and classes you know and use in Delphi every day over to Oxygene. This means you can reuse yet more code, unchanged, because it's not just the core language syntax that's the same, but so are the APIs.
This includes a Delphi-compatible
WideString type, units such as
SysUtils, and of course classes such as
TStringList & Co.
Delphi RTL implements most classes by seamlessly mapping them to platform-native APIs, so you get the best of both worlds: source-compatible APIs with Delphi, but underlying implementations that are well-tested and approved by the platform vendors. Not to mention seamless toll-free casting between Delphi RTL and platform-native types where needed.
The library is open source, and getting better every week. And while we encourage (and hope for) external contributions, we have dedicated staff who extends it continuously – spearheaded by a former lead developer from Embarcadero's VCL team ;).
See it on GitHub.
We know many Delphi developers feel very strongly about CPU native code. Back in Elements 9, we introduced our Island platform, which gives you all the power of the Oxygene language, emitting CPU-native code for Windows and Linux that's every bit as native as Delphi's.
Island is great for fine-tuning those CPU-intensive tasks, or writing code that directly interacts with the Win32 or Linux APIs. And with the all-new Hydra 5, combining Island and .NET code is even easier (as is combining Island and Delphi).
Of course you probably have a good and solid code base in Delphi that you don't want or can't just port over to Oxygene completely – we understand that. That's where Hydra comes in.
Normally a separate product, but available with Oxygene in our "Escape" offer below, Hydra is a set of libraries that makes it really easy to mix .NET code (be it written in Oxygene or any other language) with Delphi (VCL or FMX) code and UI.
Using Hydra, you can write new code in .NET and extend your existing Delphi project with it, or you can reuse existing Delphi code – be it application logic or even whole forms – in your new .NET projects, also mix Island/Windows, .NET and/or Delphi code, all in the same app.
Elements comes with Fire, our own brand new development environment for the Mac. Fire rethinks what a modern IDE should look like from the ground up – it's fast, lean and unobtrusive, letting you be more productive than ever. If you want to develop on Windows, we got you covered as well – Elements comes with a copy of Visual Studio 2015 and integrates deeply with it.
Whether on Windows or Mac, you can develop for all target platforms supported by Elements (see below), deploy right to your iOS and Android devices, and much more.
Oxygene focuses on using each platform's native APIs, rather than abstracting platform differences totally away from the developer. That said, a lot of code can still be written in a totally platform-agnostic manner, by using Elements RTL, our cross-platform base library.
Elements RTL provides classes for a lot of commonly needed functionality – from collection classes to HTTP access, from XML or Json parsing to a unified
String type. And in many cases it bridges toll-free to the platform's corresponding native types.
Read more on writing cross-platform code with Elements RTL, including extensive tutorials.
Oxygene and the entire Elements tool chain has a great and ever-growing set of documentation available at
docs.elementscompiler.com. But we also have a special sub-section dedicated specifically to Delphi developers making the switch.
Read more about Oxygene for Delphi Developers.
Oxygene lets you compile your code for for different target platforms. A target platform can be an operating system (such as Windows, or macOS) or a more virtualized multi-platform runtime environment (such as Java or .NET)
The same languages features are available on each platform and it is really easy to share code between platforms. But first and foremost, Oxygene is a great native fit on each individual platform, giving you full access to all the native APIs, frameworks, UI widgets, and so on:
.NET – The .NET platform included the regular .NET Framework, as well as Mono, .NET Core, ASP.NET, WinRT and Universal Windows Projects). .NET is a great target for writing Windows GUI apps, cross-platform servers (to deploy with .NET Core or Mono), command line tools, and websites. Read more.
Cocoa — Build apps for Apple's macOS, iOS, iPadOS, tvOS and watchOS, based on the Cocoa frameworks. Code interacts directly with Objective-C runtime classes and APIs, and also has full access to lower-level C and POSIX APIs. Read more.
Android — Build applications for Android, both using then regular Java-based Android SDK as well as extensions using the native Android NDK (using the same language!). SDK applications give you full access to the standard Android APIs, while Android NDK extensions are great for high-performance or low-level code in Android apps that cannot easily be achieved on the Java level. Read more.
Java – Build projects for the Java Runtime and related platforms. Your code will be compiled to Java byte code that can run anywhere the Java VM is supported. Read more.
Windows (native) — Build CPU-native Windows projects against the lower-level Win32 API or using Delphi RTL/VCL. Read more.
Linux — Build CPU-native Linux projects against the low-level libc and POSIX APIs. Read more.
For $499, $100 less than our regular price for Oxygene on its own, you can get a very special deal, if you are a registered Delphi user making the switch: If you buy our "Escape from Delphi" package, you will get Oxygene for all platforms, as well as Hydra, which will ease your migration by letting you mix Delphi and .NET (and more) in the same Windows app. At usually $499 for Hydra on its own, that's a pretty great deal!
If you want to explore all five language options, for $799 you get the whole Elements suite, with all platforms, all five languages (including C#, Swift, Java and Go) – again with Hydra thrown in for free.
What are you waiting for? Escape from Delphi, today!
How do you prove you have a valid Delphi license? You don't. We'll just take your word for it. We're weird that way, but we actually like our users, and we treat them with respect and trust them.
Also check our Escape from Delphi blog post for more!
“I've been a Delphi user for over 20 years. I still use it for our legacy applications, but we haven't migrated past XE8 as all the new bits are geared towards FireMonkey, which I tried but hated. I'd already tried what is now Oxygene, and found the way that it was progressing far better, especially for iOS, which I started developing for. I bought a Mac. I then found I was booting up a Windows VM only to run Delphi or Visual Studio, and the beta of Fire was available so I tried that. Now I only use Windows for Delphi.
“Fire has all the best features from all the best IDEs I've ever used. It is blazingly quick to use and compiling for iOS is also very fast, even on my old MacBook Air. Of course, I've had to learn about the Apple frameworks and that was the most time consuming part of going from Windows to iOS, but Fire certainly makes things easy, as it feels like other Mac apps and the fact it can use the same code completion and so on that Visual Studio does with Elements is brilliant. The more I've got to know it and the frameworks, the more Fire seems to know what I'm trying to do. The best thing is that my first real app written entirely in Fire has been said by our users to be 'amazing', 'so fast to use' and even 'revolutionary', and I love it when I get a new bit of functionality to add, as I know that I'll once again be playing with Fire.”
— Jeremy Knowles, Stocktake Solutions Ltd