David Millington (Senior Product Manager), Atanas Popov (General Manager, Developer Tools), Kyle Wheeler (General Manager, C++)

Over the past year, we have had many customers ask about our plans to continue cross-platform multi-device support in C++Builder. We’d like to provide an update on our plans.

Platform Overview

We prioritized VCL work for C++Builder to FMX, which puts us behind on our support on platform support. Currently, C++Builder 10.4 supports:

  • Windows 32 and 64-bit in VCL and FMX
  • iOS 64-bit in FMX
  • Android 32-bit in FMX

Those most impacted should already know the following, but to be clear: On August 1, Google’s deadline for 32-bit applications will come into effect and if you want to continue to update your apps on the Play Store, you will need to recompile them as Android 64-bit. C++Builder does not currently support this platform. We will not deliver Android 64-bit support by August 1st, nor in C++Builder 10.4.1 (2020.)

It’s worth noting that 32-bit Android applications are still fully functional - in fact, we released a hotfix to 10.4 solving C++ Android 32-bit exception handling issues a few days ago. Android devices still support 32-bit apps; it is only the Play Store that has the 64-bit limitation, meaning that in-house applications or sideloaded applications remain fully functional.

We also have not scheduled macOS 64-bit support for 2020. When we do, we will likely move directly to support ARM (Apple Silicon.)

If Android 64-bit is important to you, RAD Studio with Delphi is fully compatible. Contact us today to discuss a discount and make the switch.

Customer Feedback and Platforms

In March 2019, we sent out a customer survey. The overall feedback from our C++Builder customers in that survey was to ask us to focus on Windows and Windows quality: compiler quality, STL, and IDE (including code completion.)

The majority of our C++Builder customers are targeting Windows only, using the VCL. They do so because of VCL’s performance and the native controls, and the new controls we provide; further, Microsoft has created pressure to upgrade to Windows 10 and our Windows 10 support is highly useful to those migrating apps, or to those looking for a high-quality UI app environment for Windows 10.

The strategy this put us on was clear: to focus on Windows and ensure it met your expectations, ahead of working on other platforms. For this reason, we removed macOS Catalina support from the roadmap, and we have been working on Windows quality ahead of Android 64-bit support since then.

Windows Quality

We are very aware that since our Clang upgrade in November 2018, the quality for Windows, including IDE tooling, has not been what we want to deliver.

So what’s our plan? What are we addressing?

We have long-standing issues around code completion, the linker, some STL classes, and some compiler ICEs. Further, there are IDE productivity features we want to provide to ensure C++Builder surpasses other IDEs in terms of productivity. Our goal for Windows is the following:

For quality:

  • To provide fully functional code completion and other Code Insight features
  • To fully resolve all linker issues, possibly through an entirely new linker
  • To resolve STL issues
  • To provide excellent C++ compatibility with common C++ libraries, meaning we have excellent compatibility with other toolchains

For features:

  • To provide further code tooling, such as refactorings, through integrating Visual Assist, meaning C++Builder will have stronger productivity tools than even Visual Studio
  • To provide C++17 or higher language support
  • To provide much more speedy, accelerated compilation speed especially for large projects

The ultimate aim here is to ensure that (a) things work as you want and expect, and (b) we are both compatible with general C++ (which helps you) and surpass other tools in productivity. Our libraries, like the VCL, are world-leading -- having IDE productivity also at that level will make C++Builder a significant force.

While we are not there yet, that strategy explains our focus and what we have delivered since that survey. Let’s dig into both what we have delivered, and what we have planned, with some comments that explain them in light of the above.

Improvements

In the time since that survey, we have delivered:

  • Windows 64-bit C++17, meaning that you can target Windows 32- and 64-bit with modern C++
  • A modern version of Boost (until then, we shipped Boost 1.55): Boost 1.68 for 10.3, and Boost 1.70 for 10.4 today
  • A large number of compiler stability, RTL methods, STL fixes, linker fixes, and more for the overall toolchain, including compatibility with the classic compiler, which means upgrading from the old classic to modern Clang is much easier than it used to be
  • A number of popular open source libraries on GetIt. As well as making these easy to use, they’ve been great test cases to find RTL or other areas where we were not compatible with other toolchains. (We often use POSIX methods or approaches in our headers, even on Windows; also, many headers in common C++ libraries are written to assume specific compilers.)
    This includes libsimdpp, Eigen, NemaTode, SDL 2, and others, and resolved many compatibility issues through that work, giving much greater capability for you to bring in external C++ libraries and source
  • Updated CMake support to improve features such as resource linking, as well as automatically handling configurations for other compilers for our toolchain - again increasing compatibility
  • An entirely new debugger for Windows 64-bit, which both addressed debugging issues for Clang, a whole class of common issues debugging C++ in general. This makes debugging with Clang on par with debugging with classic for Win64.

