C/C++

Какие минусы C++?

Андрей Купин
Андрей Купин
7 458
Препроцессор, которым имитируют модульность. Нормальная модульность в языке появилась совсем недавно - комитет по стандартизации много лет демонстративно "не замечал" просьб разработчиков. Препроцессор же - архаизм 1960-х годов, без которого современные языки прекрасно обходятся.

Низкоуровневые механизмы, которые можно бесконтрольно использовать в любом месте кода. В современных языках низкоуровневые механизмы явно отделяются от нормального кода блоками unsafe.

UB. Соглашения, реализованные компиляторами, позволяют наступить на грабли UB в самых неожиданных местах. Такого бреда с "неопределённым поведением", как в C/C++, нет больше ни в одном языке высокого уровня.

Отсутствие ортогональности: язык содержит множество механизмов, делающих одно и то же разными способами. Это очень сильно раздувает язык и резко усложняет изучения зыка. И самое грустное, что этот зоопарк никак не увеличивает область использования языка. Такое ощущение, что в язык бездумно пихают всё, что модно на момент принятия очередного стандарта.

Слишком развесистые средства обобщенного программирования, представляющие собой отдельный тьюринг-полный язык. Фактически, посредством шаблонов можно написать полноценную программу, которая в процессе компиляции будет генерировать код программы. Это очень любит Александреску (который "modern design..."). Но читать такой код-годоволомку - занятие для мазохистов.

Множественное наследование, создающее больше проблем, чем решающее. Интерфейсы в более поздних языках обеспечивают намного более надёжную реализацию в точности тех же возможностей.

P.S. Это то, что с ходу вспомнилось.
Adam Sheikh
Adam Sheikh
92 667
Лучший ответ
Слишком сложный. На этом все.
с++
Андрей Купин Какие у него минусы?
Очень сложно, трудно изучать, мало информации.
И для чего? Твоя з\п и отношение коллег все равно будут зависеть от твоего опыта. В том числе и от того, первая это твоя работа или нет. Если первая, то от адекватности компании. В неадекватной выше миддла не поднимешься никак, а то и джуна.

Единственное, в теории можно через работу в компании найти другую работу. Где ты будешь один, без команды, и тебя будут ценить, потому что C++ мало кто умеет, а какой-нибудь JS умеют многие хотя бы номинально.
Но я не думаю, что этот довод столь серьезен. Тем более без команды тебе вряд ли будут платить больше 100 т.р. Стать в команде сеньором и далее тимлидом - гораздо выгоднее. А это уже можно и на любом другом популярном языке.

P. S. C++ с 2018 года
KK
Kumisai Kapasowa
92 464
То что выше написано это не минусы, просто особенности. Так можно всё что угодно к минусам отнести.

Если не будешь использовать ООП то это будет Си, язык намба ван. Найдутся и его критики.

Минус например долго компилируется.
только два плюса
Минусов много, перечислять долго.
Если бы серьёзных минусов не было, то на C++, кроме обычных приложений, давно бы писали ОС.
Но нет, не пишут.
Один раз попробовали написать на C++ рабочий стол для Linux - тот самый KDE. Получилось такое дерьмо, которым никто не рискует пользоваться.
А.
Азим .
7 402
Андрей Купин на нем пишут OC
Adam Sheikh Может быть, KDE и дерьмо... Но покажи оконный менеджер, соизмеримый с KDE по уровню настройки параметров GUI. Это только когда зрение нормальное, то и GNOME сойдёт.
Двойные?
Frutrai Frutrai
Frutrai Frutrai
1 464
(рабочий код: существует)
Визуал студио: ОШИБКА
IR
Igor Rjabtsev
178