ingspree
0
Как насчëт < и >?
ingspree
+1
Что понятнее, хорошо видно по тому, что на самом деле <li> — это list item.
ingspree
0
А, статики да, спорная идея. Мне еще не хватает children'ов в нормальном синтаксисе, хоть бери и форкай, а то чувак подзабил как-то.
ingspree
0
> обертку над ним quiescent (а это неправильное, но терпимое)

Забыл спросить, а чего неправильное-то? А то мы тоже его взяли и я в принципе доволен.
ingspree
0
> Это особо не усложняет программирование, но программа получается проще в понимании и надежней.

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

То же самое хотел сказать. :) Очень круто вышло.
ingspree
0
Спасибо за отзыв, очень приятно. :)
ingspree
+1
У gostatic'а дока очень лаконичная, так что поначалу может быть немного тяжело, но он умеет генерировать скелет простенького сайта (gostatic -i name). Можно тут спрашивать, если что. :)

Ну подсчитать — смотря какой точности хочется. Если просто прикинуть — то попробовать сделать сайт страниц на 500 для каждого генератора более-менее одинаковый по сложности (со вложенными темплейтами, етц). Я сконвертировал свой сайт с cyrax'а на gostatic и вышло типа 10-15 секунд против трети секунды: github.com/piranha/gostatic#speed
ingspree
0
А, да, есть такое дело. Ты имеешь в виду, что в реакте нет внешнего состояния, которое можно было бы менять из внутренних компонентов? Да, иногда это несколько геморно, иногда плюс (меньше шансов слишком завязаться на глобальное состояние).
ingspree
+1
Мне тяжело сказать, течëт ли он. В целом вполне возможно, ссылки на слушателей событий хранятся просто в свойстве watches у каждой ячейки.

На тему сложности — что с boot'ом, мне непонятно (в смысле почему они не используют просто лейнинген), но в целом всë проще. Нужна джава и шелл-скрипт для лейнингена, и практически все кложурные/кложурскриптовые проекты поедут. В случае с хоплоном еще нужен boot, но он ставится относительно проще. Clojure, Hoplon, Javelin — это всë библиотеки и они скачаются автоматически, так что на самом деле гемора не так и много.
ingspree
0
Имхо, StopDoingWrongStuffException должен быть. :)
ingspree
0
Не понял аргумента вообще. Todo очень маленькое приложение и там раскидывать состояние в разные места я не вижу смысла. А в большом приложении вроде бы всë ок, у меня сверху спускаются какие-то общие данные (про пользователя, и все штуки, которые принадлежат ему), а всякое мелкое состояние для компонентов прямо в них определено. Общие данные сейчас бэкбоновые модели и в целом пока терпимо вроде, лучше, чем во всех остальных случаях было (кроме хоплона, ну и варп я не пробовал еще).
ingspree
+2
Ну ведь о том и речь, что он не очевидный. Кажется, что всë ок, а на самом деле…
ingspree
+1
Не совсем так, просто джавелин — это половина истории.

github.com/tailrecursion/hoplon
ingspree
0
Я всë-таки прозреваю, как вы в сторону UTC сместились. Я решил, что не имеет смысла никакого работать в ночь — я просто превращаюсь в овощ, реально, а так у меня ок со скоростью.

Но отлично видно, что мы первый день реально только раздуплялись — очень медленно всë шло. Зато во второй всë ок, аж приятно смотреть. :)
ingspree
0
Охлол, комменты нельзя редактировать, но вот без цветов ссылка: paste.in.ua/8806/
ingspree
0
Ну да, мы ближе к UTC и это удобнее, но не было смысла до 7 утра спать не ложиться, продуктивность падает, а на второй день я потом бы вообще неработоспособен был, а так фигачил вполне успешно. Зацени вот: paste.in.ua/8805/

:-)
ingspree
0
> Команда WarMagnet, например, сделала такое с Clojure биндингами к React-у

