This blog post is based on a pre-release version of the RAD Studio software and it has been written with specific permission by Embarcadero. No feature is committed until the product GA release.
There are many improvements coming in Delphi 12, as we are seeing in the Yukon beta.
String Literals
String literals in Delphi have long been limited to a maximum length of 255 characters. This is an artifact of Delphi’s origins, as the successor to Turbo Pascal. But we will soon find support for much longer string literals, and for multi-line string literals.
Whether you wish merely for strings longer than 255 characters, or for the ability to define literals which contain full paragraphs of text, Delphi 12 will support such things, as do other modern languages. And indeed, for those who may have been away from Delphi, it is a modern language, alive and well.
The changes in support of string literals are important and useful, but only a small part of the story.
Language Server Protocol (LSP)
The addition of LSP a few releases ago is something which brings great benefits, and it is much improved over earlier releases. LSP powers the Code Insight operations, and as it runs in the background, the Delphi 12 IDE is more responsive. This will be most apparent in work on large applications where the older releases could be sluggish in presenting the suggestions for Code Completion.
LSP also improves our experience of Error Insight. Some may have noted that in earlier releases, LSP did not fulfill all their dreams. But LSP is a large project, and a complex undertaking. We can expect it to receive continuing attention and enhancements.
VCL Enhancements
As a Windows developer, I appreciate the continuing enhancements to the Delphi VCL (Visual Component Library). Many — perhaps most — Delphi developers use third-party components as well as those which ship in the product. From the beginning, Delphi has provided a broad components in the basic product, while also providing the means for others to develop components which work in the same way. Many companies have produced Delphi components, and still do.
There is a somewhat delicate balance between the need for components delivered in the product and those from commercial developers. The components in the product are essential to getting people started, for one thing. But those from commercial — and from the many open-source developers — are necessary to fulfilling specialized needs.
In recent releases, we have seen the addition of component packages which are well beyond the basic. One of my favorites is the KSVC controls written by Ray Konopka, which present a very comprehensive set of controls for user interface design. Another very extensive offering is Skia4Delphi, based on Google’s Skia graphics library. Yet another which many will find useful is Python4Delphi, which integrates into Delphi the capability of creating and running Python scripts and more.
Delphi 12 also achieves improved support for High DPI development. This is a particularly challenging area, partly as the underlying OS operations are in continuing development.
Delphi component offerings continue to grow, and Delphi 12 offers new and improved components.
Platform Support
My daily work is in Windows desktop applications, so I have not been overly excited about other platforms, but Delphi 12 builds apps for Windows, Android, iOS, macOS, and Linux, and does so from a single codebase. Rather than attempt to enumerate the support on these platforms, I must refer you to the Feature Matrix for Delphi 11.3, which presents in 27 pages the extensive features of the tool.
Summary
It has become quite ordinary to see developers in other languages make use of multiple languages to achieve the results they need. And though Delphi developers can do likewise, such multi-language adventures are becoming less necessary as Delphi becomes more comprehensive in what it offers. Moreover, though it is certainly good to be capable of working in multiple languages, few of us will be equally aware of all the details of all the languages we use. Delphi is more than sufficient to my needs, and is a pleasure to use.