Современный C++ гораздо проще, чем принято считать. За годы трансформаций язык успел сильно преобразиться и обрасти возможностями, которые позволяют писать безопасный и эффективный код. Если использовать примитивы из последних стандартов, то больше не нужно беспокоиться о возможных утечках памяти.
Компилятор также стал гораздо умнее. Он способен выполнять огромное число оптимизаций для вашего кода, выдавая максимальную производительность. При этом по-прежнему возможно оптимизировать код при помощи самостоятельных манипуляций и ухищрений.
У языка всё же есть и недостатки. Главным из них - отсутствие стандартного пакетного менеджера. Есть сторонние разработчики с пакетными менеджерами, которые пытаются занять эту нишу, но пока ни один из них так и не смог стать лидером рынка. Наиболее популярные из них: Conan, vcpkg, Nuget и т.д.
С++ также стал жертвой собственной парадигмы: "разработчик не платит за то, что ему не требуется". Практика же показывает, что в коммерческих проектах разработчики не слишком аккуратно обходятся с зависимостями, потому породилась обратная ситуация: разработчик платит каждый раз, когда ему нужно подключить новую зависимость. Это провоцирует различные побочные эффекты во время сборки проекта: растет время сборки, возникновение циклических зависимостей и т.д. Но и этот вопрос постепенно решается от проекта к проекту.
Чтобы приступить к изучению языка потребуется набор базовых школьных знаний:
- Арифметика;
- Булева алгебра;
- Составление блок-схем;
- Представление чисел в различных системах счисления.
Несмотря на весь бэкграунд и информационный шлейф, который тянется за C++, мы считаем, что его современная версия стала в разы проще, чем это было в прошлом.
Потому не бойтесь изучать его!
Удачи! 💫