In future, we plan to deliver:

  • Linker fixes, including changes to debug format storage and linking, reducing memory load when linking debug builds. Under research is significantly larger changes to the linker.
  • Visual Assist for C++Builder, adding refactorings and other tools to the IDE
  • Updated STL, removing STL bugs
  • CMake integration in the IDE
  • Fixed code completion for C++
  • Parallel compilation, decreasing the time it takes to build your project as a function of how many CPUs you have available - that is, 4x, 8x or even faster

Summary

Our C++Builder customers have asked us to focus on Windows and quality, and that’s what we’re doing. We are focusing on providing high-quality Windows development for you, especially with a focus on IDE productivity to match our existing UI productivity, as well as resolving important issues. This does mean that we will not have Android 64-bit or macOS support in the short-term (6-9 month) timeframe. However, we are working on - and have delivered - some important improvements to Windows already. Further items, like Visual Assist integration, are exciting for making C++Builder lead ahead of other IDE’s productivity. We understand that this prioritization may impact some of you negatively for which we apologize. We feel that focusing on quality and Windows is the right thing today to ensure we give you the product you want and need.

Once we are confident in the quality enhancements and feature set for Windows development we will reevaluate the landscape and take appropriate steps to address other platforms and features. Stay tuned for upcoming releases and stay in touch with other feedback or requests!

Note: These plans and roadmap represent our intentions as of this date, but our development plans and priorities are subject to change. Accordingly, we can’t offer any commitments or other forms of assurance that we’ll ultimately release any or all of the described products on the schedule or in the order described, or at all. These general indications of development schedules or “product roadmaps” should not be interpreted or construed as any form of a commitment, and our customers’ rights to upgrades, updates, enhancements and other maintenance releases will be set forth only in the applicable software license agreement.

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy.

Start Free Trial   Free Delphi Community Edition   Free C++Builder Community Edition   Upgrade Today  

Anonymous
Parents
No Data
Comment
  • I agree that it's great to have an honest appraisal. Keeping your customers up to date is a vital part of staying in business. I too used to really value the C++ Builder multi platform solution as a selling point to my customers. I could justify using Embarcadero products rather than competitors with this in place. It's very much more difficult to answer the question "why use Embarcadero C++" without this feature. 

    It will be great to get the 64 bit clang compiler / debugger / code completion up to a level where it is a good solution for a professional developer (or team of developers) to use for 64 bit windows development.

    I do think Embarcadero have handled the Android 64 bit C++ very badly. Having dropped it once and got all the negative feedback it looks as if they stuck it back in the road map to stop the negative feedback but never really too meeting their own deadline seriously. 

    It is not surprising that many of your customers no longer have faith in Embarcadero as a long term solution. The handling of the Android C++ 64 bit is a major loss of credibility.

    These community pages provide ample evidence of the vital need for Android C++ 64 bit.

    Also confirmed at

    https://quality.embarcadero.com/browse/RSP-24562

    Also confirmed at

    https://doodle.com/poll/d9hd42sisyemqbyu

    How to stay in business: treat your customers with respect and deliver what they are asking for on time and to a high quality.

    How to go out of business: don't listen to your customers, tell them one thing and do another.

    One thing that I suspect would help Embarcadero to stay in business would be to get Atanas Popov to read these community pages once a day. That way he would get a feel for how his developer tools are actually working and also what his customers are hoping to see. These pages are a very valuable tool for Embarcadero - they provide an excellent feedback channel that they should be reading and (internally) responding too. 

    Visible responses on these pages from the Embarcadero team would also be a great marketing tool. More response from the Embarcadero staff would be a great way of demonstrating that Embarcadero care about their customers.

Children