Virtual Round Table About C++ Ecosystems
At the end of November, I took part in a virtual round table together with experts from Microsoft, Conan, and Incredibuild (the hosts). The discussion focused on the best tools, environments, and ecosystems for C++ developers. We touched on many tools, including compilers, build tools and package managers, IDEs, static and dynamic analyzers, knowledge management tools, and tools for enabling remote configurations.
Together with Cameron DaCamara (Microsoft), Diego Rodriguez-Losada (Conan/JFrog), and Amir Kirsh (Incredibuild), I had a great discussion about how C++ developers select a tool for a certain domain and which criteria are more and less important to developers. It was especially interesting to consider if the open-source aspect matters more than other aspects. Each of us shared our favorite tools in a list of must-haves that we use daily.
We also discussed the past and the future of the C++ ecosystem. We started from the improvements we have seen in the C++ ecosystem in the past five years. Then we shared our thoughts on where we think C++ ecosystems will go in the next decade and how the language and the tools will evolve.
I’d like to share a quick overview of my points here, but I really recommend that you watch the recording to dive deeper into the discussion and learn the thoughts shared by the others:
- The value of static code analysis grows significantly over the years. C++ developers tend to use analysis tools integrated into their IDEs and have high requirements for them. Clang is adopted by many tool vendors and has evolved because of the community, with ClangFormat and Clang-Tidy tools seen as the de-facto standard. Language developers expect code checks to help adopt the suggested practices along with the compilers (Lifetimes, Contracts, Parameter passing proposals).
- Even though there are still dozens of project models and build systems in the ecosystem, we see CMake as something very close to a standard. It has grown from 34% in 2017 to 55% in 2021, becoming the absolute leader several years ago.
- The ISO C++ committee now understands that toolability aspect of the C++ features is very important for further adoption among everyday C++ developers. The tooling study group was formed to take care of this specifically.
- Remote and distributed development environments are of high importance. It has only sped up since the pandemic.
00:00 – Meet the experts
02:36 – Breakdown of C++ ecosystem categories
04:40 – How to select a tool for each domain?
16:43 – Which C++ tools would you take to a desert island?
28:41 – What has improved in C++ ecosystems in the past couple of years?
39:42 – About JetBrains’ Remote Development
40:46 – Compiler upgrades via cloud resources
43:30 – How has the talent pool of C++ developers changed in the past five years?
46:11 – The future of C++ and its ecosystems
55:28 – Q&A
Your CLion team
The Drive to Develop