Языки программирования

Язык задаёт синтаксис и семантику программ. Исполнение зависит от реализации: компилятора, интерпретатора, runtime и платформы.

Полезные оси сравнения

ОсьПримеры вопросов
система типовстатическая или динамическая, номинальная или структурная
управление памятьюручное, ownership, tracing GC
модель исполненияnative, VM bytecode, interpreter, JIT
конкурентностьthreads, actors, async/await, CSP
парадигмыпроцедурная, объектная, функциональная, логическая
экосистемабиблиотеки, tooling, deployment, совместимость

Нельзя свести язык к одной этикетке. Java поддерживает объектный, процедурный и функциональный стиль; JavaScript может интерпретироваться и JIT-компилироваться; Python-реализации различаются.

Карта заметок

На собеседовании

Можно ли назвать язык только компилируемым? Обычно это свойство реализации, а не всей спецификации языка.

Что важнее синтаксиса при выборе языка? Требования системы, runtime, библиотеки, команда и эксплуатация.

Java и JVM — одно и то же? Нет: Java — язык, JVM — среда выполнения bytecode для разных языков.