Подходит ли CoffeeScript?

Некоторое время назад я писал о сравнении Haml с ERB, выражая интерес к кажущейся простоте, привносимой Haml, и желание глубже погрузиться в него. К сожалению, этого еще не произошло, и я не уверен, что произойдет. Теперь, когда я по уши в JavaScript, я столкнулся с похожим сравнением: JavaScript или CoffeeScript? На этот раз читабельность и простота, предлагаемые CoffeeScript, НАМНОГО привлекательнее, чем в предыдущем сравнении.

Давайте сделаем кофе

Так что же такое CoffeeScript? Когда я изучал Rails с помощью онлайн-программы Flatiron School (Learn), я снова и снова замечал эти файлы .coffee, исследуя множество файлов, которые генерируют генераторы Rails. Только когда я погрузился в раздел JavaScript, у меня был момент лампочки.

CoffeeScript — это язык, который компилируется в JavaScript. Это преобразование один к одному, поэтому вам не нужно беспокоиться о потере какой-либо функциональности. Он использует элементы Ruby и Python, чтобы сделать ваш код более читабельным и простым с добавлением большего количества пробелов. Показательный пример… использование точек с запятой ( ; ), скобок ( () ) и фигурных скобок ( {} ) значительносокращено, а во многих случаях даже удален. Более того, CoffeeScript предоставляет элементы управления командной строки для преобразования файла .coffee в файл .js и даже для сохранения этого файла .js. обновляется при каждом обновлении файла .coffee.

И толпа сходит с ума!

Будет ли у меня такая же реакция, как у Хэмла? Думаю, нет. Почему вы спрашиваете? Тот факт, что Rails по умолчанию использует CoffeeScript при запуске генератора, заставляет меня думать, что это будущее/лучшая практика. Не знаю, как для вас, но для меня это довольно весомая и логичная причина пойти по пути CoffeeScript.

Как ты пьешь кофе?

Это все хорошо, но как выглядит CoffeeScript… как он ощущается? Для начала, когда вы объявляете функцию в CoffeeScript, она также будет эквивалентна обычному старому JavaScript-функции выражению:

// JavaScript
var person = function() {
  return "Hello there!";
}
// CoffeeScript
person = -> 
  'Hello there!' 

Вы можете видеть, как в CoffeeScript вы даже не объявляете переменную. Скорее, это подразумевается. Кроме того, никаких запутанных скобок, точек с запятой или фигурных скобок (как я уже говорил), а также не нужно даже использовать слово функция, замененное на -›. В результате, на мой взгляд, получилось нечто гораздо более читабельное, логичное и простое.

О, вот это хорошая чашка, Джо!

Теперь, как и в случае с Haml, я только «попробовал» CoffeeScript, но то, что я увидел, меня действительно волнует. Приступая к следующему разделу моей учебной программы (Rails и JavaScript), я поставил перед собой цель как можно больше изучить CoffeeScript — даже путем создания файлов .coffee для каждого .js файл, если это необходимо! Тем не менее, я с нетерпением жду этого!