Уровни программирования
Таксономия
Иногда чтобы можно было понять, чем схожи те или иные объекты исследования, мы вводим таксономию, классификацию. В этом посте я провожу естественную классификацию языков программирования, в 5 уровней от 0 до 4-го. При этом чем выше уровень, тем дальше язык от машинных кодов.
Уровень 4
Это уровень скриптов, простых программ объединяющих несколько других программ или библиотек. Самыми знаковыми являются тройка из LAMP стека — PHP, Perl, Python. Ruby on Rails приобрела широкую популярность, так же Lua, Groovy.
Уровень 3
Управляемые языки, где в основу положена продуманная виртуальная машина. Цель проста — отсутствие багов связанных с нарушением целостности доступа к памяти. Из средств — сборщик мусора и JIT компилятор. Основные языки — Java (JVM) и C# (CLR). Отдельного внимания заслуживает Beam (Erlang), как распределенная виртуальная машина.
Уровень 2
Системные языки с опциональным сборщиком мусора. Таких совсем немного — D и Go, также Nim. Особенность таких языков большая гибкость применения. Компиляция при это AOT.
Уровень 1
Языки класса C/C++. На них пишутся операционки и драйверы к ним. Основной критерий — можно ли преобразовать число в указатель и наоборот.
Уровень 0
Язык ассемблера, здесь можно точно гарантировать какие инструкции будут выполняться процессором. Придется правда создать собственные конвенции вызова и может быть механизм корутин.