Другие языки программирования и технологии
В чем заключается сложность C++?
Не первый раз... не первый дестяок раз слышу что c++ сложный язык - и никогда не понимал - в чем же его сложность? Во многих школах задачи на нем решают, а если про доп образование - то это же просто царство си++. Или когда говорят что C++ чложный имеют в виду какое то супервысокоуровневое программирование?
Есть несколько причин для утверждения о сложности C++,
Во-первых, в нем очень много разных средств (функций, операторов, стандартных классов, возможности доопределения операций языка для созданных программистом типов и т. п.). Во-вторых, в нем много неинтуитивного, например, то 5/4=1, что "равно" это ==, что последний элемент массива a[n] имеет индекс n-1, и т. п. В-третьих, стенографии, то есть сокращений того, что для начинающих программистов было бы понятнее в более развернутой записи, хотя и ее тоже можно использовать. В-четвертых, в нем очень слабый контроль за действиями программиста (автоматические преобразования типов, отсутствие контроля за выходом индекса за границы массива и т. п.), что позволяет использовать много трюков, но и опасно,
Во-первых, в нем очень много разных средств (функций, операторов, стандартных классов, возможности доопределения операций языка для созданных программистом типов и т. п.). Во-вторых, в нем много неинтуитивного, например, то 5/4=1, что "равно" это ==, что последний элемент массива a[n] имеет индекс n-1, и т. п. В-третьих, стенографии, то есть сокращений того, что для начинающих программистов было бы понятнее в более развернутой записи, хотя и ее тоже можно использовать. В-четвертых, в нем очень слабый контроль за действиями программиста (автоматические преобразования типов, отсутствие контроля за выходом индекса за границы массива и т. п.), что позволяет использовать много трюков, но и опасно,
Сложный - в смысле на нем можно писать сложные вещи и возложить кучу проверок на компилятор. Понятно, что "Hello, world" на нем написать элементарно.
Сложно проектировать иерархию классов
для больших программ.
для больших программ.
Сложность в уровне: программисту необходимо следить за памятью (временем жизни и освобождением объектов), диапазонами, типами, и т. д.: заботиться обо всем, что в более высокоуровневых языках отдано на управление интерпретатору/компилеру/предоптимайзеру, и прячется в абстракциях).
Больше гибкость и "хакабельность" == выше сложность. Это естественно.
Больше гибкость и "хакабельность" == выше сложность. Это естественно.
> Или когда говорят что C++ чложный имеют в виду какое то супервысокоуровневое программирование?
Именно. А на C++ только такое и нужно на работе!
Попробуй хотя бы Boost изучить. Первый вопрос - "а что вообще изучать?" В плюсах вместе с Boost'ом и прочими библиотеками столько дерьма, что только в крупных компаниях профессионалы знают, что из этого юзать и как. И без контакта с этими ребятами (вплоть до стажировки) нормально не научиться. Какие уж тут школы.
А управление памятью (new, malloc) уже давно почти не используется. Но, кстати, да, самоучке может не хватить мозгов, что это не должно использоваться - и вот тогда будет порно :)
Именно. А на C++ только такое и нужно на работе!
Попробуй хотя бы Boost изучить. Первый вопрос - "а что вообще изучать?" В плюсах вместе с Boost'ом и прочими библиотеками столько дерьма, что только в крупных компаниях профессионалы знают, что из этого юзать и как. И без контакта с этими ребятами (вплоть до стажировки) нормально не научиться. Какие уж тут школы.
А управление памятью (new, malloc) уже давно почти не используется. Но, кстати, да, самоучке может не хватить мозгов, что это не должно использоваться - и вот тогда будет порно :)
Даниял Жанбулов
да я 1 раз использовал new в своей жизни - когда сам си учил), а так он вообще нужен? есть же вектора, да и массив давно можно делать не значения константной переменной
ООП, например... Его сделали таким "сложным" для того, чтобы легче было писать сложные вещи. В чем сложность в инструментах этого языка. Попробуй поизучай - узнаешь.
Даниял Жанбулов
А что в ооп такого прям дико сложного? Писал я с использованием этого самого ооп пару прог, ничего криминального не заметил
в том что это надстройка
в огромном количестве всего всякого
У него излишне сложная и плохо продуманная грамматика, с большим количеством неоднозначностей. В нём слишком много правил, которые при этом настолько запутаны, что иногда прямо противоречат друг другу. Этот язык напичкан лишними и малополезными возможностями, которые лишь дублируют уже имеющиеся или нужны только чтобы обходить проблемы, порождаемые его непродуманностью (которых в других языках в принципе не возникает). Он недостаточно абстрактный, негибкий и небезопасный. Плюс к этому в нём слишком много вещей, которые "определяются реализацией" или приводят к "неопределённому поведению". А ещё у C++ неудобные и такие же непродуманные инструменты разработки.
Похожие вопросы
- Что значит сложность языка программирования ?? Массивы, ООП и прочее везде есть! В чем именно заключается сложность ?
- в чем основная сложность C++ ,почему его многие боятся учить?
- В чем сложность языка C++, в отличии от других языков?
- Учусь програмировать на C++ по книге "C++ для чайников".Проблема.
- Помогите срочно C#
- Помогите исправить ошибку в программе (c++).
- Зачем нужен C++, если есть C?
- Ещё тупой вопрос по C++ :)
- Почему многие отдают предпочтение C++ а не C# ?
- Учу C++! Уже знаю: типы данных, циклы. условия, привидения и т. д учу 5дней. вот программа! Как норм за 5 дней?