Even arsenic it approaches 40 years old, C++ remains 1 of the world’s astir palmy programming languages. It's apt that you've utilized applications written successful C++ specified arsenic Chrome and Firefox browsers, galore compilers, MongoDB, Photoshop, OpenOffice, MySQL, and galore games engines and astir AAA games. If you’re a developer, cognition of C++ tin unfastened up each kinds of opportunities.
Bjarne Stroustrup, the creator of C++, lists galore more C++ applications connected his website. By each indications, the connection is besides future-proof, with developers utilizing it to make applications for virtual world (VR) via the Unreal Engine, the Internet of Things (IoT), and cryptocurrency applications. This Developer Nation Survey from Q3 2021 shows 7.5 cardinal developers usage C/C++.
However, desktop improvement (one of the cardinal channels for C++ development) has been declining successful popularity successful the past fewer years compared to web and mobile development. According to this University of Florida infographic, of the apical 20 US Computer Science departments, C++ is lone taught successful 2 of them. Is C++ yet losing strength?
C++ is Complicated
If you've ever browsed websites similar the C++ FAQ, you'll cognize however analyzable C++ tin be; I cognize a batch of C++ but I ne'er mastered template metaprogramming, for example. With earlier versions of the language, a comma successful the incorrect spot could nutrient hundreds of compile errors. From C++ 11 on, the connection improved (for instance, determination semantics for changing ownership and rvalue references), but determination is inactive a steep learning curve.
C++ has regained immoderate popularity since C++ 11 appeared and the word Modern C++ was coined for it. Microsoft has a leafage describing the features that marque up Modern C++.
Developing a New Application
Back successful the 90s, if you were processing a large desktop application, C++ would apt beryllium your archetypal choice. When Java came along, it rapidly became the connection to usage for concern applications, leaving low-level and strategy programming to C++. C# came astir aft Microsoft had a ineligible tussle implicit utilizing Java.
In 2006, Microsoft introduced C++/CLI, which was C++ for .NET; for .NET, you present had a prime of C++, C# oregon VB.NET. But C++/CLI did not acceptable the satellite connected fire; it is inactive disposable successful Visual Studio 2022, but I don't cognize anybody who uses it.
In caller years, we’ve seen the emergence of newer programming languages that could regenerate C++ for low-level strategy stuff, including Rust, which offers information and information by eliminating buffer overflows and representation leaks (and is simply a batch easier to larn than C++).
There is simply a content held by immoderate that the past usage of C and C++ has led to a continual watercourse of vulnerabilities successful applications and it's clip to summation bundle information by utilizing safer languages similar Rust. Mark Russinovich, the CTO of Microsoft Azure and laminitis of SysInternals, tweeted past year: “It's clip to halt starting immoderate caller projects successful C/C++ and usage Rust for those scenarios wherever a non-GC connection is required.”
But successful spite of each that, C++ is inactive going strong. Do not expect it to vanish soon. Any large task that utilized C++ is not going to rewrite it into different language; it’s doubtful that they could warrant the clip oregon disbursal for that.
C++ Going Forward
Along with the merchandise of C++ 11 came a displacement to a three-year merchandise rhythm with improvements and caller features successful C++ 14, 17 and 20. Compiler writers instrumentality clip to instrumentality these caller features ,but you tin spot what is supported connected this compiler enactment page. GCC and Clang usually pb the battalion with Intel’s and Microsoft’s compilers snapping astatine their heels. I deliberation it’ll beryllium a twelvemonth oregon 2 much earlier these compilers afloat enactment C++ 23 and of people there’s C++ 26 and C++ 29 plotted connected the official presumption page.
Conclusion
Rust is not an contiguous menace to C++, arsenic it's inactive excessively caller and determination aren’t that galore Rust jobs yet… but expect that to dilatory change. Nonetheless, I’d stake that C++ volition beryllium astir for decades to come, particularly fixed the sheer magnitude of bequest codification retired there.