This is an interview with Alex Dkovski, Director of Software Engineering at ScyllaDB, discussing his upcoming talk, "Unlocking the Value of C++ 20 Features," aimed at helping companies practically transition to the C++ 20 standard. Dkovski emphasizes focusing on the standard's smaller, often overlooked features, arguing that C++ 20 is mature and provides significant workflow improvements, especially for meta- and generic programming (highlighting "Concepts" as the single most impactful feature).
The discussion covers the successful adoption of features like std::format and the "spaceship operator" (<=>), contrasting this with the still-nascent state of C++ Modules, which he views as unstable and pushed too early. He expresses strong excitement for future standards, particularly C++ 26 Reflections, which he is already testing for generating boilerplate (like Python bindings). Additionally, Dkovski shares his preferences for Conan 2 for dependency management and details his professional use of AI tools (like Claude and ChatGPT) as productivity assistants, while maintaining skepticism regarding the maturity of C++ support in current models and the potential drawbacks of future C++ Contracts.
Unlocking the Value of C++ 20: An Interview with Alex Dkovski
0:00 Introduction: Alex Dkovski (Director of Software Engineering at ScyllaDB) discusses his talk focused on the practical value of C++ 20 features.
1:40 Focus on Smaller Features: The talk emphasizes small, often-missed C++ 20 additions rather than the "big four" (ranges, concepts, modules, coroutines), which already have extensive coverage.
3:41 C++ 20 Stability: Dkovski stresses that C++ 20 is stable in 2025 and moving to it significantly eased template and concept-heavy development at his former company, speeddata.io.
5:11 Modules Lagging: C++ Modules are the only major C++ 20 feature Dkovski has not been able to implement in a production environment due to insufficient compiler (GCC/Clang) and build system (CMake) maturity. He believes modules should have been postponed until C++ 26.
7:20 Format Fanaticism: Dkovski uses std::format (moving from FMTLIB) because he prioritizes using standard library features over external dependencies whenever possible.
9:47 Daily Work: Dkovski previously built a Clang-based compiler/code generator utilizing heavy constexpr and templates. Currently at ScyllaDB, he works on a parallel/distributed database using C++ 23.
11:10 Eagerness for Reflections: Dkovski is highly motivated to adopt C++ 26 reflections, noting that experimental Clang builds are already available in Godbolt. He demonstrated using reflections for creating clean Python bindings at CPPCON.
13:45 Spaceship Operator Impact: The three-way comparison operator (<=>) is highly valued, removing hundreds of lines of boilerplate comparison code in his projects.
14:51 Concepts are the "Jewel": Concepts are cited as the most useful C++ 20 feature, fundamentally simplifying meta-programming and generic code development.
16:43 Dependency Management: Dkovski strongly recommends Conan 2 as a great, easy-to-use package manager, noting that Conan 1 is deprecated.
18:05 C++ in Embedded: He suggests coroutines and constexpr are powerful for embedded systems, but warns that standard coroutines often involve memory allocation, which can be an issue in restricted environments.
24:09 CPPCON Talk Summary: Dkovski’s recent talk was "C++ Loves Python," focusing on binding strategies and how C++ 26 reflections could automate boilerplate generation for bindings.
27:47 Contracts Skepticism: Dkovski fears that C++ Contracts will overly complicate the language and potentially worsen runtime performance, especially if implemented as optional compilation flags rather than mandatory features.
30:09 AI as an Assistant: Dkovski uses AI tools (like ChatGPT/Claude) for practical tasks, such as generating Conan package recipes, replacing Google searches, and writing Bash scripts.
32:42 C++ AI Maturity: He notes that AI support for C++ is significantly worse than for Python or other languages, though Claude is showing gradual improvement. Users must have existing expertise to verify AI-generated C++ code.
38:55 Safety First: Dkovski firmly believes safety must always be prioritized over raw performance, especially avoiding undefined behavior which leads to catastrophic failure when compilers change.