Escape from Delphi

 

Now Is the Time to Switch

Things have been looking tough in Delphi-land for a while now, with Embarcadero focusing on milking existing users stuck on their platform, and development of the tool chain all but halted. In mid-2016, almost the entire R&D staff for Delphi and related tools has been let go. The future is not looking bright.

Delphi developers are rightfully concerned, and many of you 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, but know they can rely on a development environment that's being actively driven forward, and supports all modern platforms natively.

With our recent release of Elements 9 and moving forward, we are putting a lot of emphasis on making it 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:


The Oxygene Language

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.


The new Delphi Compatibility Library

New in 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 ;).

Read our blog post about Delphi RTL, or see it on GitHub.


Native Linux and Windows

We know many Delphi developers feel very strongly about CPU native code. New in Elements 9, we have 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).

Read More about Island or browse the Docs.


Hydra

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.

Read More about Hydra.

More to Explore


Work on Windows or Mac

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.

Read More about Fire or browse the Docs.
Or read more about Elements in Visual Studio.


Elements RTL: Elements Cross-Platform Library

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.


Explore the Docs

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.

The Platforms

Oxygene supports all major target platforms at their native and most sophisticated level:

     

  • Use the Echoes platform and .NET/Mono to write native Windows and Windows Universal Apps, or to create cross-platform server and command line tools.
  • Use the Cooper platform and the Java Runtime to create native Android apps, and Java-based apps that can run on billions of devices, as well as Macs and PCs.
  • Use the Toffee platform and Cocoa to create native apps for all of Apple's ecosystem — macOS, iOS, tvOS and watchOS, using the same native APIs as Objective-C and Swift developers.
  • Use the Island platform when you want to get down and dirty and build CPU-native code for Windows (32- and 64-bit) and Linux.

Read More about the Platforms or browse the Docs.

The "Escape from Delphi" Offer

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 four platforms, as well as Hydra, which will ease your migration by letting you mix Delphi and .NET (and more) in the same app. At usually $499 for Hydra on its own, that's a pretty great deal!

As part of the purchase, you will also get access to (roughly) weekly betas for Oxygene moving forward, and to previews of Water, our upcoming Windows IDE.

If you want to explore all four language options, for $799 you get the whole Elements suite, with all four platforms, all four languages (including the new Iodine/Java compiler) – 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