Update Mythbusters

This commit is contained in:
Evgeny Melnikov
2021-10-11 10:20:02 +03:00
parent 41f493b4c4
commit d50a35f95b

View File

@@ -1,5 +1,9 @@
# Легенды и мифы про C++
## Язык C++ умер, на нем невозможно что-либо писать
Живее всех живых. На сегодняшний день находится в топах различных рейтингов языков программирования и даже набирает очки популярности, например: индекс [Tiobe](https://www.tiobe.com/tiobe-index/). Дурную славу "мертвого языка" он сыскал в нулевые годы, когда язык временно впал в анабиоз, а комитет стандартизации растворился во тьме. Но начиная со стандарта C++11, язык пережил ренессанс. Сегодня он активно продолжает пополняться и обновляться новым функционалом каждые три года. Многие проблемы, о которых заявляют свидетели "мертвого" C++ уже решены, но в силу того, что такие специалисты перестали вести разработку на C++, либо по верхам изучили его в ВУЗе/на курсах (наслушались баек от свидетелей "смерти"), то они продолжают порождать и сеять различные "мифы и легенды" о том, насколько C++ ужасен и страшен.
## Прежде чем учить C++ необходимо хорошо изучить C/Assembler/etc.
Нет, нет и ещё раз нет!
@@ -22,8 +26,8 @@
Скорее нет, чем да.
Современный C++, а также инструментарий, возникший вокруг языка, позволяют избежать львиную долю багов, связанных с неопределенным поведением. Здесь мы можем дать довольно простой совет: если сомневаетесь, что делает та или иная конструкция, то почитайте о ней на [CppReference](https://en.cppreference.com), [StackOverflow](https://stackoverflow.com/) или иных профильных порталах. Если после прочтения констркуция остается непонятной, то попробуйте переписать блок кода альтернативным и более простым способом, чтобы избежать неопредленного поведения. В простоте кроется великая сила!
Современный C++, а также инструментарий, возникший вокруг языка, позволяют избежать львиную долю проблем, связанных с неопределенным поведением. Здесь мы можем дать довольно простой совет: если сомневаетесь, что делает та или иная конструкция, то почитайте о ней на [CppReference](https://en.cppreference.com), [StackOverflow](https://stackoverflow.com/) или иных профильных порталах. Если после прочтения конструкция остается непонятной, то попробуйте переписать блок кода альтернативным и более простым способом, чтобы избежать неопредленного поведения. В простоте кроется великая сила!
## Нужно вручную управлять памятью, это делать крайне сложно
## Нужно вручную управлять памятью, в языке нету сборщика мусора
Современный C++ имеет в составе своей библиотеки набор примитивов, который отвечает за выделение и освобождение памяти. Во многих компаниях и командах вы встретите правило: "не используйте сырых указателей". Ручной менеджмент памяти в современных проектах требуется редко. Опять же, не пренебрегайте современным инструментарием и санитайзерами. Они способны детектировать потенциальную утечку памяти ещё на этапе исходного кода.
Это байка также идет от "старогвардейцев", которые перестали писать на языке до появления стандарта C++11, либо от тех, кто поверхностно его изучал в ВУЗе без погружения в последние стандарты. Современный C++ имеет в составе своей библиотеки набор примитивов, который отвечает за автоматическое выделение и освобождение памяти. Контроль за выделением памяти отошел на второй план. Во многих компаниях и командах вы также встретите правило: "не используйте сырых указателей". Опять же, не пренебрегайте современным инструментарием и санитайзерами. Они способны детектировать потенциальную утечку памяти ещё на этапе исходного кода.