Elements 9.1 builds on our major new Elements 9 release from late 2016, brings a number of major new features and smaller enhancements, as well as an enormous list of fixes and under-the-hood improvements:
This version marks the most significant update to Fire yet.
Fire has seen streamlining and performance improvements in many areas. The code editor should feel even more fast and responsive, and there will be less CPU overhead during builds, for example. 100% responsiveness has always been a top goal for Fire. Most of the work on Fire is done on an extremely-low-power 12" MacBook 'Adorable', and our base line is that Fire must be awesome to use on even that lowest end of hardware. Version 9.1 makes that even more so.
The debugging experience in Fire has been enhanced in many regards, most notably with the introduction of our new interactive debug console. When your app breaks into the debugger, the bottom console view now lets you interact with the debugger using the debugger command prompt.
On platforms that use LLDB (such as Cocoa and some Island targets), you get access to the full command interface of LLDB with all its capabilities; on other platforms, you get our
edb prompt, which offers essential commands and will be expanded over time.
Fire (and the Elements build chain) gains support for explicit Gradle reference management in Java and Android projects. Rather than having to maintain a
.gradle file manually, Gradle references are now first class members of a project, just like regular references, and they can be added and updated via the "Manage References" sheet.
Fire also uses a technology preview of our upcoming EBuild tool chain for more sophisticated reference resolving inside the IDE. This gives you a tree of all direct and indirect references pulled into your project, along with details where they came from, and makes sure the IDE smarts know about all references — even before your project is built.
And you're not even seeing the bulk of work that went into the Fire code base for this release (yet): We've been busy refactoring all the underpinnings to be based on our new Elements RTL and to be fully cross-platform for Water.
This also tremendously helped drive Elements RTL itself forward, for this release. Want to learn more?
Elements in VS
Even with Water coming soon, Visual Studio is still our primary IDE for developers on Windows – and Elements 9.1 brings a whole slew of new features and enhancements to Visual Studio.
Probably the biggest new feature, and the one the team has been working on most for the past half year, is support for the all new Visual Studio 2017 IDE. While there's no Shell (yet?), Elements 9.1 offers to integrate with existing installs of Visual Studio 2017, including Professional, Enterprise and the free Community Edition.
Of course all four platforms and all three languages are supported in VS2017.
Because Visual Studio 2017 introduces an all-new project integration system that is still very much in flux and being worked on by Microsoft, we're calling Visual Studio 2017 support "experimental" in this release. It is is working well, and production useable, but we expect subsequent releases (of both VS2017 and Elements) to improve it further.
Our new native Island platform, originally introduced in version 9, has also been a major focus point for this release, with many improvements and enhancements, and dozens of fixes:
Island developers targeting Linux can now run and debug their apps seamlessly on the local machine right from inside Visual Studio, on Windows 10 Creators Update or later, using the new "Bash on Ubuntu on Windows" (that's a mouthfull!) Linux sub-system Microsoft is including with their latest OS update. Simply click "Start" or press F5, and off you go!
With Elements 9.1, the Island platform gets support for two new sub-platforms.
Linux apps can now target
armv6 and later CPUs, in addition to our existing support for Intel x64. This lets you develop Island apps that can run on embedded devices, from the Raspberry Pi all the way down to Bare ARM systems, and more.
In addition, we also added Android NDK as a brand new sub-platform, allowing you to build CPU-native Android app extensions (or whole apps) using their NDK, in Oxygene, C#, Swift and the Java Language. Finally, it's time to take your C++ compiler out to pasture...
EUnit, Elements RTL (more on that below) and Delphi RTL have all been ported to Island for this release, now giving you full parity across all three platforms when using these (optional) libraries.
Shipped as preview in the last release, Elements 9.1 officially introduces Elements RTL, our new de-facto cross-platform compatibility library.
Replacing/superseding "Sugar", Elements RTL is an optional (!!) library you can use in your projects, regardless of platform, to write common code that can easily be platform agnostic and shared between the different platforms. Whether you're writing an iOS app you plan to port to Android, or a desktop app that you want to create a Mac and Windows version of (much like our own Fire/Water, which was a huge driver for the library), Elements RTL makes it easy to share code.
Of course Elements RTL supports our new Island platform, as well.
Our Delphi RTL compatibility library for users porting Delphi code to Oxygene has also been vastly improved since its initial release last Fall. Instead of Sugar it is now based upon Elements RTL, and also available for Island, making it truly cross-platform across all Elements targets. It's also grown in scope, with more and more system functions being supported, and more base classes being added as well.
See also what was new in Version 9.0, Version 8.3, Version 8.2, Version 8.1...