There has never been a better time for Delphi developers to make the move to Oxygene – whether to switch, use Oxygene for new projects, or mix and match Delphi and Oxygene depending on each projects's needs.
Many Delphi users 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 updates, 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.
Almost 20 years ago, 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 after 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
await. Or the very nifty Colon operator. And so much more.
Language wise, Oxygene is Object Pascal, taken to the max.
Since Elements 9 and evolving constantly as part of our open source portfolio, Oxygene comes with a 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 many of the the APIs.
This includes a Delphi-compatible
String 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. A few years back, in Elements 9, we introduced our new Island platform, which gives you all the power of the Oxygene language, emitting CPU-native code for Windows, Linux, macOS, iOS and the Android NDK 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 Hydra 5 and later, combining Island and .NET code is even easier, as is combining Island and Delphi!.
Read More about Island or browse the Docs.
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 special 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 and Water, our own development environments for the Mac and Windows. Fire and Water rethink what a modern IDE should look like from the ground up – it's fast, lean and unobtrusive, letting you be more productive than ever. And Elements also integrates deeply with Visual Studio 2017 or later, if you prefer.
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.
Read More about Fire or browse the Docs.
Or read more about Elements in Visual Studio.
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.
Learn for example about the minor differences and explore the major new features Oxygene has to offer. Still confused about how namespaces and references fit together? There's a topic for that.
Read more about Oxygene for Delphi Developers.
Oxygene lets you compile your code 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 language 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 includes 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 the 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.
Read More about the Platforms or browse the Docs.
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 "Delphi Developers ♥ Oxygene" package, you will get Oxygene for all platforms, as well as Hydra, which will ease your migration by letting you mix Delphi and .NET (as well as Island and JVM code) in the same Windows app. At usually $499 for Hydra on its own, that's a pretty great deal!
As part of the purchase, you will of course get access to weekly new builds of Oxygene moving forward, including our IDEs for Windows and Mac, Water and Fire.
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? Embrace Oxygene, 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.
“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