C++ без боли и страданий

Сразу скажу, что статья поверхностная и предназначена для новичков, поэтому сразу к сути, короче говоря зачитаться Страуструпом и осилить голый C++ не получится, так как это низкоуровневый язык, одним синтаксисом и алгоритмами из STL сыт не будешь, увы но в типичном случае вы будете работать не с C++ кодом, а с голым сишным API ядра и сишной плеядой библиотек, так как под каждый чих C++ оберток не напасешься, по итогу мы имеем ситуацию, чтобы выучить C++ нужно хорошо знать C, именнно хорошо, потому что УКАЗАТЕЛИ не прощают ошибок, да и МАКРОСЫ вещь в себе жестокая и беспощадная.

После непродолжительного штудирования языка С, благо он достаточно простой и его стандартная либа совсем небольшая, анон рогом упрется в незнание "сюпрайз погромист" старика Assembler, без знания которого не то что с процом и переферией напрямую не поработать, а и вообще быть в полном неведении, что за магия происходит за ширмой языковых конструкций С, отсюда вылезают ноги все возможных багов и тормозов, на казалось бы компилируемом языке, ну и как тут не сказать что примерно 90% синтаксиса С это прямая калька с инструкций Assembler, те же побитовые операции, флаги, указатели, регистры, циклы, ветвления, функции, переменные, массивы и тот же goto, мало того терминология С состоит целиком и полностью из терминов Assembler, при этом в С она расматривается в двух словах типа "ну это там" и все(((

Самое парадоксальное то, что в книгах по C++ мало но хоть немного уделяют внимание С(хотя из-за совсестимости с ним), а вот в книгах по С про Assembler ни слова и как хочешь так и понимай, что там за магия под капотом творится и как оно работает, но самое печальное это когда ты открываешь чужой код и видишь лютую мешанину C/C++/Assembler, что как бы стандартная ситуация для плюсовика в любом проекте, а ты к этому не готов(((

Резюмируя вышесказанное и попутно обьясняя смысл заголовка почему "C++ без боли и стаданий", просто потому что страдать вы будете на Assembler, боль испытывать на С, а если с этим справитесь C++ для вас будет как родной обьектно-ориентированный Assembler....

22
2 комментария

Ещё есть проблема что много где учат работать с С++ словно это Си с классами, а про современные функции почти не упоминают, к примеру про constexpr, который может заменить заметную часть макросов

1
Ответить

Понимаешь ли в чем дело, у плюсов нет единой парадигмы, никто не запрещает фигачить в стиле Си + STL, или на чистом ООП как в Qt/POCO, или на шаблонах и потоках как в бусте... и все это ты должен уметь, тупо без вариантов, но и Assembler должен знать на отлично ибо вставки на асме повсюду если софт более менее производительный... и да компилятор не спасает со всеми его супер оптимизациями

Ответить