Compiling vs Transpiling

Compiling vs Transpiling

Компилятор общими словами это программа которая получает исходный код, написанный на каком-то языке программирования и создает  файл (или несколько файлов) на другом языке. Обычно компиляцией называют преобразование исходного кода в двоичный (бинарный) исполняемый  файл (машинный код).  Примером может служить компилятор gcc.

Транспилятор, или компиляторы исходного кода, берут файл исходного кода на одном языке программирования и преобразуют его в файл исходного кода на другом языке программирования, или другой версии того же языка программирования. Примером может служить Babel, который может преобразовать код JavaScript ES6  в разные совместимые версии ES5, ES3.

В общем компилиция и транспиляция это практически одно и то же. Транспиляция может быть промежуточным звеном в компиляции кода, чтобы привести все необходимые ресурсы к одному общему виду. Например когда разные версии языка не могут быть обработаны компилятором сразу в приложении. Это обычное состояние  в быстроизменяющихся  языках, таких как JavaScript.