Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Кто использует Coffeescript в своих проектах или на работе? (https://javascript.ru/forum/node-js-io-js/25218-kto-ispolzuet-coffeescript-v-svoikh-proektakh-ili-na-rabote.html)

FINoM 29.01.2012 04:12

Кто использует Coffeescript в своих проектах или на работе?
 
Собсно сабж. Вот смотрю я на огромный кусок человечества и не понимаю, действительно ли они используют кофескрипт для создания каких-нибудь вещей, сложнее, чем хеллоу ворлд. Я, вот, в очередной раз открыл сайт сабжа, сказал "круто" и закрыл.

Да и вообще, интересны подробности и особенности языка, проявляющиеся только в процессе работы. Сильно интересует вопрос отладки. Вот появилась ошибка синтаксиса или исключение, как найти соответствующую строку?

Хотя при всей своей крутости, язык попахивает бредом:
$('.account').attr class: 'active'
Первый вопрос: что здесь что? Только потом, вчитавшись, понимаешь, что это метод attr, с аргументом {class: 'active'}.

Вот это вообще кердык:
outer = 1
changeNumbers = ->
  inner = -1
  outer = 10
inner = changeNumbers()
Только прочитав результирующий JS я понял, что функция changeNumbers возвращает outer = 10.

А еще тут не используется var o_0

Честно говоря, хотел бы иметь в арсенале быстрый компилятор ограниченного количества сахара в JS, например, (краткие) -> записи*функций, генераторы, let и yield. Может еще чего-то из новых экмаскриптов.

Что-то много тут понаписал. Удалять лень :D

Gvozd 29.01.2012 04:21

Сам в шоке от него
Для того чтобы прочитать произвольный Cofeescript надо основательно его выучить

Цитата:

Сообщение от FINoM
Честно говоря, хотел бы иметь в арсенале быстрый компилятор ограниченного количества сахара в JS, например, (краткие) -> записи*функций, генераторы, let и yield. Может еще чего-то из новых экмаскриптов.

компилятор Cofeescript умеет эти сахары?
вот и используйте его.
Пишите код, используя только необходимый вам сахар, а те конструкции, которые в Coffeescipt выглядят непривычно, записывайте стандартным JS синтаксисом.
Правда, при этом встает вопрос о невозможности использовать чужой coffeescript с незнакомыми вам конструкциями.

Но и в случае отдельного ограниченного компилятора возникает та же проблема - какое количество сахара он должен транслировать, чтобы было удобно всем читать чужой код?
Как стандартизировать?

FINoM 29.01.2012 04:48

Цитата:

Сообщение от Gvozd
Как стандартизировать?

Наводишь на ответ "написать свой"? :D

Kolyaj 29.01.2012 10:24

Рубисты всегда славились тем, что ходили в чужой монастырь со своим уставом. Сначала Prototype написали, потом вот CoffeeScript. Если ты не рубист, то и CoffeeScript тебе не понравится.
Рубист -- в широком смысле, т.е. необязательно писать на Руби, достаточно, чтобы он тебе нравился. Мне, например, не нравится ни Руби, ни, соответственно, CoffeeScript.

trikadin 29.01.2012 11:12

Kolyaj, надо посмотреть на руби)) А то я до сих пор не знаю, отношусь ли я к этой касте)

monolithed 29.01.2012 11:19

Цитата:

Сообщение от FINoM
действительно ли они используют кофескрипт для создания каких-нибудь вещей, сложнее, чем хеллоу ворлд.

Им лень учить JS, поэтому проще писать на CS

Цитата:

Сообщение от FINoM
Первый вопрос: что здесь что? Только потом, вчитавшись, понимаешь, что это метод attr, с аргументом {class: 'active'}.

Да ладно. Конечно не исключаю, что я привык к bash и такие конструкции сразу интуитивно понятны. :D

Цитата:

Сообщение от Kolyaj
Рубисты всегда славились тем, что ходили в чужой монастырь со своим уставом.

А как же .NET, Objective-J, Phype, ClojureScript, Parenscript, Dart, GWT?

Цитата:

Сообщение от Kolyaj
Если ты не рубист, то и CoffeeScript тебе не понравится.

А мне сильно нравится, хотя я далек от Ruby.
Кстати если уж пошел такой разговор, то 99% новых фич в ES6-7 будут из CS и Python.
Вобщем это эволюционное развитие языка, хоть я уже и приводил примеры будущего синтаксиса, на всякий

B@rmaley.e><e 29.01.2012 11:42

Цитата:

Сообщение от Gvozd
Пишите код, используя только необходимый вам сахар, а те конструкции, которые в Coffeescipt выглядят непривычно, записывайте стандартным JS синтаксисом.

По-моему, там так нельзя.

Цитата:

Сообщение от FINoM
Честно говоря, хотел бы иметь в арсенале быстрый компилятор ограниченного количества сахара в JS, например, (краткие) -> записи*функций, генераторы, let и yield. Может еще чего-то из новых экмаскриптов.

Traceur

monolithed 29.01.2012 11:42

Цитата:

Сообщение от B@rmaley.e><e
По-моему, там так нельзя.

Раньше вроде можно было, сейчас компилятор не понимает такие конструкции

к примеру if (true) транслирует в i; (нужно писать так: if true then)

if (1) then транслирует в if (1.) {}, что-то глучить стал.

trikadin 29.01.2012 12:35

Цитата:

Сообщение от monolithed
if true then

В этот момент я понял, что точно не буду пользоваться coffeescript. Потому что if-then меня ещё в паскале достали.

Gozar 29.01.2012 12:54

Цитата:

Сообщение от FINoM (Сообщение 153839)
Хотя при всей своей крутости, язык попахивает бредом:
$('.account').attr class: 'active'
Первый вопрос: что здесь что? Только потом, вчитавшись, понимаешь, что это метод attr, с аргументом {class: 'active'}.

А по мне так всё нормально и интуитивно понятно.

Цитата:

Сообщение от FINoM (Сообщение 153839)
Вот это вообще кердык:
outer = 1
changeNumbers = ->
  inner = -1
  outer = 10
inner = changeNumbers()
Только прочитав результирующий JS я понял, что функция changeNumbers возвращает outer = 10.

Здесь всё вообще кристально понятно.

Может быть потому тебе не ясно из-за того, что ты не сталкивался с подобным стилем написания кода. Приведенный тобой кусок кода почти один в один похож на код Erlang.

Цитата:

Сообщение от FINoM (Сообщение 153839)
А еще тут не используется var o_0

По секрету скажу что использование var меня немного бесит. В Erlang тоже нет var, но там переменную вообще нельзя переопределить и все переменные пишутся с заглавной буквы, что ну офигеть как удобно. Не нужны баксы($) или var-ы. Слово с заглавной буквы - значит переменная. ;)

Тебя смущает только первое впечатление от реализации того что уже реализовано, но более страшно, на мой взгляд.

Ты наверное ещё никогда не видел как список можно поделить на голову и хвост :)

Попробуй почитать другой язык, тот же Erlang или Ruby, может понравиться и негативного отношения не будет к другому стилю написания.


Часовой пояс GMT +3, время: 18:32.