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 знаходиться на вікі-програмі CoffeeScript In the Wild .
Я б сказав, що більша частина виробничого використання CoffeeScript дотепер спільно з Appcelerator створює програми для iPhone / Android. (Wynn Netherland з The Changelog розмив мою книгу, описуючи CoffeeScript як "мою таємну зброю для розробки мобільних пристроїв для iOS, Android та WebOS"), але у виробництві додатків Rails буде набагато більше використання, і, сподіваюся, в іншому місці - у найближчі місяці.
Coffeescript було використано в читальнику Ars Technica для iPad http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars
Я дуже люблю Coffeescript в ці дні. По суті, вся програма iPhone HotelTonight написана в ній (використовуючи Appcelerator Titanium, який дозволяє писати "рідні" програми в JavaScript - це не веб-програми, скажімо, як Phonegap). Я вирішив використовувати Coffeescript у цьому випадку, оскільки це значно полегшує організацію та підтримку великої кількості JS. Я також вважаю, що просто набагато приємніше писати код за допомогою Coffeescript (проти JavaScript). Ми також використовуємо Coffeescript для JS у нашому додатку Rails, але це неймовірно незначна / невелика кількість коду по відношенню до всієї телефонної програми.
Плюси здебільшого пов’язані з просто приємнішим синтаксисом, а також у тому, що він стандартизує механізм ОО, а потім додає кілька приємних доповнень (розуміння списку, деякі обсяги тощо).
Мінуси для мене майже нульові. Первинним є те, що це додатковий шар для налагодження. Вам потрібно буде подивитися на створений JS (який ДУЖЕ читається і приємний), а потім зіставити його з вашим кодом Coffeescript. Для нас це взагалі не було проблемою, але YMMV.
Зрештою, на мою думку, існує нульовий ризик з точки зору використання його у виробничому додатку, тому не дозволяйте це блокувати. Потім спробуйте спробувати. Напишіть з ним якийсь код, порівняйте його з тим, що ви б написали в JS, подивіться на згенерований код, щоб побачити, чи вам зручно читати це для потреб налагодження. Крім того, тусуйтесь у #coffeescript IRC, люди там хороші. І нарешті, подивіться, як він інтегруватиметься у ваш додаток, наприклад, який ваш процес "побудови" (наприклад, для Rails, спробуйте Barista, для чогось самостійного, просто використовуйте включений "кава -w" тощо).
Coffeescript насправді просто полегшує написання JS. Ви закінчуєте більш чистий, більш ефективний код.
Як сказано, ви все ще можете робити тільки все, що можете зробити у ванільній JS. Коли ви достатньо використовуєте кофеескрипт, це стає набагато простіше написати (хороший) JS.
Тож якщо ви ще не використовували JS тонну, я б запропонував навчитись кофрискрипту. Ви отримаєте кращий, чистіший, менше баггі-код. Якщо ви вже справді вільно володієте JS, можливо, не буде гарною ідеєю почати використовувати coffeescript у "справжньому" додатку.
(Крім того, coffeescript трохи дратує мене тим, що він, схоже, заохочує скоріше "floofy" код. Я не знаю, добре це чи погано, але це здається крайнім випадком TMTOWTDI)
Зауважте, що хоча є компілятор, ви не отримуєте статичну перевірку через динамічний характер JavaScript. Як написано в FAQ:
Статичний аналіз
CoffeeScript використовує прямий компілятор від джерела до джерела. Перевірка типу не проводиться, і ми не можемо визначити, чи існує якась змінна чи ні. Це означає, що ми не можемо реалізувати функції, які інші мови можуть вбудувати рідно, без дорогих перевірок виконання. Як результат, будь-яка особливість, яка спирається на такий аналіз, не буде розглянута.
Підтримка IDE менш зріла, ніж підтримка JavaScript (Cloud9 має підтримку виділення синтаксису, але Eclipse JSDT має рефакторинг тощо): /programming/4084167/ide-or-its-add-in-for-coffescript -програмування