Coffeescript выглядит довольно круто. Кто-нибудь им пользовался? Каковы его плюсы и минусы?
Coffeescript выглядит довольно круто. Кто-нибудь им пользовался? Каковы его плюсы и минусы?
Ответы:
Мы начали использовать CoffeeScript в нашем продукте - закрытом веб-сайте, который по сути представляет собой приложение для просмотра определенных видов данных. Мы используем CoffeeScript в качестве компилятора командной строки (не на сервере, что мы в конечном итоге хотели бы сделать).
Что важно, мы можем вернуться в любое время. Наш компилятор coffeescript просто создает читаемый javascript, поэтому, если кто-то передумает или не может что-то понять, мы можем просто вернуться к использованию javascript, созданного coffeescript, и продолжить кодирование.
this
, или вы никогда не отправляли функции не того типа? Не думаю, что вы сделали что-то интересное, если вам не пришлось ничего «отлаживать».
-m
и все хорошо.
Мы используем coffeescript для всего javascript в BusyConf . Большая часть BusyConf - это клиентское приложение, работающее в браузерах, включая поддержку автономного режима.
Весь наш код coffeescript полностью протестирован. Сами тесты написаны на coffeescript и используют фреймворк Qunit (который написан на javascript). Мы также написали расширение для фреймворка Qunit, которое делает тесты удобнее. Расширение Qunit написано на CoffeeScript . У нашего приложения есть мобильная версия, написанная на CoffeeScript, и она использует фреймворк Sencha Touch (написанный на javascript).
Вывод из этого состоит в том, что вы можете свободно смешивать зависимости javascript в своем приложении, но весь код, который вы пишете (код вашего приложения, тесты и т. Д.), Может (и должен!) Быть coffeescript.
Спустя почти год стоит выложить несколько обновлений:
Самый полный список проектов CoffeeScript находится на странице In the Wild вики CoffeeScript .
Я бы сказал, что большая часть производственного использования CoffeeScript до сих пор связана с Appcelerator для создания приложений для iPhone / Android. (Винн Нидерланды из The Changelog анонсировала мою книгу, описав CoffeeScript как «мое секретное оружие для разработки мобильных приложений под iOS, Android и WebOS»), но в производственных приложениях Rails будет гораздо больше использования - и, я надеюсь, в других местах - в ближайшие месяцы.
Coffeescript использовался в ридере Ars Technica для iPad http://arstechnica.com/apple/news/2010/11/introduction-the-ars-technica-reader-for-ipad.ars
Я очень люблю Coffeescript в наши дни. По сути, все приложение HotelTonight для iPhone написано на нем (с использованием Appcelerator Titanium, который позволяет писать «нативные» приложения на JavaScript - они не являются веб-приложениями, например, как Phonegap). В этом случае я решил использовать Coffeescript, потому что он значительно упрощает организацию и поддержку большого количества JS. Я также считаю, что намного приятнее писать код с помощью Coffeescript (а не JavaScript). Мы также используем Coffeescript для JS в нашем приложении Rails, но это невероятно незначительный / небольшой объем кода по отношению ко всему приложению для телефона.
Плюсы в основном связаны не только с более приятным синтаксисом, но и с тем, что он стандартизирует механизм объектно-ориентированного программирования, а затем добавляет некоторые приятные дополнения (понимание списков, некоторые аспекты области и т. Д.).
Минусов для меня практически ноль. Первый из них - это дополнительный уровень для отладки. Вам нужно будет посмотреть на сгенерированный JS (который ОЧЕНЬ читабельный и приятный), а затем сопоставить его с вашим кодом Coffeescript. Для нас это вообще не было проблемой, но YMMV.
В конце концов, я считаю, что нет никакого риска с точки зрения использования его в производственном приложении, поэтому не позволяйте этому быть блокирующим. Тогда иди и попробуй. Напишите с ним какой-нибудь код, сравните его с тем, что вы бы написали на JS, посмотрите на сгенерированный код, чтобы увидеть, удобно ли вам читать его для отладки. Кроме того, тусуйтесь в IRC #coffeescript, там хорошие люди. И, наконец, посмотрите, как он будет интегрироваться с вашим приложением, например, каков ваш процесс «сборки» (например, для Rails попробуйте Barista, для чего-то отдельного просто используйте прилагаемый «coffee -w» и т. Д.).
Coffeescript действительно упрощает написание JS. В итоге вы получите более чистый и эффективный код.
При этом вы по-прежнему можете делать только то, что можете делать в vanilla JS. Как только вы достаточно используете coffeescript, писать (хороший) JS становится намного проще.
Так что, если вы не использовали JS много, я бы посоветовал вместо этого изучить coffescript. Вы получите лучший, чище, меньше ошибок в коде. Если вы уже действительно свободно владеете JS, возможно, не стоит начинать использовать coffeescript в «реальном» приложении.
(Кроме того, coffeescript меня немного раздражает тем, что он, кажется, поощряет довольно "бестолковый" код. Я не знаю, хорошо это или плохо, но это крайний случай TMTOWTDI)
Обратите внимание, что хотя есть компилятор, вы не получаете статическую проверку из-за динамической природы JavaScript. Как написано в FAQ:
Статический анализ
CoffeeScript использует прямой компилятор от исходного кода к исходному. Проверка типов не выполняется, и мы не можем понять, существует ли переменная или нет. Это означает, что мы не можем реализовать функции, которые другие языки могут встроить изначально, без дорогостоящих проверок во время выполнения. В результате никакие функции, основанные на таком анализе, не рассматриваются.
Поддержка IDE менее развита, чем поддержка JavaScript (Cloud9 имеет поддержку подсветки синтаксиса, но Eclipse JSDT имеет рефакторинг и многое другое): /programming/4084167/ide-or-its-add-in-for-coffescript -программирование