29.01.2012, 04:12
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Кто использует 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. Может еще чего-то из новых экмаскриптов.
Что-то много тут понаписал. Удалять лень
|
|
29.01.2012, 04:21
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сам в шоке от него
Для того чтобы прочитать произвольный Cofeescript надо основательно его выучить
Сообщение от FINoM
|
Честно говоря, хотел бы иметь в арсенале быстрый компилятор ограниченного количества сахара в JS, например, (краткие) -> записи*функций, генераторы, let и yield. Может еще чего-то из новых экмаскриптов.
|
компилятор Cofeescript умеет эти сахары?
вот и используйте его.
Пишите код, используя только необходимый вам сахар, а те конструкции, которые в Coffeescipt выглядят непривычно, записывайте стандартным JS синтаксисом.
Правда, при этом встает вопрос о невозможности использовать чужой coffeescript с незнакомыми вам конструкциями.
Но и в случае отдельного ограниченного компилятора возникает та же проблема - какое количество сахара он должен транслировать, чтобы было удобно всем читать чужой код?
Как стандартизировать?
|
|
29.01.2012, 04:48
|
|
Новичок
|
|
Регистрация: 05.09.2010
Сообщений: 2,298
|
|
Сообщение от Gvozd
|
Как стандартизировать?
|
Наводишь на ответ "написать свой"?
|
|
29.01.2012, 10:24
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Рубисты всегда славились тем, что ходили в чужой монастырь со своим уставом. Сначала Prototype написали, потом вот CoffeeScript. Если ты не рубист, то и CoffeeScript тебе не понравится.
Рубист -- в широком смысле, т.е. необязательно писать на Руби, достаточно, чтобы он тебе нравился. Мне, например, не нравится ни Руби, ни, соответственно, CoffeeScript.
|
|
29.01.2012, 11:12
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Kolyaj, надо посмотреть на руби)) А то я до сих пор не знаю, отношусь ли я к этой касте)
|
|
29.01.2012, 11:19
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от FINoM
|
действительно ли они используют кофескрипт для создания каких-нибудь вещей, сложнее, чем хеллоу ворлд.
|
Им лень учить JS, поэтому проще писать на CS
Сообщение от FINoM
|
Первый вопрос: что здесь что? Только потом, вчитавшись, понимаешь, что это метод attr, с аргументом {class: 'active'}.
|
Да ладно. Конечно не исключаю, что я привык к bash и такие конструкции сразу интуитивно понятны.
Сообщение от Kolyaj
|
Рубисты всегда славились тем, что ходили в чужой монастырь со своим уставом.
|
А как же .NET, Objective-J, Phype, ClojureScript, Parenscript, Dart, GWT?
Сообщение от Kolyaj
|
Если ты не рубист, то и CoffeeScript тебе не понравится.
|
А мне сильно нравится, хотя я далек от Ruby.
Кстати если уж пошел такой разговор, то 99% новых фич в ES6-7 будут из CS и Python.
Вобщем это эволюционное развитие языка, хоть я уже и приводил примеры будущего синтаксиса, на всякий
Последний раз редактировалось monolithed, 29.01.2012 в 11:33.
|
|
29.01.2012, 11:42
|
|
⊞ Развернуть
|
|
Регистрация: 11.01.2010
Сообщений: 1,810
|
|
Сообщение от Gvozd
|
Пишите код, используя только необходимый вам сахар, а те конструкции, которые в Coffeescipt выглядят непривычно, записывайте стандартным JS синтаксисом.
|
По-моему, там так нельзя.
Сообщение от FINoM
|
Честно говоря, хотел бы иметь в арсенале быстрый компилятор ограниченного количества сахара в JS, например, (краткие) -> записи*функций, генераторы, let и yield. Может еще чего-то из новых экмаскриптов.
|
Traceur
|
|
29.01.2012, 11:42
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от B@rmaley.e><e
|
По-моему, там так нельзя.
|
Раньше вроде можно было, сейчас компилятор не понимает такие конструкции
к примеру if (true) транслирует в i; (нужно писать так: if true then)
if (1) then транслирует в if (1.) {}, что-то глучить стал.
Последний раз редактировалось monolithed, 29.01.2012 в 11:59.
|
|
29.01.2012, 12:35
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
Сообщение от monolithed
|
if true then
|
В этот момент я понял, что точно не буду пользоваться coffeescript. Потому что if-then меня ещё в паскале достали.
|
|
29.01.2012, 12:54
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от FINoM
|
Хотя при всей своей крутости, язык попахивает бредом:
$('.account').attr class: 'active'
Первый вопрос: что здесь что? Только потом, вчитавшись, понимаешь, что это метод attr, с аргументом {class: 'active'}.
|
А по мне так всё нормально и интуитивно понятно.
Сообщение от FINoM
|
Вот это вообще кердык:
outer = 1
changeNumbers = ->
inner = -1
outer = 10
inner = changeNumbers()
Только прочитав результирующий JS я понял, что функция changeNumbers возвращает outer = 10.
|
Здесь всё вообще кристально понятно.
Может быть потому тебе не ясно из-за того, что ты не сталкивался с подобным стилем написания кода. Приведенный тобой кусок кода почти один в один похож на код Erlang.
Сообщение от FINoM
|
А еще тут не используется var o_0
|
По секрету скажу что использование var меня немного бесит. В Erlang тоже нет var, но там переменную вообще нельзя переопределить и все переменные пишутся с заглавной буквы, что ну офигеть как удобно. Не нужны баксы($) или var-ы. Слово с заглавной буквы - значит переменная.
Тебя смущает только первое впечатление от реализации того что уже реализовано, но более страшно, на мой взгляд.
Ты наверное ещё никогда не видел как список можно поделить на голову и хвост
Попробуй почитать другой язык, тот же Erlang или Ruby, может понравиться и негативного отношения не будет к другому стилю написания.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
|
|