Тот факт, что C используется во многих крупных и успешных проектах, не делает его «хорошим». Причина, по которой С так часто используется, состоит в том, что она существует по нескольким причинам: она существует давно, она быстра, она позволяет вам получать доступ как к низкоуровневым, так и к высокоуровневым интерфейсам по мере необходимости, и она лучше, чем другие старые языки (FORTRAN и т. Д.) , «Крутая» вещь в C состоит в том, что вы можете заставить его делать абсолютно все: вставлять себя в ядро и добавлять некоторые новые функции или исправления ошибок, которые вы не можете убедить Microsoft сделать, и т. Д.
Да, C можно и легко использовать для вещей, выходящих за пределы командной строки, но он чрезвычайно опасен из-за указателей ... Не говоря уже о том, что разработка на других более современных языках быстрее (и безопаснее) по величине. Я никогда не использую C, если это не последнее средство, т. Е. Нужно реализовать что-то на низком уровне или если требуется дополнительная производительность.
Кстати, когда я говорю C, я действительно имею в виду C ++. Я бы никогда не выбрал C вместо C ++, если бы меня не заставили.