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.

Learn to program C++ with C++Builder Community Edition:  #2, Building and Debugging Welcome to the second blog post in the ‘Learning to program with C++Builder’ series - a set of five articles taking you from knowing nothing about C++ to writing a real-world, useful application. The first entry covered installing C++Builder Community. Now it’s time to start using it! Today, we’ll cover the tools you use, creating your first app, and basic debugging. Understanding the IDE C++Builder, the product, is what we call the IDE (Integrated Development Environment), which is the p...
Learn to program C++ with C++Builder Community Edition: #1, Introduction and Installation Welcome to the first entry in the ‘Learn program C++ with C++Builder’ series - a set of five articles taking you from knowing nothing about C++ to writing a real-world, useful application. I’m David Millington, the C++Builder Product Manager, and in parallel we have the same series and same app in Delphi. We have posts taking you step by step through programming in the two respective languages, with Delphi and C++Builder. We’ll be taking you through from the very beginning, ...
Creating great UIs with C++Builder and FireMonkey: app templates FireMonkey is an advanced UI toolkit, capable of great layouts and designs. We'd like to show you what it's capable of, and how easy it is to make great interfaces using it. We've just introduced eighteen example UI templates using FireMonkey and C++ that really show how easy it is to create great-looking apps. These are freely available on GetIt, our package manager, and you can download them and use them for your own inspiration and layouts. What have we added? ...
Real-world CMake and C++Builder applications on github Last week, we ran a popular webinar Fast Builds and Integrating Libraries: Using CMake and Ninja for C++ Builder 10.2.3.  The replay is now available on Youtube. In it, I demonstrated two items building with C++Builder and our CMake support: a real-world FireMonkey application, and Google Test.  These are available on github: Mazes: I wrote this for CodeRage XII in 2017 and the same application is available for both Delphi and C++Builder, written in duplicate.&n...

Posted by on in Blogs
Evolution of C++ standards Programming languages are exciting for developers, and C++, one of the more technically challenging and also perhaps the most widely used compiled language, is one of the most exciting.  As Theodore Roosevelt is misquoted (*), 'the more you know about the past, the better prepared you are for the future,' so let’s dive into a bit of C++ history and how it’s shaped our coding today.  Many people may know that C++ grew out of C language extensions, started by Bjorne Stroustrup in 1979.&...

Posted by on in Blogs
Removing the Community toolbar The RAD Studio IDE contains a toolbar allowing you to log on to Community, and see messages sent to you by other users, questions and answers, and other notifications. Recent website upgrades have caused issues with this toolbar for some users (now resolved), and we plan to remove the toolbar altogether in an upcoming version of RAD Studio. If you have encountered issues, you can disable it in your current version of RAD Studio. The following assumes you are using RAD Studio 10.2. Adjus...

Posted by on in Blogs
C++ Free Compiler Updated to 10.2.3 Embarcadero has had a free download of our C++ compiler and RTL (capable of making Win32 apps) for many years, going back into the Borland days. (In fact, Idera as a company likes providing free tools - check out some of the others here.) We aim to keep that free compiler up to date, and so we updated it from the frankly ancient classic "Borland" v5.5 compiler to the 10.2 Berlin compiler in July 2016. I'm pleased to announce that we've just updated it again, with the compile...
10.2.3 C++ Hotfix for an issue with a 4KB or larger stack allocation In 10.2.3, there is an issue affecting methods using the fastcall calling convention that allocate 4KB or more on the stack inside the method. The stack allocation could result in the 'this' pointer containing an incorrect value.  This was reported as: RSP-20171 RSP-20297 and RSP-20173 (duplicate reports) You can download the hotfix from CodeCentral. Technical info For those interested in the technical details, when the stack grows, it might need to grow into a new page, ...

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...

Check out more tips and tricks in this development video: