З кількох причин спокуса відмовитися від C і перейти на сучаснішу мову програмування досить велика. По-перше, інженери-початківці, яких технологічні компанії часто високо цінують, практично не мають досвіду роботи з C. Університетські програми сьогодні зосереджені на навчанні сучасних мов, таких як Python або C++. Щоб підготувати їх до швидкої роботи й набуття досвіду, можуть знадобитися значні грошові та часові вкладення, у яких зацікавлені лише деякі компанії.
До того ж, попри свою популярність, мова програмування C застаріла. C не підтримує сучасні концепції програмування, такі як класи й успадкування. Якщо порівняти набори функцій сучасних мов, таких як C++, Python і Rust, мова C починає скидатися на динозавра! Востаннє до стандарту C додавали нові функції у 2011 році! У стандартній версії 2017 року були лише технічні виправлення й уточнення, а майбутня стандартна версія, очікувана у 2023 році, найімовірніше, теж не розхитає човна.
Відмова від C досі здається спокусливою, але є кілька проблем із тим, щоб просто відмовитися від C. По-перше, C — чудова мова для низькорівневих процедурних застосунків, які працюють близько до апаратного забезпечення. Вона компактна й ефективна. По-друге, старші інженери міцно вкорінилися в цій мові. Вони вже користуються нею десятиліттями й практично не зацікавлені в тому, щоб вивчати й переходити на сучаснішу мову. Нарешті, так багато застарілих бібліотек і кодових баз використовують C, що ми не можемо просто від них відмовитися. Вартість перенесення застарілого коду буде надто високою!
Здається, ми опинилися в трохи скрутному становищі! Як індустрія, ми маємо відмовитися від C, щоб користуватися сучаснішими мовами й методами, але час і витрати на зміни, а також обсяг застарілого коду, який ми маємо підтримувати, часто заважають відмовитися від C. Потреба в сучасніших технологіях, водночас зі збереженням переваг, які дає нам C, може відвернути нас від використання однієї домінантної мови й змусити покладатися на кілька мов, щоб виконувати роботу.
Використання інших мов на підтримку C, можливо, вже відбувається. Наприклад, у таблиці 1 нижче показано місце кількох мов в індексі TIOBE. У минулому в інформатиці домінували одна чи дві мови. Сьогодні всі чотири провідні мови мають рейтинг близько 10%. Можна сказати, що це вказує на кінець епохи однієї домінантної мови. Натомість розробники використовуватимуть кілька мов, щоб досягати своїх кінцевих цілей.
Якщо уважно придивитися до індустрії, це вже відбувається. Є компанії, які переходять на C++, але досі мають численні бібліотеки C. Є компанії, що пробують Rust, але покладаються на свої перевірені бібліотеки C як частину збірки, і навпаки. На жаль, або, можливо, залежно від вашої точки зору, на щастя, це означає, що C і надалі залишатиметься домінантною мовою в осяжному майбутньому.
Час C піти на пенсію? Це просте, але складне запитання. Можна сказати «так», але все залежить від того, що ви робите. Можливо, ви не захочете використовувати C++ чи іншу мову з 8-бітним мікроконтролером. Якщо ви працюєте з передовими 32-розрядними мікроконтролерами, застосовуючи машинне навчання, або розробляєте підключені пристрої, інша, ніж C, мова дасть вам додаткові інструменти, потрібні для успіху.
Час і вартість переходу на інші мови можуть виявитися надто високими. Суб’єктивне емпіричне правило таке: якщо це новий проєкт, починайте із сучасної мови. Якщо це застарілий проєкт, використовуйте застарілий код, а новий пишіть сучасною мовою.









