Перевод книги «The Little Book on CoffeeScript»


    Приветствую, хабраюзер!
    Недавно я решил изучить 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), добавляющий его поддержку.

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

    Похожие публикации

    Комментарии 15

    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Та, что у вас по ссылке — это совсем другая книга. CoffeeScript.org уже переведён. А насчёт того, что устарело — по крайней мере это просто старая версия самой книги. Сама идея в том, чтобы создать свободно распространяемый перевод, и, возможно, добавить туда что-то от себя, т.к. не все моменты в этой книге покрываются.
          +1
          coffeescript.org/ -> cidocs.ru/coffeescript/

          Давно сделал это.
            0
            Логичнее преревести — leanpub.com/coffeescript-ristretto/read — просто офигенная книга
            0
            А авторы не против такого перевода?
              0
              Нет, авторы сказали, что книга распространяется свободно.
                0
                Как вы смогли к ним достучаться? Просто интересно, в прошлом году хотел заняться этим же, но в репозитарии лицензии не было и никто из мейнтейнеров не ответил на прямой контакт.
                  0
                  Несколько некорректно выразился в комментарие выше, на этой странице во втором абзаце сказано, что книга полностью open-source.
                    0
                    open-source !== делайте, что хотите
                    Да, на гитхабе есть переводы этой книги, но все равно явного указания вида лиценизии нигде, похоже, нет.
              –3
              В последнее время переводить книги \ статьи стало опосян.
              Сорри за оффтоп
                0
                Если русского перевода еще нет — подключайте меня. Мне интересно. Переведу.

                Опыт в профиле :)
                  0
                  По собственному опыту — кофескрипт было удобно осваивать прямо на базе примеров, приведенных на официальном сайте.

                  Поскольку кофескрипт — лишь синтаксический сахар поверх js, знание самого js подразумевается по умолчанию.
                  А на сайте сразу приведены лаконичные и наглядные примеры кода на cs и результат компиляции в js. Удобно!

                  Но, разумеется, и книжка найдет свою аудиторию. Молодцы!
                    +1
                    Хорошее начинание. По результатам нужно добавить ссылочку вот сюда
                      0
                      Спасибо большое за ссылку, обязательно сделаю pull request, когда завершу.
                      0
                      Я взялся перевести доку на lodash, помогайте.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое