avva: (moose)
[personal profile] avva
Попробовал писать на Coffeescript, и приятно удивлен. Удобный и интуитивный язык, писать на нем намного приятнее, чем на голом JS, и притом он специально от него далеко не отходит, т.е. результаты трансляции всегда прозрачны.

Ну вот просто красиво выходит, приятно. Javascript он какой-то весь угловатый, острый, дикий, яркий свет из лампы следователя в лицо, а Coffeescript - мягкие тона, непринужденная беседа, свежий воздух после дождя. Странно, что вся эта эстетика настолько влияет на желание что-то написать и эффективность работы, но вот ведь, влияет.

(я добавил в онлайн-версию Jelly No Puzzle Эвана Мартина возможность блокам толкать другие блоки, и это починило третий уровень. В принципе я собираюсь добавить недостающие возможности и оставшиеся уровни, если Эван меня не опередит в этом)

Date: 2013-02-26 07:33 pm (UTC)
From: [identity profile] scolar.livejournal.com
А TypeScript не пробовали?

Date: 2013-02-26 07:37 pm (UTC)
From: [identity profile] avva.livejournal.com
Нет, даже не слышал о нем, как-то прошло мимо меня.

Date: 2013-02-27 06:32 am (UTC)
From: [identity profile] potan.livejournal.com
Чем то мне не нравятся языки, где в конце функции зачем-то надо писать 'return'.

Date: 2013-02-26 08:47 pm (UTC)
From: [identity profile] cryinstone.livejournal.com
Плюсую. ТайпСкрипт - одна из немногих очень интересных штук, родившаяся в последние годы в лабораториях Майкрософта.

Date: 2013-02-26 08:09 pm (UTC)
From: [identity profile] piter239.livejournal.com
спасибо за третий уровень онлайн!

И в целом за эту милейшую игрушку. Очень интересная головоломка, с неожиданным свойством: найдя решение для уровня, уже на следующий день напрочь забываю, как я это сделал, и приходится заново решать))

Date: 2013-02-26 08:17 pm (UTC)
From: [identity profile] avva.livejournal.com
Пожалуйста!

Да, я тоже это обнаружил :) на третий раз вроде бы вспоминается зато!

Date: 2013-02-26 08:37 pm (UTC)
From: [identity profile] piter239.livejournal.com
ага))

наверное, обалдев от затрат на повторный поиск решения, психика делает доп. усилие и сохраняет-таки решение "чтобы в третий раз не искать"))

Date: 2013-02-26 08:12 pm (UTC)
From: [identity profile] janatem.livejournal.com
Похоже, основная фишка в двумерном синтаксисе. ;)

А datatype'ы с pattern matching'ом там есть?

Date: 2013-02-26 08:17 pm (UTC)
From: [identity profile] avva.livejournal.com
Двумерный синтаксис это приятно, но есть еще куча всего: вменяемые классы, list comprehensions, switch/when, simple continuations.

Datatype'ов с pattern matching'ом нет, и не надо :) Это нарушило бы их принцип не отходить далеко от JS.

Date: 2013-02-26 08:46 pm (UTC)
From: [identity profile] janatem.livejournal.com
Хм, ну пусть будет. Хотя я, имея лишь поверхностное знакомство с JS, полагал, что он по дизайну не был предназначен для того, чтобы на нем писали люди. Тогда логично было бы ожидать, что языки, нацеленные на ту же нишу, должны быть либо еще примитивней, чтобы стало еще проще/понятней писать генераторы, либо быть нормальными самодостаточными высокоуровневыми. А так получается какой-то питон — средство для того чтобы быстро слепить на коленке что-нибудь не очень большое. И даже синтаксис похож на питоний.

Date: 2013-02-26 09:48 pm (UTC)
From: [identity profile] orleanz.livejournal.com
" либо быть нормальными самодостаточными высокоуровневыми.

то есть вы считаете, что нормальный программист, пишущий на JS, постоянно плюется и говорит "ну где, где моя любая vanilla Java, как мне без нее трудно, без родной" ?

Date: 2013-02-27 06:16 am (UTC)
From: [identity profile] janatem.livejournal.com
Я полагал, что непосредственно на JS делают всякую мелочевку, а для чего-нибудь большого и сложного делают генераторы JS-кода. Поэтому испытываю когнитивный диссонанс, когда узнаю, что на JS программирует много народу как на обычном полноценном языке.

Только причем здесь ванильная ява? Это что ли образец совершенного языка?

Date: 2013-02-27 11:04 am (UTC)
From: [identity profile] orleanz.livejournal.com
" непосредственно на JS делают всякую мелочевку,

вопрос в том, что понимать под мелочевкой

вот эта игра, которая обсуждается в этом топике - это мелочевка или нет?

начиная с какого количества строк кода начинается не-мелочевка?

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

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

Date: 2013-02-27 11:23 am (UTC)
From: [identity profile] janatem.livejournal.com
Вначале хотел сказать, что эта игра уже не мелочевка, поскольку функционал там не совсем тривиальный, но посмотрел на код и вижу, что он совсем короткий, то есть вроде попадает «мелкий» класс. (У меня почему-то эта игра не работает в огнелисе — можно сделать один ход, а дальше ни на что не реагирует.)

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

Кстати, комментарий в конце кода JS-версии игры отчасти подтверждает мой тезис, о том, что не стоит писать на JS руками.

Date: 2013-02-27 12:24 pm (UTC)
From: [identity profile] orleanz.livejournal.com
ну если вы согласны, что в вебпроектах джаваскрипт часть обычно небольшая - то зачем вы предлагаете ее делать на тяжеловесных ЯП? Они предначначены для совсем другого - для создания громоздкого корпоративного софта с изначально неоптимальной архитектурой, когда со сложностью приходится бороться методами самого языка, а не разделением всего большого проекта на совокупность небольших модулей общающихся между собой по четкому интерфейсу.

Date: 2013-02-27 06:26 am (UTC)
From: [identity profile] potan.livejournal.com
Либо у них стокгольмский синдром, либо они нормальных ЯП не пробовали (или ниасилили).

Date: 2013-02-27 11:07 am (UTC)
From: [identity profile] orleanz.livejournal.com
а какой "нормальный" ЯП подошел бы лучше для тех целей где используется сейчас JS ? ява? кресты?

Date: 2013-02-27 11:37 am (UTC)
From: [identity profile] potan.livejournal.com
Там, где используется node.js - почти любой. Scala, например.
Как встроенный в броузер - выбор не большой. Все то, что компилируется в js. Понятно, что если без компиляции можно обойтись, то многие и будут обходиться, так как скопировать свежеотредактированный файл проще, чем его сначала чем-то компилировать. Но не смотря на это компиляторы появляютс в большом количестве. Я побозреваю, что любой из них будет лучше родного джаваскрипта, но пока сам не смотрел. Джаваскрипт у меня надолго отбил желание клиентской стороной заниматься.

Date: 2013-02-27 08:54 am (UTC)
From: [identity profile] zelych.livejournal.com
Есть ещё iced-coffeescript (http://maxtaco.github.com/coffee-script/).
Это расширение коффескрипта всего двумя ключевыми словами: await и defer.
Позволяет очень прозрачно писать всякие асинхронные вещи.

Date: 2013-02-27 03:50 am (UTC)
From: [identity profile] captain-tylor.livejournal.com
После CoffeeScript трудно писать на обычных языках. Снова начинаешь замечать все корявости, к которым успел привыкнуть.

Ну и второй недостаток языка - типизации все-таки очень не хватает.

Date: 2013-02-27 06:28 am (UTC)
From: [identity profile] potan.livejournal.com
Обычные - это какие?
Для меня обычные Haskell, Scala, Scheme. Но для броузера что-то писать приходится - думаю, куда смотреть.

Date: 2013-02-27 07:37 pm (UTC)
From: [identity profile] captain-tylor.livejournal.com
Scala замечательна (у меня есть даже проект с ней на гитхабе https://github.com/baturinsky/Scala-Ecc), но и у нее отовсюду торчат уши как Явы, так и самой Скалы. Типа моего "любимого" trait Field[T <: Field[T]] { self:T => - конструкция мощная, но настолько корявая...
Haskell уродлив в не-функциональных кусках. Scheme замусорена скобками. И только Coffeescript просто не замечаешь.
Edited Date: 2013-02-27 07:54 pm (UTC)

Date: 2013-02-27 01:37 pm (UTC)
From: [identity profile] orleanz.livejournal.com
" типизации все-таки очень не хватает.

типизация начинает становиться нужной только в больших проектах. Вы пишете свой аналог Линукса для браузера на js, как Фабрис Бейяр? или свой ПДФ-ридер на js? Тогда да.

Date: 2013-02-27 07:53 pm (UTC)
From: [identity profile] captain-tylor.livejournal.com
Без типизации рефакторить трудно. А я это дело люблю:)

Date: 2013-02-28 06:11 am (UTC)
From: [identity profile] amarao-san.livejournal.com

ага. у нас в продакте уже пол-года. для панельуи управления (админки).

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 07:08 pm
Powered by Dreamwidth Studios