Другое

CoffeeScript: что это за язык программирования и чем он отличается?

Lorem ipsum dolor

Вы слышали про такой язык, как CoffeeScript, и хотите знать, что это за язык? CoffeeScript — это небольшой, но интересный язык программирования. Главная особенность этого языка в том, что он транслируется в JavaScript. То есть все, что пишется на CoffeeScript, сначала переводится в JavaScript, а потом попадает в интерпретатор.

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

 

CoffeeScript что это

CoffeeScript перенял все лучшее от JavaScript, Python и Ruby, при этом большее он взял у JS, поэтому компилируется именно в этот язык. Разработчики CoffeeScript говорят о своем языке очень просто: «CoffeeScript — это простейший JavaScript». Они взяли и убрали из JavaScript все лишнее и опасное, подмешали все лучшее от Питона и Руби, и получился CoffeeScript. Поэтому об этом языке среди программистов можно услышать такие выражения:

  • CoffeeScript — это JavaScript без «скобочек»;

  • CoffeeScript — это Python без «двоеточий».

CoffeeScript поддерживает любую библиотеку JavaScript.

 

Особенности CoffeeScript

В CoffeeScript не нужно использовать «точку с запятой» для окончания выражения или строки, не нужно использовать «фигурные скобки» в функциях и др. То есть исчезли требования к символам, но увеличились требования к пробелам и табуляции. Например, вместо тех же «фигурных скобок» нужно использовать «пробелы», чтобы выделить функцию. А чтобы указать вложенность выражения, нужно использовать соответствующие отступы от края. 

Сейчас приведем несколько примеров, чтобы вы увидели отличия между кодом в CoffeeScript и этим же кодом в JavaScript.

 

Как выглядят функции

Функция в CoffeeScript:

square = (у) -> у * у

cube = (у) -> square(у) * у

 

Такая же функция в JavaScript будет выглядеть так:

var cube, square;

square = function(у) {

  return у * у;

};

cube = function(у) {

  return square(у) * у;

};

 

Как выглядят строки

CoffeeScript поддерживает строки, как и любые другие языки. Строки в нем обозначаются одинарными или двойными кавычками.

Пример кода в CoffeeScript:

author = "И.Репин"

quote = "Автор этой картины -- #{ author }"

          sentence = "#{ 22 / 7 } - это хорошее приближение к числу π"

 

Этот же код в JavaScript:

var author, quote, sentence;

         author = "И.Репин";

         quote = `Автор этой картины -- ${author}`;

         sentence = `${22 / 7} — это хорошее приближение к числу π`;

 

Сразу бросается в глаза, что в CoffeeScript отпадает необходимость использовать ключевое слово «var». 

В CoffeeScript поддерживается многострочный ввод текста; самое главное, чтобы между словами строк не было больше одного «пробела» и не было «обратного слеша».

Как обозначаются комментарии

В CoffeeScript комментарии обозначаются не так, как в JavaScript. Комментарии в КофеСкрипт выглядят следующим образом:

  • # Это комментарий в одну строку 

  • ### Это комментарий в несколько строк, где в начале и в конце комментария располагаются «три решетки» ###

В JavaScript комментарии выглядят так:

  • / Это комментарий в одну строку

  • /* Это многострочный комментарий */

Комментарии, как мы знаем, игнорируются компиляторами и интерпретаторами. Но в случае с CoffeeScript комментарий также транслируется в JavaScript.

Циклы

Цикл в CoffeeScript выглядит следующим образом:

# Легкий перекус

eat = (food) -> "#{food} съедено."

eat food for food in ['тосты', 'сыр', 'вино']

# Сытный обед

courses = ['зелень', 'икра', 'трюфель', 'жаркое', 'торт']

menu = (i, dish) -> "Пункты меню #{i}: #{dish}" 

menu i + 1, dish for dish, i in courses

# Здоровое питание

foods = ['брокколи', 'шпинат', 'шоколад']

eat food for food in foods when food isnt 'шоколад'

 

Как будет выглядеть то же самое, но в JavaScript:

// Легкий перекус

var courses, dish, eat, food, foods, i, j, k, l, len, len1, len2, menu, ref;

          eat = function(food) {

  return `${food} eaten.`;

};

ref = ['тосты', 'сыр', 'вино'];

for (j = 0, len = ref.length; j < len; j++) {

  food = ref[j];

  eat(food);

}

          // Сытный обед

courses = ['зелень', 'икра', 'трюфель', 'жаркое', 'торт'];

          menu = function(i, dish) {

  return `Пункты меню ${i}: ${dish}`;

};

for (i = k = 0, len1 = courses.length; k < len1; i = ++k) {

  dish = courses[i];

  menu(i + 1, dish);

}

// Здоровое питание

foods = ['брокколи', 'шпинат', 'шоколад'];

for (l = 0, len2 = foods.length; l < len2; l++) {

  food = foods[l];

  if (food !== 'шоколад') {

    eat(food);

  }

}

На самом деле, особенностей у CoffeeScript очень много. Их сразу замечают те, кто уже практиковал программирование на JavaScript, C++, Python.

 

Заключение

Теперь вы знаете, что CoffeeScript — это не какой-либо фреймворк JavaScript, а полноценный язык программирования, хоть и небольшой. Главная его особенность — все, что будет написано на нем, будет «переведено» в JavaScript. Это дает возможность использовать всю мощь JS с легкостью и простотой, которую дает CoffeeScript. Тем, кого заинтересовал этот язык программирования, можно посоветовать официальный сайт-учебник CoffeeScript. Правда нужно отметить, что сайт на английском языке.

Схожие статьи

Какие возможности у Гугл Ассистента и как ими воспользоваться?
Другое

Какие возможности у Гугл Ассистента и как ими воспользоваться?

Важнейшие аспекты информационной безопасности: 3 основы
Другое

Важнейшие аспекты информационной безопасности: 3 основы

End-to-end или E2E-процесс: что это? Сквозное тестирование
Другое

End-to-end или E2E-процесс: что это? Сквозное тестирование

Лучшие языки программирования для изучения в 2021 году
Другое

Лучшие языки программирования для изучения в 2021 году