Потому, что C++ реально сложный язык. На данном этапе (лично моё мнение) - излишне переусложненный. Или скорее уже нагроможденный. И дальше лирика: Потому, что с одной стороны C++ _требует_ знания "чуть более" низкоуровневых вещей (не в плане ассемблера - тут о другом речь) - глубокое копирование, различие shared_ptr и т. д., не совсем явное поведение в случаях копирования/переносов выделенной памяти, и т. д, с другой имеет весьма непростой синтаксис (в т. ч. обязывающий соблюдать переносимость и "безконфликтность"). И это _ОЧЕНЬ_ сложно т. к. это старый в хорошем и плохом слове язык. Внедрять "новые фичи" крайне сложно, чтобы не порушить наследие. Поэтому зачастую конструкции и н-р те-же лямбды выглядят жутковато по сравнению с другими языками Отдельный превед любителям "метапрограммирования". Когда шаблон на шаблоне шаблоном погоняет. Есс-но в нормальном случае это нормально более-менее работает. Но не тогда, когда черезмерно злоупотребляют шаблонами. Пробовали когда-нибудь в отладке гонять "ферму" шаблонов? Отсюда выводы - не злоупотребляйте метапрограмм. Дело не совсем в языке, хоть языки и накладывают некоторые парадигмы.
обычного, уровня "фиглишь со словарём"
и совет - синтаксис языка и английский - вообще разные вещи.
очень не советую их обобщать, т.к. будет казаться что ты типа понял всю программу, термины английские а на деле - ахунь))
очень многие на этом погорели) термины-то английские, но обозначают более обширные вещи, чем в словаре английского)) и даже такие, которые словарю (или гуглу) противоречат))