Приветствую, читатель!
Недавно я решил изучить CoffeeScript. В поисках книги по этому языку я наткнулся на The Little Book on CoffeeScript. Однако, эта книга на английском — и я подумал, почему бы не перевести её на русский? Небольшая часть перевода уже завершена, и я был бы рад, если бы сообщество поддержало инициативу и помогло с переводом (сам я не настолько эксперт в JS, поэтому перевод местами кривоват, это надо корректировать).
За процессом перевода можно следить здесь. Ниже прикладываю перевод первой главы.
The Little Book on CoffeeScript. Глава 1. Введение
Что такое CoffeeScript?
CoffeeScript — это маленький язык программирования, компилируемый в JavaScript. На него повлияли языки Ruby и Python, поэтому в нём реализованы многие фичи из этих языков. Эта книга позволит вам изучить CoffeeScript, понять хорошие практики этого языка и начать создавать клиентские приложения с его помощью. Так как CoffeeScript является довольно небольшим языком, то и эта книга тоже небольшая — в ней всего 5 глав.
Этот материал — вольный перевод книги «The Little Book on CoffeeScript», написанной Алексом МакКоу (macman) с помощью Давида Гриффитса, Сатоши Мураками и Джереми Ашкеназа. Переводчик — Андрей Романов.
Если вы заметили опечатку, неточность в переводе, или вы просто хотите предложить что-то касательно этой книги, то не стесняйтесь написать мне.
Итак, давайте начнём. Почему CoffeeScript лучше, чем чистый JavaScript? Во-первых, потому что нам приходится писать меньше кода — CoffeeScript весьма лаконичен. Мой опыт показывает, что CoffeeScript-код занимает от трети до половины оригинального JavaScript-кода. Кроме того CoffeeScript имеет некоторые интересные возможности, такие как: конструкторы массива, `prototype`-алиасы и классы. Всё это в совокупности тоже сокращает количество кода, который приходится набирать.
Более того, JavaScript имеет множество подводных камней, которые могут сбить с толку неопытного разработчика. CoffeeScript аккуратно обходит эти странности языка, оставляя для разработчика лишь набор отлично работающих функций без всяких сложностей и подводных камней.
CoffeeScript — это не подмножество языка JavaScript. Несмотря на то, что вы можете получить доступ к внешним библиотекам в CoffeeScript-коде, вы получите ошибку синтаксиса, если попробуете скомпилировать чистый JavaScript-код. Также следует отметить, что CoffeeScript компилируется в чистый JavaScript, а не интерпретируется (как, например, Python).
Для начала развеем некоторые распространённые заблуждения. Вам нужно знать JavaScript, чтобы писать код на CoffeeScript, так как, например, анализ ошибок при выполнении кода требует знаний JS. Однако, оговорюсь, что в большинстве случаев ошибки бывают довольно очевидны. Ещё один миф о CoffeeScript — якобы скомпилированный JavaScript-код будет работать медленнее, чем его аналог, написанный программистом. На практике же видно, что это всего лишь миф — в некоторых случаях, скомпилированный CoffeeScript работает даже быстрее.
Каковы недостатки использования CoffeeScript? Во-первых, он требует компиляции. Однако эта проблема смягчается тем, что CoffeeScript пытается производить чистый и читаемый JS-код. Также эта проблема становится не очень значительной благодаря серверным решениям, которые автоматизируют компиляцию. Во-вторых, на данный момент сообщество не очень большое, и вам будет относительно трудно найти разработчиков, которые работают с CoffeeScript. Однако, CoffeeScript быстро набирает популярность. Стоит упомянуть, что уже сейчас в IRC-чате CoffeeScript можно оперативно получить ответ практически на любой интересующий вас вопрос.
CoffeeScript не привязан к браузеру, и может также использоваться на стороне сервера — например, в связке с Node.js. Кстати, CoffeeScript получил широкую известность благодаря тому, что он используется в Ruby on Rails по умолчанию (начиная с версии 3.1).
Пожалуй, уже сказано достаточно слов, чтобы вы составили примерное представление о том, что из себя представляет CoffeeScript. Самое время погрузиться в его изучение! Помните, что время, потраченное на изучение сейчас, во много раз окупится потом.
Первоначальная установка и настройка
Один из самых простых способов познакомиться с CoffeeScript — это использовать его прямо в браузере. Зайдите на http://coffeescript.org и нажмите на пункт меню Try CoffeeScript. Этот сайт использует браузерную версию компилятора CoffeeScript. Он конвертирует любой CoffeeScript-код из левой половины экрана в JavaScript-код, отображающийся в правой половине экрана.
Также можно конвертировать JavaScript в CoffeeScript, используя проект js2coffee. Этот сервис особенно полезен при переносе JavaScript-проектов на CoffeeScript.
Если возникнет необходимость, вы сможете сами использовать браузерный компилятор CoffeeScript. Для этого вам потребуется подключить на страницу этот скрипт и корректно обозначить тег script, в котором будет содержаться CoffeeScript-код.
<script src="http://jashkenas.github.com/coffee-script/extras/coffee-script.js" type="text/javascript" charset="utf-8"></script>
<script type="text/coffeescript">
# Some CoffeeScript
</script>
Очевидно, что в production'е вы вряд ли захотите использовать такой вариант компиляции, так как он медленный. Поэтому стоит взглянуть на Node.js компилятор. Чтобы установить его, убедитесь в наличии работающей последней версии Node.js и npm (менеджер пакетов для Node). Установить CoffeeScript можно с помощью следующей команды:
npm install -g coffee-script
После установки вам станет доступна команда coffee
. Если вы её выполните без аргументов, то вы получите доступ к CoffeeScript-консоли, в которой можно выполнять любой CoffeeScript-код. Для того, чтобы скомпилировать какие-либо файлы, используйте команду `coffee` с аргументом --compile
или его алиасом -c
.
coffee --compile my-script.coffee
Если не указать аргумент --output, CoffeeScript скомпилирует код в js-файл с таким же именем, что и у файла .coffee. В данном случае мы получим скомпилированный файл my-script.js. Учтите, что CoffeeScript при компиляции перезапишет все файлы, если они уже существуют. Чтобы посмотреть список доступных аргументов, выполните команду coffee с аргументом --help или алиасом -h.
Как вы можете увидеть выше, .coffee — это стандартное расширение CoffeeScript-файлов. Кроме прочего, это позволяет текстовым редакторам вроде TextMate или Sublime Text определить язык, используемый в файле. Благодаря этому редактор автоматически включит нужную подсветку синтаксиса. По умолчанию TextMate и Sublime Text не поддерживают CoffeeScript, но вы легко можете установить плагин (для TextMate, для Sublime Text), добавляющий его поддержку.
Возможно, все эти заморочки с компиляцией вас немного утомляют. Однако, не стоит отчаиваться — мы ещё встанем на путь решения этой проблемы, но для начала давайте разберёмся с синтаксисом языка.
Автор: andrew-r