Среди таких языков, как Java, JavaScript и Mocha, существует поразительно большое число языков программирования, которые были названы в честь кофе. Возможно, об одном из них вы даже никогда не слышали – CoffeeScript.
Первая стабильная версия CoffeeScript была выпущена в 2010 году Джереми Ашкенасом. Изначально это был небольшой второстепенный проект, который начал довольно быстро развиваться. Даже Брендан Эйх, создатель JavaScript, высказал свое мнение, назвав CoffeScript потрясающей идеей, которая должна послужить примером для будущих версий JavaScript. Именно так и произошло.
На сегодняшний день CoffeeScript уже не так популярен, как был когда-то, но он оказал огромное влияние на JavaScript, TypeScript и многие процессы frontend-разработки, которые мы применяем по сей день.
Для чего был создан CoffeeScript?
В 2010 году, когда была выпущена первая стабильная версия CoffeeScript, разработка на JavaScript была далеко не такой, как сейчас. JavaScript был обычным JavaScript. Не было таких вещей, как TypeScript или ES6, и не было ничего, что могло бы компилироваться в JavaScript из другого языка. Не было никаких frontend-фреймворков. Ну скажем так, до тех пор, пока тот же разработчик, который создал CoffeeScript, также не создал Backbone в том же 2010 году. (Был jQuery, но все же это не совсем фреймворк).
Честно говоря, отношение к JavaScript не было таким уж серьезным. Преимущественно его использовали для создания динамических эффектов на веб-страницах. Обычно frontend-разработчики пользовались jQuery, создавали красивые вещи с помощью CSS и добавляли эффекты с помощью JavaScript.
Джереми Ашкенас считал, что у языка есть отличительные особенности, и что ему есть что нам предложить, и что он мог бы усовершенствовать этот язык с помощью всего нескольких корректировок. Он создал CoffeeScript и добавил в него «синтаксический сахар» для того, чтобы выдвинуть на первый план выдающиеся функции JavaScript и спрятать более сложные и запутанные. Синтаксический сахар – это синтаксис, который применяется в языках программирования для того, чтобы облегчить его чтение и применение. Кроме того, CoffeeScript можно было скомпилировать в старый добрый JavaScript. Конечно, это была не новая концепция, но именно CoffeeScript сделал ее такой популярной.
Для чего использовался CoffeeScript?
CoffeScript использовался везде, где использовался JavaScript. Его применяли разработчики и компании, которым его синтаксис был по душе. Когда он только появился, он преимущественно использовался для backend-разработки, и даже сейчас во многих статьях в Интернете говорится о том, что он предназначен только для backend’а. Но это не совсем так. Стоило разработчикам настроить рабочий процесс под компиляцию кода для браузера, как он стал отлично работать и в рамках frontend’а.
Одна из самых крупных компаний, которая внедрила CoffeeScript, - это компания Dropbox. В 2012 году они переписали весь клиентский код с помощью CoffeeScript за одну неделю. Они полагали, что это поможет устранить многие проблемы с синтаксисом, которые есть в JavaScript. Если уж на то пошло, то Брендан Эйх написал первоначальную версию языка еще в 1995 году всего за десять дней, и до этого момента в язык вносилось не так много изменений. JavaScript развивался слишком медленно, а в CoffeeScript появилось много полезных функций.
Команда разработчиков текстового редактора Atom (это инструмент, который используется большим количеством разработчиков для написания кода) также признала CoffeeScript и сделала его официальным языком своей кодовой базы.
CoffeeScript мертв?
Как язык CoffeeScript не умер. Последняя версия под номером 2.6.1 была выпущена в октябре 2021 года. Так что, он все еще развивается и остается отличным языком, который стоит изучить. Он может многому вас научить, например, что можно делать с языком, который может компилироваться в JavaScript, или как создать абсолютно любой проект, как на JavaScript. Не исключено, что вам даже приглянется его синтаксис, и вы возьмете его на вооружение.
Но здесь есть одна проблема: его изучение не сильно посодействует вам в поиске работы. Кроме того, разработчиков, которые знают и используют этот язык, не так уж и много. Если вы все же найдете работу, которая требует знания CoffeeScript, то, вероятнее всего, вы будете работать с устаревшим кодом CoffeeScript или конвертировать CoffeeScript в TypeScript или JavaScript.
На сегодняшний день вы можете найти несколько вакансий на LinkedIn, в которых упоминается CoffeeScript, и все они в основном будут в Dropbox. Но даже они конвертируют свой код CoffeeScript в TypeScript. Одновременно с ними команда Atom также преобразовала свою кодовую базу в ES6.
Как JavaScript и TypeScript удалось его догнать?
Первая версия TypeScript была выпущена в октябре 2012 года. Он представлял собой расширенную версию JavaScript, которую разработала компания Microsoft. Он мало чем отличается от JavaScript; в нем появились только новые типы данных. Это означало, что разработчики JavaScript могли в короткие сроки изучить TypeScript и начать писать код, который был бы не так сильно подвержен ошибкам.
Даже Dropbox (один из основных сторонников CoffeScript) по достоинству оценил преимущества TypeScript. К концу 2015 года TypeScript стал привлекать к себе все больше внимания, отбирая его у CoffeeScript.
В 2015 году произошло еще одно важное событие – вышла версия JavaScript под названием ES6. Несмотря на то, что он не перенял уникальный синтаксис, присущий CoffeeScript, он также перенял большое количество его функций, которые так привлекали разработчиков. За последние несколько лет JavaScript перенял от CoffeeScript следующие функции:
- Настоящие классы вместо непривычных объектов-прототипов
- Стрелочные функции, которые сократили размер функций
- Использование ключевого слова let для объявления переменных
- Наследование классов
- Оператор сравнения in
- Объявление массивов в несколько строк
- Строковая интерполяция
На тот момент браузеры выполняли JS-код по-разному. В результате, JavaScript, который работал в одном браузере, мог не работать в другом. Кроме того, было не так много браузеров, которые поддерживали его новую версию – ES6. Однако есть еще одна вещь, которую разработчики JavaScript «подсмотрели» у CoffeeScript, и она состоит в том, что вы можете скомпилировать какой-то другой язык в JavaScript.
Примерно в то же время была выпущена библиотека JavaScript под названием Babel. Babel – это компилятор JavaScript, с помощью которого вы можете писать код в ES6 и компилировать его в ту версию JavaScript, которая совместима со всеми браузерами. И к тому же, разработчики уже успели познакомиться с компиляцией в JavaScript после использования CoffeeScript и TypeScript, и это в корне изменило ситуацию.
Такие изменения в экосистеме JavaScript превратили CoffeeScript в пережиток прошлого, и его использование резко сократилось.
Чем CoffeeScript отличается от JavaScript?
В процессе разработки CoffeeScript Джереми Ашкенас черпал вдохновение из Python, Ruby и Haskell. Вот некоторые отличия, которые есть на данный момент:
- Вы можете создать переменную только с помощью знака равенства, не используя ключевые слова var, const или let.
- Вам не нужно использовать точку с запятой в конце строки
- Вам не нужно использовать фигурные скобки для того, чтобы обозначить блок кода. вместо этого вы можете использовать разделительные символы (табуляция или пробелы), как в Python
- Вы можете использовать слова вместо символов для выполнения операции сравнения:
- isnt в качестве !==
- is в качестве ===
- not в качестве !
- and в качестве &&
Существуют и другие отличия, но со временем JavaScript «освоил» многие функции, которые сделали CoffeeScript оригинальным и отличным от остальных.
Что изучить вместо CoffeeScript?
Несмотря на тот факт, что CoffeeScript может оказаться довольно полезным для ваших собственных проектов, не стоит изменять JavaScript. Особенно если вы хотите выучить язык, который пользуется спросом. А что насчет TypeScript? Его тоже стоит изучить, поскольку он также востребован и добавляет в JavaScript новые типы данных, что позволяет писать более структурированный код, который не так сильно подвержен ошибкам.