November 07, 2023
Austin, Texas - Embarcadero Technologies announces the General Availability of RAD Studio 12 Athens, including Delphi 12 and C++Builder 12.
The 12 version of RAD Studio packs in an impressively large set of new features that go above and beyond what RAD Studio 11.3 provides today. Key features include:
- A Preview of a significantly updated Clang-based C++ compiler for Win64, to support the most recent C++ standard language features and offer a better integration with external libraries and C++ code
- Visual Assist integration in the IDE for C++Builder, providing best-in-class productivity tooling with code completion, code navigations and refactorings for the C++ language
- Delphi language additions including multiline string literals, to address a popular customer feature request
- Extensive Skia support throughout as the new foundation for FireMonkey resulting in new capabilities as well as noticeably higher performance and quality for rendering graphics and UI controls across all desktop and mobile target platforms
- A reworked MDI and a new tabbed UI architecture for VCL to help our customers modernize their existing applications, adding support for HighDPI and styling to existing programs with minimal effort on their side
- A new FireDAC QBE for easier data filtering and a new JSON wizard for Delphi to add a mapping of the data in the popular JSON format to objects, like we have for XML
- Many IDE productivity and quality improvements, to make it easier and faster to use RAD Studio for every day tasks
- Support for smart IDs in RAD Server, to make customer's hosted REST APIs more powerful and flexible, while maintaining RAD Server easy-of-use
"RAD Studio 12," Delphi Product Manager Cantù points out, "is a milestone release of the product. We have new compilers, including the preview of our new C++ Clang-based toolchain for Win64, and Delphi support for long and multiline string literals, huge changes in our libraries with the new FireMonkey Skia rendering engine and the VCL MDI redesign, a much more productive IDE for C++Builder with the initial integration of Visual Assist (truly a game changer), and the much improved Delphi LSP based code tooling, in additional to countless improvements from the installer to the RTL, from RAD Server to FireDAC and in all other subsystems -- all along with a significant focus on quality to address an incredible amount of customer reported issues."
Embarcadero Chief Developer Advocate Ian Barker agrees.
"Our biggest problem with RAD Studio 12 is being able to tell you all the good things we've packed into it with just a few words," he points out.
On the Delphi compiler side, 12 adds support for long string literals, multiline string literals, limited by triple quotes, to allow easier embedding of SQL, HTML, JSON, XML and similar multi line text within an application source code, a weak type alias definition for NativeInt for enhanced Win32/Win64 compatibility, better support for NaN floating point number comparisons, and the disabling of floating-point exceptions on all platforms.
Delphi 12 offers compatibility for Android API level 33, a Google requirement for the Play Store app submission.
FireMonkey and Skia
In terms of UI libraries the biggest improvements in RAD Studio 12 for both Delphi and C++Builder come from the integration of the very popular cross-platform rendering engine Skia, within FireMonkey. This is done by integrating the Skia4Delphi open source project, but also extending it with Vulkan support, support for effects and filters with the Skia Shading Language, a WebP Encoder, printer support, and printing to PDF.
RAD Studio Skia support includes direct APIs, specific UI controls (TSkAnimatedImage, TSkLabel, TSkPaintBox, and TSkSvg), and the automatic mapping of FireMonkey UI controls UI rendering via Skia. In general terms, Skia improves the quality of the rendering and the performance. The same Skia UI controls are also available in the VCL windows library.
"By building Skia into the very heart of RAD Studio 12," Ian Barker notes, "developers get a speed boost for cross-platform Firemonkey FMX and an immediate free injection of cool new features for all app types."
Outside of Skia support, which offers a new solid foundation for the future of the library, there is improved Android support matching many recent platform enhancements, new split screen support to allow FireMonkey application to work in a side-by-side pane on both iOS and Android, and extensive reworking of the text input capabilities of the single-line TEdit and multi-line TMemo controls.
Another significant improvement to the IDE for FireMonkey development is the introduction of a wizard to generate icons and splash screens at all of the resolutions, required by Apple and Google, starting from a single SVG image and the support for Android's adaptive icons.
Wonderful Things for C++
A significant focus of the new release is on C++Builder and the C++ toolchain (available also in RAD Studio). The team focused on two key C++ improvements: modernizing the C++ compilers and toolchain, and providing amazing productivity with code completion as well as adding refactorings and navigations by integrating Visual Assist.
The C++ toolchain upgrade is an wholesale overhaul of our C++ support. It includes not just a new version of Clang, but also the C and C++ runtime libraries and the STL (the C++ Standard Template Library) plus the linker and debugger. The goal of this major effort is to offer modern C++ standards, with the ability to run C++ code you find in recent libraries and projects, easily use third party libraries, leverage modern safe coding standards, have more performant apps and excellent debugging. It also aims to directly improve areas like linking and the STL, and moves to Windows platform standards such as using the COFF and PDB object and debug formats, potentially allowing you much wider compatibility with other tools.
Version 12 ships with a preview of this new C++ toolchain, available as a command line compiler. Another significant innovation comes from the integration of the Visual Assist technology to offer better Code Insight including code completion, code navigation and refactoring.
These are key productivity tools that assist in common development tasks, from code completion to navigation which allows developers to easily find relevant parts of their code instead of manually searching a codebase, to refactorings which help code organization and safety. A significant initial subset of the VA features are available within RAD Studio, including finding symbols and references, navigating from implementation to declaration and back, navigation to any related symbol or method, and rename refactoring.
Meanwhile, Embarcadero Product Manager for C++Builder David Millington is quick to highlight how much has been done to improve C++Builder in version 12.
"We anticipate a lot of excitement about the technical changes and the quality and level of C++ support," he says.
According to David Millington, "RAD Studio 12 is a major step forward, providing unparalleled productivity tooling for C++ developers through the initial integration of Visual Assist. RAD Studio 12," he notes, "is the culmination of almost a year of development effort focused solely on the benefit to developers Embarcadero can provide."
VCL Modernization with MDI and Tabbed UI Architecture
We have been working hard on VCL modernization to help our customers migrate their existing applications (often very large and well established in their target industry). In 12 the focus is on keeping alive the old fashioned, but still popular, MDI (Windows' Multi Document Interface) model. With the new release customers will be able to adopt full HighDPI support for MDI applications and also adopt VCL styles. This work allows our customers to bypass platform issues caused by Microsoft neglecting support for MDI in recent years.
In addition, RAD Studio 12 introduced a new tab-based UI (like the one from Google Chrome and many other popular apps) as an easy migration from MDI to a brand new model, with the new TFormTabsBar control. The VCL library has improvements for High DPI screens.
As part of the VCL improvements, the new release introduces a number of new designers to help simplify the work: There is a new string list editor, a multiline string editor, and quick configuration dialogs for buttons, radio groups and panels. Some of these handy tools were originally part of KSVC (Konopka Signature VCL Controls) and are now available to anyone, even without installing this add-on control pack.
Beside the core RTL definitions, a new set of units has been created with the complete Windows API headers converted to Object Pascal, to make it easier for Delphi developers to call any Windows platform API not exposed in the component libraries. This API conversion includes 311 Delphi header files with 41 MB of code, covering the entire platform API provided by Microsoft.
Additionally, Edge browser integration is improved with new interfaces, properties and events, matching the improvements to the platform WebView 2 control since our last release. Further improvements in the VCL are an extremely flexible TControl enumerator, Desktop Windows Manager (DWM) enhancements, and changes to Double Buffering mode.
"RAD Studio 12," Embarcadero General Manager Kyle Wheeler notes, "represents countless hours in planning and developing to bring you the foundation of our future at Embarcadero. This investment in both time and resources will propel our tooling, our customers, and their customers forward. As we continue to iterate on the work that has been done, we look forward to providing more updates and tooling, to make the lives of our users significantly better."
New In Delphi RTL, Data, and Other Areas
There are many improvements in other Delphi core runtime libraries, leveraged also by C++ Builder. The FireDAC flagship database access library now supports the classic QBE mode (Query-By-Example) paradigm which allows the rapid development of a UI for entering simple data filtering criteria.
In addition, FireDAC components offer some additional functionality to help developers improve their application security, by limiting the type of SQL commands for a specific query control, forbidding multiple commands, and blocking further SQL changes. These improvements offer developers the ability to improve the application security, if used alongside other industry best practices.
RAD Studio 12 also introduces a powerful new JSON mapping wizard, which automates and greatly simplifies the generation of classes matching a JSON data structure and proper reading and writing code to read the JSON in a set of objects and stream it out to a new file.
RAD Studio IDE ImprovementsThere are many areas of improvements and updates in the IDE. The first is a gorgeous new, clearer, UX for the feature installer, used for the initial product installation or to add features and platforms later on. The IDE has better syntax highlighting in many secondary windows, like the call stack and structure view. There are also improvements in source code searches, in the way the navigation toolbar works, and in the use of multiple edit windows, plus many other small tweaks.
Besides the introduction of Visual Assist integration for C++Builder, further improvements have been made to DelphiLSP support used for Code Insight. For example, code completion now includes language keywords, and code templates are shown in contextually correct areas of code during completion, as well as having better support for generics and completing arrays or array types.
There are notable improvements for RAD Server, Embarcadero's REST server API hosting platform. The most significant change is the ability to easily support a smart ID model, using a standard library to define better identifiers for resources exposed by the server. RAD Server also offers better performance, data paging improvements, better session authentication and overall quality.
Quality, Quality, Quality
Thousands of internal and customer reports were addressed in 12 make the release more robust, more stable, and with more quality compared to the past. Issues addressed encompass all of the product subsystems in active development.
According to Ian Barker, "Embarcadero has applied concentrated and significant thought to the feedback of users. We're listening. We're here to help you create your apps in the most optimal way. The RAD in RAD Studio stands for Rapid Application Development and RAD Studio 12 lives up to this."
"RAD Studio 12," Barker notes, "is an enormous growling monster of a release with just the 'brief' release notes alone coming in at a whopping 231 pages. Try it yourself, harness this beast to make your applications roar."
How to Find Out More
About Embarcadero Technologies
Embarcadero builds tools that solve productivity problems for application developers. The company's products allow users to design, build, and run applications from a single code base across all platforms. Ninety of the Fortune 100 companies and a community of more than three million C++ and Delphi users worldwide rely on Embarcadero's award-winning products to deliver critical enterprise applications. Embarcadero is a division of Idera, Inc.
To learn more, visit https://www.embarcadero.com.