Хотела сделать, точнее. :)) А так до часу субботы возились — github.com/piranha/pump/commit/6ea166a9e883992a1a130d765bc9f4934443625c
ingspree
+2
Канеша, но PgSQL круче мариидб и cljs на клиенте круче ангуляра! :) Так шо в сумме у нас 1 очко всë круче. :)))
ingspree
0
Скажи, bleeding edge! У нас тоже веб-сокеты, тоже SQL (гг, опять в моде?), кеширование в памяти с помощью кложурных атомов и миграции моей личной библиотекой, гг.

Надо сказать, что идея мне ваша нравится, но я пока не нашëл у себя репозиторий с TODO/FIXME, что мешает его потестировать. :\
ingspree
0
Касаемо циклов — теоретически можно и проблем нет. Практически FRP-системы так не работают (точнее, их создатели не рекомендуют так их использовать). Надо поэкспериментировать. :)

Но в целом я прочитал комментарий и не понял, почему не надо пользоваться. Но окей, выводы каждый делает сам для себя. :)
ingspree
+2
Я вообще-то Саня, если что, но пожалуйста. :)

Ссылки вот: piranha.github.io/slides/frp/#18
ingspree
0
a->b->c->a — противоречит идее. Про closure не понял. Речь о замыкании или о чëм?
ingspree
+1
Цикл с dirty check'ом (на мобилах фактических это использовать нельзя), огромное апи и паршивые доки.
ingspree
0
Без понятия, честно говоря, ни разу не видел Qt вблизи. Может, но если интересно — то лучше почитать что-нибудь серьëзное про FRP, не наблюдая кода идею тяжело оценить.
ingspree
0
Пока мне кажется, что таки да, любую программу (я тут хотел сделать оговорку, но не придумал) можно сделать проще. Но длинного опыта продакшена с помощью FRP у меня нет пока. :)
ingspree
+1
Надо свыкнуться с мыслью, конечно, что это не unobtrusive JS, а прямая противоположность — хтмл внутри жс, но потом всë идëт хорошо. Более того, мне кажется, что unobtrusive JS в случае с полноценными внутрибраузерыми приложениями не работает, и то, что делает реакт — правильно (хотя хоплон делает еще правильнее, имхо — делит на внутреннее апи и внешний интерфейс).
ingspree
0
Ох, тяжело уже сейчас сформулировать.

Основное — это то, в каком стиле он побуждает людей писать (и как написаны основные приложения). Но я так и не взялся на нëм ничего писать, поэтому технических нет ни одного (в отличии от бэкбона и ангуляра).
ingspree
0
Если порядок нам важен, надо сделать так, чтоб второе обновление не пришло раньше первого (или как там нужно). Короче, рассчитывать на разные данные — фича в том, что у нас всегда есть какие-то данные, мы работаем со всегда существующими данными.

Т.е. прикол не в том, что с событиями так нельзя писать, прикол в том, что это тяжело делать и в эту сторону никто не направляет.
ingspree
+1
> Мне все-таки кажется, причина этого содома не в JS, а в людях. Ну даже во время вашего доклада было видно, что уровень аудитории довольно не высокий.

Надо сказать, что это была самая классная аудитория этого доклада (я его в общей сложности 5 раз рассказывал). Но на тему «не в жс, а в людях» — я пытался обсуждать проблему с людьми, которые пишут традиционные ГУИ — они ж там должны были всë порешать давно, да? Та же жопа, те же ивенты, такая же лапша.

Я вот в новый проект взял фейсбуковый React и пока доволен, он в целом как компромисс между практичностью и разумностью вроде бы ничего, но еще рано что-то утверждать, 3 недели пока код пишем только. :)

Про angular хочется молчать.
ingspree
+1
> Такая система с одной стороны остается более-менее декларативной и наглядной, как и реактивная, с другой — дает больше свободы действия.

