Первоначально мой собственный молниеносный разговор в 2021 году.

Если вы углубляетесь в эту тему, возможно, вы нашли множество ресурсов, в которых компиляция и транскомпиляция используются как синонимы. Несмотря на то, что они похожи, между ними есть несколько ключевых отличий.

Если вы чем-то похожи на меня, вы можете обнаружить, что чтение определений не очень полезно. Как начинающий программист, я знал, что означает абстракция, но не обязательно в данном конкретном контексте.

"Каким уровнем абстракции является JavaScript и как он определяется?"

Поэтому при обсуждении различных уровней абстракции в языках программирования их можно разделить на две колонки. Высокий уровень, который содержит группу, которую вы, вероятно, узнаете, и низкий уровень, который содержит то, что вы можете узнать или не узнать. Высокий уровень в этом контексте означает язык программирования, который может быть прочитан, написан и интерпретирован людьми. То есть мы можем посмотреть на него и понять, что происходит. Если вы знакомы с ассемблером или машинным кодом, то поймете, что смотреть на него все равно что пытаться расшифровать матрицу.

Но вернемся к абстракции.

Распространенным примером компиляции будет использование C/C++ и компиляция его в ассемблерный код. Называется компиляцией из-за разницы в абстракции. Компиляция используется для технической совместимости, но не обязательно как стратегия разработки.

Еще один хороший пример транспиляции, и главное, для чего используется Babel, — это взять вашу последнюю и лучшую версию JavaScript и транспилировать ее в более старую версию.

"Почему вы хотите транспилировать последнюю версию JavaScript и, казалось бы, вернуться назад?"

Транспиляция используется в качестве стратегии перехода, то есть это способ использовать новые достижения в языке программирования, при этом поддерживая пользователей или браузеры, которые не развиваются так быстро, как разработчик. В глобальном масштабе мы придаем большее значение веб-доступности, и транспилятор, такой как Babel, был бы полезен здесь, чтобы гарантировать, что ваш сайт охватит максимально широкую аудиторию и что они действительно могут использовать все ваши функции.

Просто чтобы сделать это более сложным, транспиляция также может называться компиляцией исходного кода. На самом деле, именно так Бабель называет себя.

Babel — самый популярный транспилятор JavaScript в мире, он делает доступным весь синтаксический сахар, который был добавлен в последней выпущенной версии, и позволяет запускать ваш новый JavaScript в любом браузере. Впечатляющий!

Что также впечатляет, так это то, что он был создан в 2014 году, когда создатель учился в средней школе. Его зовут Себастьян Маккензи, он очень умен и кажется замечательным человеком и вкладчиком в индустрию. Поищите его или послушайте подкасты, в которых он участвует.

Программисты со всего мира подхватили шумиху, она быстро превзошла популярность Traceur от Google. Babel имел наивысший уровень совместимости со спецификациями E6, функциями полифилла и был загружен 5 миллионов раз в месяц в 2016 году, увеличившись до 16 миллионов разв неделю по состоянию на 2019 год.

Спасибо за чтение, и я надеюсь, что после этого краткого обзора вы стали немного лучше понимать транспиляцию и то, почему она используется.