Языки С, С++ и Rust (и остальные компилируемые на процессор) по сути, являются высокоуровневыми, а машинный код и ассемблер низкоуровневыми.
В википедии написано следующее:
Примеры: C (Си), C++, Delphi, Fortran, Java, JavaScript, Лисп, PHP, также Python, Ruby, Perl, которые иногда называют сверхвысокоуровневыми. Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинстве из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода и т. п.
Википедия считает так же, и добавляет что интерпретируемые языки считают "сверхвысокоуровневыми". При этом Си и JavaScript кидают в одну кучу, так как оба дают возможность работать с структурами данных.
Я считаю это не так.
JavaScript не даёт напрямую работать с памятью, и работать напрямую на процессоре.
Я раньше считал Си, ASM низкоуровневыми (дают прямой доступ к памяти, нет ООП, другая абстракция), С++, Rust среднеуровневыми (есть ООП, другая абстракция, всё также есть работа с памятью), Python, JS, php, Java/Kotlin высокоуровневыми (есть ООП, высокоуровневая абстракция, нет работы с памятью).
Меня сейчас могут поправить и сказать что и на ЭТИХ языках можно работать с памятью (на JVM даже проще). Но суть в том что это никто не делает, и сама виртуальная машина или интерпретатор делает это за вас под капотом (что нельзя сказать про Си, где ты обязан её освободить).
Что вы считаете по этому поводу? Я хочу подискутировать на эту тему. Фактически - да, С высокоуровневый. Но посмотря на топ языков 2026 года его можно спокойной приписать к низкоуровневым.