Это да, без некоторого состояния в паре мест ну просто очень тяжело будет. Если что, я не за то, чтоб всë сделать идеально, pure shit, иначе я был бы фанатом Хаскеля. А так как мне нравятся более простые и близкие к жизни решения, то я не против того, что надо сделать рабочую систему. Просто то, что сейчас происходит в написании приложений на жс — это содом и гоморра, и надо чота решать.

> Если мы хотим сделать что-то более сложное, чем валидацию формочек

Я бы так словами не разбрасывался, валидация формочек это в целом показательная задача, там довольно много состояний и это не самая простая вещь в мире. :)

На Эльм еще посмотрим. Но освоить его очевидно тяжело, может позже, когда раздуплятся на внятный туториал, а не «введите эти 3 строки вот в это место; смотрите — мячик прыгает; введите еще 2 строки — и он прыгает иначе!»
ingspree
0
Да, я вот на clojurecup планирую попробовать интерфейс на core.async построить и посмотреть, как оно. А вот пьедесталом я что-то пока совсем не проникся, может тоже попробовать надо, но вот читал туториал — и сложилось впечатление, что слишком много слов.

На тему джавелина еще надо упомянуть хоплон (который в марте еще хлиспом назывался) — github.com/tailrecursion/hoplon

И вообще, спасибо за отзыв! :)
ingspree
+1
Ага, прикол. Ну, я про скалу читал и чуть разбирался, но презентации не смотрел и этот момент умудрился пропустить абсолютно. Сейчас глянул — даже в википедии есть Influenced by Erlang, глаз замылен.

Да, срыва покровов нет, у меня нелюбовь к Ерлангу больше от того, что его парят как светлое будущее, а он не только не лучше альтернатив, а зачастую заметно хуже. И софт-прорыв-в-мейнстрим, написанный на нëм — Ejabberd — внутри довольно-таки страшен после всех лет развития. Prosody на мой вкус ровнее, а написан на совершенно непримечательной Lua.
ingspree
0
Если Qt Quick это только property binding, то не совсем, это часть, хоть и важная (важная для юзабельности, для концепции это как раз мелочь и не основное). Я рассказываю про то, что в .NET называется Reactive Extensions (Rx.NET), про ReactiveCocoa, про Flapjax/Bacon.js, про Rx.Java, больше не знаю сходу названий. Trellis в питоне еще есть, но он мог бы быть и попрямее (у меня не получилось его использовать нормально :\).
ingspree
+1
> Непонятно, как в общем случае прибиндить данные к комментариям, не обновляя всю структуру DOM каждый раз при редактировании комментария, и без нереактивных хаков.

Да, это очень тяжëлый вопрос и у меня (как в целом и у всех, вроде бы — я пытаюсь следить, что там люди выдумывают) нет ответа. Мне кажется, что можно забить на правильность и внутри реализации списка схачить и завязать его жестко на DOM.

> К слову, раскритикованные вами elm таки решает эту проблему. Правда создает при этом другие.

btw, он серьëзно обновился месяц-два назад и теперь чуть прямее работает. Но всë равно он недохаскель и это немножечко страшно (и то, что хаскель, и то, что недо), и всë равно дока говно, примеры говно (впрочем, я 2 месяца назад последний раз смотрел, но лень уже)…

> В общем, хотелось бы услышать вашу точку зрения как вы видите решение проблемы в нечистых функциональынх языках, таких как та же Кложа.

Для прототипа/концепта сгодится перерисовывание, для рабочих вещей — инкапсуляция работы с домом внутри итерации. Вот как в фейсбуковом React'e, снаружи всë ровно, а внутри хитрые пляски с домом.
ingspree
0
Хм, окей, как-то я это пропустил. Буду знать, спасибо.
ingspree
0
Хз, лень наступила. :-))
ingspree
+4
Скала? Из Эрланга? Та ну, никакой связи, кроме Akka, которая сторонняя библиотека (еë взяли внутрь уже, но всë же).

На тему самого Эрланга — не очень подробно, но всë же: www.facebook.com/kachayev/posts/492248150824885