Почему время запуска программы на компилируемом ЯП быстрее чем на интерпретируемом

«Почему время запуска программы на компилируемом ЯП быстрее чем на интерпретируемом» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Компилируемые языки (как Go) преобразуют код в машинные инструкции заранее, а интерпретируемые выполняют построчный анализ и преобразование во время работы.

Ключевые причины:

  1. Go-программа - это уже готовый бинарник, который ОС запускает напрямую
  2. Нет накладных расходов на парсинг и анализ кода при каждом запуске
  3. Оптимизации компилятора (инлайнинг, dead code elimination) применяются на этапе сборки
// main.go - компилируется один раз
// go build -o app && ./app запускается мгновенно
package main

func main() {
    println("Hello, compiled world!")
}