У языков программирования есть понятия уровней.
Когда-то давно люди писали программы набирая 0 и 1 на перфокартах и вставляя их в огромные компьютеры. Когда стало понятно, что это очень неудобно и очень часто приходится вбивать одно и то же, изобрели ассемблер.
Но мир не стоял на месте и начали появляться различные процессоры со своими собственными модификациями (например различалась разрядность) и следовательно ассемблер был разный.
Когда-то кто-то от этого устал и создал язык более высокого уровня. (Например С)
Он написан на ассемблере и имеет более высокий уровень. Программисту предлагается возможность создавать функции, использовать go to в коде и тд.
Затем придумали понятие ООП. Появились Java, Python.
Это языки ещё более высокого уровня.
Питон написан например на C++ (ООП версия C). Язык стал интерпретируемым и теперь не общается на прямую с процессором. И так далее.
Суть в том, что каждый следующий язык строится на базе предыдущих. И с каждым разом повышается удобство для пользователя и отдаляется прямое взаимодействие с процессором.