Интересно, какие именно функции C99 оказалось трудно реализовать на некоторых платформах и почему, и какие фичи были признаны спорными или экспериментальными.
Возьмём например микроконтролерное ядро M8C которое используют чипы Cypress. Лучшие чипы имееют 512 байт RAM. Сколько таких масивов на стэке вы сможете создать? И нужны ли такому процесору такие масивы? Из stdlib реализировано все 3-4 функции.
На нативном коду оси завсегда приятнее пеисать: как-то роднее API становится.
Впрочем, погремушка-C++ тоже сишные либы считает за, в общем-то, родные.
Но ниша дровопейсателей всё равно будет нуждаться именно в плоском Ц.
А это нам важно, бо дрова будут более гладкими и блестящими.
Если в этом есть необходимость — C++ в вашем распоряжении. Для меня одно из главных достоинств С — там намного сложнее настругать таких макарон, которые делают в С++. С должен быть простым, лаконичным и максимально приблеженным к железу. ИМХО
Где конструкторы/деструкторы, там и исключения и пошло-поехало.
В списке рассылки gdb есть длииинный тред на эту тему: Will therefore GDB utilize C++ or not
Когда я читаю подобные треды, у меня сначала возникает буря эмоций, хочется нацитировать этих «аргументов», опровергнуть их, показать их несостоятельность, а потом приходит понимание того, что ведь это уже неоднократно делал кто-то другой и таких фанатиков ничем уже не убедишь. Даже примерами успешных проектов на С++. Ну и ладно, пусть пишут на чём хотят.
Александреску на GoingNative2012 спросили: «Как мне убедить своих сотрудников использовать новые возможности С++11, они и раньше то писали на Си с классами?» Александреску на это ответил примерно следующее: «Свяжитесь с рекрутёром и найдите себе работу, где вам не придётся никого уговаривать».
Мы сейчас говорим о простом Си, а не о плюсах, а этот язык имеет свою нишу, да написать на нем что-то типа КорелДрава или 3Дмакса — это глупость, но ведь мир не крутится только вокруг таких проектов верно?
С11 исправит ошибки С99