Я думаю, что ответ во многом зависит от сроков, в которые вы определяете выживание. Это важно, потому что я думаю, что есть три фактора, которые изменились с течением времени и все еще меняются:
- Производительность оборудования (т. Е. Скорость или память)
- Сложность аппаратного обеспечения (то есть одноядерный и многоядерный)
- Сложность программного обеспечения
Я думаю, что причина в том, что C выжил, заключается в том, что до последних нескольких лет все еще существовала реальная потребность в максимальной производительности во многих приложениях. Возможно, такая потребность всегда будет, но я думаю, что в последние несколько лет она становится все менее актуальной. Я думаю, что это всегда будет вокруг, но я был бы удивлен, если бы это широко использовалось 20 лет спустя; за последние пять лет его уже начали отстаивать в пользу C # / Java / etc.
Недавний (под которым я имею в виду последние пять лет или около того) рост числа языков, таких как Python, также является ответом на тот факт, что программное обеспечение стало более сложным, в то время как производительность стала меньшей проблемой. Поскольку потребители ценят «сейчас», существует огромный стимул развиваться быстро и беспокоиться о скорости позже, если вообще. Это очень сильно влияет на то, какой язык вы используете для разработки.
Я считаю ясность, ремонтопригодность и простоту использования наиболее важным фактором выживания, если вы выберете будущее на 20+ лет.