What's New in Elements 9

Elements 9 is the most significant major update of Elements we have ever shipped, and we are really proud of what the team has accomplished this time around, both in terms of new features, overall improvements, and also in terms of stability and quality of this release.

The new version includes many major new features and significant improvements and enhancements across the entire product area.

In addition to the new features and functionality, this update really focuses on quality and out of the box experience, with over 2500 individual commits in the core Elements repository alone. Find out what is new in the summary below – and as always, check out our detailed Change Log for a complete list of all features, enhancements and bug fixes.

Native Linux and Windows

Welcome to the Island! With Version 9, Elements gains its fourth major target platform: native Windows and Linux (as well as the groundwork for other native targets, moving forward).

Swift 3.0

Apple has evolved the Swift language in major ways for version 3.0, and Elements adds support for this new version of the language, including many language enhancements and changes, as well as the Grand Rename of imported Cocoa APIs.

Unified Class Syntax for Oxygene

Oxygene is growing up and throwing away the shackles of separating class declaration and implementation – if you want to. With the new Unified Class Syntax, you can now implement methods right inside the declaration, bringing Oxygene closer to the simplicity of C# and Swift or Java.

Integrated EUnit Testing in Fire

Elements 9 takes unit testing with EUnit to the next level. Simple press ⌘T in Fire, and your test project will build, run, and report test results back to you right within the context of your code – the same way you also see build messages.

Escape from Delphi: The Library

Continuing our Escape from Delphi theme, we keep making changes to make it easier for Delphi developers to port their code over to Oxygene.

Elements 9 ships a preview, really just a first glimpse of what's to come, of a new library that aims to bring the most common Delphi RTL and (non-visual, non-db) VCL functions and classes over to Oxygene, so that you can reuse yet more code, unchanged.

This includes a Delphi-compatible WideString type, units such as SysUtils, and of course classes such as TStringList & Co.

The library is open source, and a work in progress, but a first preview is shipping in this release.

Sugar: Improved

Sugar has improved a lot for Elements 9, with new APIs on existing classes, new encapsulations (such as Encoding, TimeZone or Locale), and dozens of fixes. The library is really coming together as a great base library to use in projects – cross-platform or otherwise.

Language Improvements

And like always, Elements has a plethora of other core languages and compiler improvements.

New in this version are support for interface extensions and default interface implementations (think "mix-ins") for Oxygene and C#, full extension type support in C#, some initial C# 7 features, and much more.

Fire “2.0”

Shipped just earlier this year, Fire (our brand new development environment for Elements on the Mac) keeps getting better and better. From a new Call Parameter list in the editor to inline in the debugger locals, from a new Command Line Argument Manager to Integrated EUnit testing, and more.