@freestm

В каких случаях пишут на C вместо C++?

Почему С++ полностью не вытеснил С?
  • Вопрос задан
  • 1595 просмотров
Пригласить эксперта
Ответы на вопрос 4
jamakasi666
@jamakasi666
Просто IT'шник.
Если кратко то с++ дает много оверхэда в коде, если нужно сделать что то без излишеств то тут свой колхоз на С, если хочется не повторять колхоз а взять готовый в котором может быть много лишнего и ненужного то С++.
Если по другому то на С ты берешь и делаешь так как задумано изначально зная каждый закуток и абсолютно каждую деталь,на С++ ты добьешься такойже цели но не будешь знать деталей и сильно вероятно притянешь множество ненужных вещей из за этого.
Ответ написан
Nipheris
@Nipheris Куратор тега C++
Допустим есть команда профессиональных, финансово-неограниченных, C/C++ программистов, которые предпочитают писать на C++, но были вынуждены выбрать язык C для решения следующих задач....что это за задачи и почему?

1. Низкоуровневые задачи, где нужно иметь минимум абстракции от оборудования. Я лично хоть и не разделяю анти-C++ настроений Линуса, вполне согласен с тем что ядру полезно быть написанным на Си. В C++ есть довольно много абстракций, влияющих на исполнение кода, есть некоторые вещи "под капотом", которые могут быть недопустимы в низкоуровенвом коде.

2. Большие проекты, где сложно форсировать code-style. С++ - это такой язык... Он настолько разнообразен, что прежде чем некая команда сядет писать код, она должна выбрать некоторое ПОДМНОЖЕСТВО языка, и использовать его. Иными словами, Плюсы - это большой ящик с инструментами, и вовсе не обязательно (даже вредно) использовать сразу все. Важно отказываться от каких-либо возможностей или практик, особенно устаревших (а таких в C++ немало, "идиоматический" код на C++03 и C++17 - очень разный). Кто не хочет со всем этим заморачиваться (вспомним опять таки Линух - огромный проект с огромным числом участников) - вполне могут выбрать Си. Ведь можно считать, что выбор языка Си - это выбор только необходимого инструментария из того что предлагается в C++ (только помните что сейчас это всё-таки разные языки).

3. Программирование в сильных ресурсных ограничениях. Например под микроконтроллеры. Хоть в С++ программист "не платит за то чем не пользуется", иногда стандартные реализации различных механизмов недопустимо тяжелы или неэффективны. Например, если у вас очень медленный чип или мало памяти, возможно вы заходите свою собственную реализацию полиморфизма. Какой тогда смысл говорить что вы пишете на C++, если не сможете использовать его механизмы и то, что предлагает компилятор.
Ответ написан
Комментировать
bullock
@bullock
почитайте эту ветку
Ответ написан
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
С++ не мог и не должен был вытеснить С просто потому что у них разные задачи и разные области применения :) Вас же не удивляет почему городские полотерки не вытеснили автомобили-внедорожники?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы