Другое

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. Правда нужно отметить, что сайт на английском языке.

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

Самые перспективные направления в IT сфере: какое из них выбрать?
Другое

Самые перспективные направления в IT сфере: какое из них выбрать?

Начинающий программист
Другое

Начинающий программист

Нужно ли высшее образование программисту или можно обойтись без него?
Другое

Нужно ли высшее образование программисту или можно обойтись без него?

Какая популярность версий ОС Windows на самом деле — вскрываем карты
Другое

Какая популярность версий ОС Windows на самом деле — вскрываем карты

×