David Millington, C++ Product Manager

David is an Australian developer, although these days he lives in far northern Europe: if you go north, then you cross just one country to get to the North Pole. (It's further than it sounds, and he does see sunlight in winter -- occasionally.)

He has many years of experience with Delphi and C++Builder, as well as other languages. Since joining Embarcadero in May 2016, he has worked as a senior product manager responsible for C++, the IDE, and the debugger.

Posted by on in Blogs
Why create mobile apps in C++ There are a wide variety of languages used for mobile development: Swift, Objective C, Java, Kotlin, Delphi, C#, and C++. What are the reasons to choose C++? Consider a language along three axes: expressiveness, conciseness, and performance. An expressive language allows you to easily write powerful concepts in code. It is easy to manipulate data in useful ways. ‘Data’ is any variable(s) your app uses and powerful means manipulation in non-trivial ways, whether that mutates the data or merel...

Posted by on in Blogs
New in 10.2.3: Using CMake with Ninja One big new feature in 10.2.3 is support for building with CMake. If you haven't already, read the previous two posts: introduction to CMake and building with Windows, and building for iOS and Android. Today I'd like to cover using CMake generators, and specifically Ninja for fast parallel builds.   CMake Generators CMake is a compiler- and platform-independent project system, but despite its name it doesn't actually do any making or building. Instead, it uses the tools a...

Posted by on in Blogs
C++ Quality in 10.2.3 Every RAD Studio release, we focus on what we call QPS: Quality, Performance, Stability.  Recent releases of C++Builder have included: 10.2.0: Lots of work on our linker; improved codegen and optimizations; and debugging improvements (minimizing debug info size, better debugging)  10.2.1: CodeGuard for Windows 8.1 and 10; a group of exception handling, standards, and debugging improvements 10.2.2: further linker quality work; a variety of fixes around...
New in 10.2.3: CMake Support for iOS and Android We've introduced some great new features for C++Builder in 10.2.3.  Last week, I wrote about CMake support for our compilers. That post covered what CMake is, and how to use it for Windows, both Win32 and Win64.  If you haven't read it, please do; it's worth reading before this post. Today I'd like to cover using CMake for mobile, iOS and Android.  This is both how to invoke CMake, and how to write mobile-specific information in a CMakeLists.txt file. CMake for iOS and Android ...

Posted by on in Blogs
New in 10.2.3: CMake Support A very exciting feature in C++Builder 10.2.3 is support for using CMake with our compilers.  Let's dig in! This post is the first in a series on CMake, and will cover: What CMake is How to write a CMakeLists.txt file How to build a project on Windows What is CMake? You can think of CMake as a platform-independent, compiler-independent, project format for C++ apps and libraries. CMake uses a file called CMakeLists.txt.  This is a plain text, human-edi...
New in C++Builder 10.2.3: a new Win32 compiler front-end, bcc32x Yesterday we released RAD Studio 10.2.3, and we have a number of new C++Builder features. I wrote earlier about rename refactoring for C++, but today I also want to mention one small but useful one for our power users: a new compiler driver called bcc32x. It's a minor addition, but useful. Our compilers In 10.2.3, we ship a number of compilers. First, our classic compilers: the C++ compilers that users often know as the Borland compiler, bcc32.  This is bcc32 for Win32, and bccosx ...
New in C++Builder 10.2.3: C++ Rename Refactoring Yesterday, we released RAD Studio 10.2.3!  Over the next week, we'll be blogging about some of the new features.  Today I'd like to look at the introduction of rename refactoring for C++. What is refactoring? Over time, code grows and changes.  You need to maintain it: in fact, one sign of a good programmer is keeping the codebase clean: well organised, well separated with clean interfaces between segments.  Refactoring is the process of rearranging code to move o...
Updated build of Boost for C++Builder 10.2 addressing a RTL linking issue C++Builder supports Boost, a common and useful C++ library.  Through the GetIt package manager, you can install a build of v1.55 for our Clang compilers, or if you are using the classic compiler, an older version of Boost, v1.39. The version available on GetIt for 10.2 had an issue for non-header-only Boost libraries.  Most of Boost is available through headers, but some libraries, like system and filesystem, require .cpp files and so build and are linked against our RT...

Posted by on in Blogs
10.2.2 Welcome Page and Documentation Hotfix In RAD Studio 10.2.2, we updated the Welcome page with new functionality: upcoming events, a Youtube feed from our channel, and sample applications.  We also elevated documentation to its own tab inside the IDE.  Unfortunately, for English versions of the IDE only, the Documentation page in the tab had a display error causing it to be only about 100 pixels wide. We have a hotfix for this issue.  It addresses: RSP-19521, and duplicate issues RSP-19693, RSP-19634 and RSP-19546 ...

Posted by on in Blogs
New in 10.2.2: Component icons In RAD Studio 10.2.2, we have a number of UI upgrades (the new dark theme and welcome page and startup). But we have one more which I'm very pleased with and would like to share with you today: we've redone the component icons. Old icons - what's wrong with them? Delphi and C++'s component icons have been a mix of styles.  Many date back twenty years, and have been partially updated over time, often in a mix of styles and a mix of sizes.  (Component icons should come in 16, 24 and 32...