Hands On Texas software house Embarcadero Technologies has said it will license FmxLinux for Delphi, allowing developers to compile desktop applications for 64-bit Linux.
FmxLinux is a toolchain for compiling Linux desktop applications using Embarcadero’s Linux compiler for Delphi, which is also part of the RAD Studio bundle. FmxLinux was developed by a third party, Eugene Kryukov. It has been licensed under “a long term distribution agreement,” says Embarcadero’s Marco Cantu in the announcement this week.
Embarcadero is a division of Idera Software.
RAD Studio is already a cross-platform development tool, with support for Windows, macOS, Android and iOS. RAD Studio 10.2, released in 2017, included an LLVM-based Linux compiler for server applications, but not desktop. The new agreement completes the picture by adding desktop GUI (Graphical User Interface) applications.
The framework used is FireMonkey, explaining the “Fmx” in the name. FireMonkey was introduced in 2011 to support cross-platform development, alongside the Windows-only Visual Component Library (VCL). One of the components is WebKitGTK, a browser component, which lets you run web applications within a desktop app.
Cantu says that GUI Linux apps are particularly in demand for kiosk applications, where a single application runs full screen. Often such systems run Windows, but Cantu notes that FmxLinux is popular in “scenarios in which the cost of a Windows license is a significant issue.”
There may also be a hope that Linux systems will be less prone to the embarrassment caused by Windows dialogs or error messages on large public screens in airports and elsewhere.
Linux support is currently a feature of Delphi but not C++Builder, the related product which uses the C++ language. This is because Embarcadero has not yet developed its Linux compiler to support C++Builder.
The Enterprise or Architect edition of Delphi or RAD Studio is required for Linux support; the free community edition will not cut it, nor will the Professional edition. Current prices are £2,464.15 for Enterprise and £2,898.91 for Architect. Cantu said on Twitter that “we’ll consider” Linux support in the community edition, which may make more sense now that desktop applications are included.
The chronicles of Delphi and the Kylix kids
Delphi goes back a long way, and this is not the first time Linux has been supported. Borland Delphi 1.0 (16-bit) came out in February 1995, with Anders Hejlsberg (now at Microsoft) playing a key role in its development. The language of Delphi is a variant of Pascal. The product was loved for its combination of true native code compilation with a drag-and-drop visual environment: the best of both worlds for those previously considering either Microsoft’s Visual Basic or Visual C++.
Borland Kylix came much later, in March 2001. This was a full Linux visual development environment, with both development and deployment supported, no need for Windows (though Wine, the Windows compatibility layer, was required). There was also a cross-platform component library called CLX.
This may bring back memories: Delphi Kylix was a previous effort at targeting desktop Linux (Click to enlarge)
Kylix 2.0 and 3.0 followed, but the product was not a success. It was an old problem: many developers said they wanted Linux support, but the number of them willing to purchase the product when most paying customers run all their desktop applications on Windows was limited. In addition, there were performance and compatibility issues.
The world is different now. Linux is more popular than ever for server applications, particularly with the trend towards containerised applications of which the great majority are Linux based. Linux on the desktop is not so strong, unless you count Android; but even here there are some interesting developments when you consider the success of Raspberry Pi and the claim that version 4 is a capable PC replacement - though note that Delphi's Linux compiler is x64 only at the moment.
Go fourth and multi-Pi: Raspberry Pi 4 lands today with quad 1.5GHz Arm Cortex-A72 CPU cores, up to 4GB RAM...READ MORE
Another factor is Microsoft’s Windows Subsystem for Linux, now part of Windows 10. Microsoft does not ship a GUI with this but it is not hard to add, particularly in version 2.0, which runs in a virtual machine for full compatibility. In principle it should not be hard to get Delphi’s Linux compiler working with WSL.
Under the Vulture's claw: A quick hands-on
We installed the trial of Delphi 10.3 Architect and tried out the new Linux support, running up Ubuntu in a Hyper-V VM. On the Ubuntu side, you have to install an agent which communicates with Delphi on Windows. Configuring a Delphi application for Linux support is a matter of taking a multi-device project and selecting an “Add Linux platform” option. Then you can select 64-bit Linux as a target, configure communications with the agent, and click Run to have the application open up on Ubuntu.
Delphi is not so well-known now, and for good reasons. It retains a niche of support among developers who still appreciate the combination of rapid development and a native code compiler, but there are many more options today, not least the open source Lazarus project which has substantial compatibility with Delphi and has supported Linux desktop development for years. Even the latest Delphi does feel dated.
Embarcadero though is still actively developing Delphi and version 10.3, released in November 2018, added features including HighDPI support on Windows, updated Android and iOS support, dark and light themes in the IDE, and on the server side, much better performance in RAD Server.
Seventeen years after the last release of Kylix, the return of support for desktop Linux applications in the official Delphi product is a welcome surprise, though the high price of entry will deter much of its potential market. ®