Over the 38 years of C++’s existence, many myths have appeared about it. That’s why many are afraid to learn the language. Even if they start to learn it, they think that they can’t do their assignments successfully and often google – do my C++ homework for me. In most cases, this is a great way out because you save time and can get professional assistance with this or that assignment. However, you should not be afraid of this language or the tasks in it.
In this article, we will analyze some of the myths in order to understand why they appeared and whether it makes sense to believe them.
Myth #1: C++ is a low-level language
This is only half-true because C ++ is a very flexible language. It combines the qualities of both low-level and high-level languages. The level of the language speaks of its similarity with natural languages. Low-level languages are more like machine languages – even the simplest operations are quite complex in them. High-level languages are more like human languages – in them, even a person without preparation can understand all instructions.
For example, in C++, you can write low-level procedural code by accessing memory directly. Alternatively, you can use high-level concepts like OOP and functional programming. C++ allows you to work in several programming paradigms at once, which does not fit at all with the concept of “low-level language.”
A programming paradigm is a set of ideas and concepts that define the style of writing programs.
Myth #2: C++ is only suitable for writing low-level programs
This myth follows from the previous one. C++ gives developers so many options that you can write anything in it: from drivers to website interfaces using WebAssembly. Also, it is not only a versatile but also productive language.
A library is a set of tools and ready-made functions for a programming language.
A framework is a ready-made “carcass” for an application.
Therefore, C ++ is more often used where efficiency is important. For example, all modern operating systems, photo and video editors, programs for working with 3D graphics, games, and libraries for machine learning are at least partially written on it.
The language itself can be used for any task. It’s just that in many areas, it is more important to release applications more often, albeit with reduced performance.
Myth #3: Language doesn’t develop
In recent years, C++ has had new competitors – Rust and GoLang. Because of this, it seems that C++ has lost ground and, in general, it is some kind of ancient language from which it is time to abandon. However, it will be popular for a very long time for several reasons:
- A lot is already written on it, including what you use every day: browsers Chrome and Firefox, Windows, Linux, OS X, Android, iOS. All this needs to be supported and developed. Consequently, more C++ developers are needed, and the language itself must evolve.
- The language has proven itself well, but its competitors are still too young. Many developers have liked them, but it will take years before they can catch up with C++ in terms of the number of new and existing projects.
As for development, developers are constantly updating popular libraries and writing new ones. So Qt (one of the most popular tools for working with graphics) received a new version in March 2021, and the relatively young TensorFlow (a machine learning library, the first release was presented in 2015) – in December 2020. The language standard is also being updated: C++ 20 was adopted in September 2020. The next one is planned to be adopted in 2023.
Myth #4: C++ is a very complex language
This is partly true because C++ lacks many of the conveniences found in higher-level languages. For example, a developer working with this language has to work with memory himself or herself, worry about leaks, garbage collection, and so on.
Garbage collection is the release of memory that is no longer needed for a program to run.
This is more convenient for the programmer but requires more resources for the application to work. On the other hand, C ++ has many high-level tools, constructs, and libraries that can dramatically speed up development. For example, you can quickly create a game using the Unreal Engine and not have to worry about writing your own engine. Working with databases is simplified by SOCI, and math operations are facilitated by a range of libraries and the same functional programming.
The difficulty of learning C ++ is mainly due to the higher entrance threshold. There is a lot to learn before you can use even the most advanced and high-level libraries.
It doesn’t matter what other people say. If you want to devote your time to learning C++ and work with it in the future, do it! Don’t be afraid of myths.