Looking to the future

by Tim Anderson

Where next for Embarcadero Delphi and C++Builder? Tim Anderson talks to David Intersimone.

HardCopy Issue: 57 | Published: September 1, 2012

Embarcadero is well known for its development tools, namely Delphi and C++Builder. The big news at the moment is the unification of its compiler technologies on the foundation of the open source LLVM project. We spoke to Embarcadero technical evangelist David Intersimone to find out more.

LLVM is a set of compiler technologies which achieves both language independence and target independence thanks to the use of an intermediate code representation called LLVM IR. Another part of LLVM is Clang, a C/C++/Objective-C compiler, and it is this which Embarcadero will be using for its next-generation C++.

The result is that the next version of C++Builder will have full 64-bit support, full support for C++ 11 standards, and the ability to target multiple platforms including Windows, Mac OSX, iOS and Android on ARM. Linux support is also planned.

“We’re integrating all that into our IDE for C++ developers,” said Intersimone. “We’re also going to be using that same tool-chain with our Delphi compiler as well.”

According to Intersimone, it made more sense to contribute to Clang and update it to support the property-method-event extensions used by Delphi and C++Builder, rather than continuing to go it alone.

“Over time it just got harder to add new capabilities to make programming simpler and to add power and richness to the languages. C++ is a monster language, with a lot of power and a lot of complexity. It made perfect sense to fit our extensions into it, rather than building a compiler from scratch and having to continue to track the language into the future.”

There is going to be a lengthy period of transition though: “We made the decision, for the 64-bit compiler, to use Clang and LLVM. We’re going to keep our existing compiler for 32-bit Windows for now, and then eventually replace that. For Delphi we’re still using our existing compiler, but we’re working on a next-generation compiler for Delphi. The work on this next generation of compilers will continue over the next 12 to 18 months.”

Embarcadero has two key frameworks, namely the VCL (Visual Component Library) for Windows, and FireMonkey for cross-platform. Given the importance of cross-platform today, this could mean less investment for the VCL. However Intersimone assured us: “As long as there is a Windows SDK and native code, then VCL will be around and we’ll keep moving it forward. But for cross-platform it’s all about FireMonkey. FireMonkey is being continuously updated.”

Rad Studio XE2 screenshot

C Builder project options in Rad Studio XE2, showing FireMonkey HD and 3D applications as well as VCL windows.

Embarcadero has reasons to stick with FireMonkey, rather than adopt another cross-platform approach: “Number one, FireMonkey is compiled native code on each of the platforms. Small, fast, optimised. Number two, it leverages the underlying graphics systems of the platforms. So for HD applications it works with DirectX 2D on Windows and Core Graphics on Mac and iOS. For 3D it works with Direct 3D on Windows and OpenGL and OpenGL ES elsewhere. For Android we’ll use the native NDK, rather than the Java SDK, to go right at the CPU, to go right at the GPU, to go right at the operating system.”

Intersimone argues that native code is better than HTML and JavaScript for taking full advantage of each platform. Accessing device features and overcoming obstacles is “much harder to do on some of these other platforms built on JavaScript and HTML. They are not native code applications.”

There is also the question of Windows 8 support, both for desktop and Windows Runtime (WinRT) applications. Here Intersimone told us: “For 2012, it’s really about supporting Windows 8 with native code and the SDK, and making sure that VCL and FireMonkey applications and console apps still work with Windows 8. Then we’re spending time mapping out what we’re going to do to support WinRT on Intel, WinRT on ARM, and whatever the Windows Phone platform might become in the future.” Although Embarcadero’s tools have cross-platform support, the IDE still runs only on Windows. We asked whether that might change: “It’s something we’re looking at eventually. Right now there are two IDEs that we have. One is the IDE that is in Delphi and C++, the RAD studio IDE. We have a second IDE that is built in Delphi for our RAD PHP product.

“We’ve combined all the IDE teams into one global team to look at moving the IDE forward so that sometime in the future we can have a common IDE that could run on multiple platforms. But for now we’re still tied to Windows. We will be for at least the next 12 to 18 months.

“For now it’s cross-compiling and using our Platform Assistant server to do remote debugging and deployment on different platforms.”