Как стать автором
Обновить
99
0
Рысцов Денис @shai_xylyd

Пользователь

Отправить сообщение
Да, React очень интересный, но мне он показался очень подробным, что-ли, например, в todomvc на нем в 3 раза (!) больше кода, чем в Warp9.

Кроме того, у идея работать с POJSO есть свои минусы — если мы захотим по рабочему приложению получить слепок данных, чтобы их сохранить, например, — нам понадобится в каждый компонент добавить метод для экстракции этих данных из state. Посмотрите на исходники TodoMVC, там, чтобы этого избежать, пришлось все изменения делать внутри одного компонента (TodoApp), что тоже дурно попахивает, если мы говорим об архитектуре.
Парсер хабра, постарался пофиксить.
Я посмотрел на Javelin (https://github.com/tailrecursion/javelin). На первый взгляд он, так же как и RxJs и Bacon, не предоставляет ничего для постройки интерфейсов, только только дает возможность подцепиться к уже существующим элементам.

Примеры на github.com/tailrecursion/javelin-demos тоже все в стиле: вот у нас DOM и мы к нему цепляемся и изменяем. По мне нет смысла городить FRP если конечным шагом является подписка на реактивную переменную и модификация DOM с помощью jquery из обработчика.

Посмотрите на warp9 повнимательнее тут вся соль в композиции (собираем интерфейс по кусочкам) и модульности (любой кусок, вплоть до всего приложения включая view можно завернуть в AMD и загружать через requirejs). Дополнительным бонусом идет подход для сокращения утечек — посмотрите примеры, например, knockout и reactivecoffee этим страдают.
А где ссылка на TodoMVC?
Если сравнивать с уличным героином — да. Чистый героин, как и большинство опиоидов, не вызывает серьезных осложнений при длительном применении, кроме зависимости.

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

Конечно, всегда есть исключения, но не стоит на них надеяться, а то можно закончить как www.reddit.com/user/SpontaneousH/submitted
Пару лет назад, когда занимался .Net и созданием парсеров обнаружил, что удобнее Nemerle.Peg ничего нет. Советую посмотреть на него.
Спасибо за критику, это очень круто, особенно за #6 — классическая ошибка при метапрограммировании)

Если модуль большой, то невозможно найти те модули, которые использует данный модуль

Можно раскрыть мысль, почему это важно, я согласен, что очень часто нужна информация, где используется данный модуль, но не помню случая, когда задавался вопросом, кого он использует. Возможно, это просто вопрос привычки?

PS Вашу статью читал, она великолепна и всеобъемлюща, подробно описывает модули с технической точки зрения, но почему то после её прочтения у меня не сложилось понимания как нужно проектировать библиотеки используя современный модульный подход в JS. Именно поэтому мне и пришла в голову идея yamd — попытаться сделать систему похожей на java/c# (насколько это возможно), чтобы переиспользовать свой опыт этих языков.
Во ошибаетесь.

В AngularJS, как и любом другом фреймворке для создания приложений, основанном на шаблонах есть как минимум одна родовая травма — приложения не поддаются композиции. Именно поэтому создать компонент в AngularJS (директиву) сложнее, чем её использовать.

В React, наоборот, нет различия между приложением и компонентами, и само приложение строится через композицию компонентов.

Кстати, при использовании React, не возникает целого класса вопросов, который возникает при использовании AngularJS, например, как создать элемент интерфейса дерево (a-la проводник в windows).
Если не ошибаюсь, в java 8 появится sun.misc.Contended аннотация, которую можно будет вешать на класс или его поле/поля, чтобы избежать False sharing'а.

mail.openjdk.java.net/pipermail/hotspot-dev/2012-November/007309.html
Мне кажется, что при тотальном автопилоте кол-во машин резко снизится так, как пока человек работает 8 часов в офисе «его» машиной могут пользоваться другие люди, кроме того одна машина может отвозить привозить несколько людей, которые живут и работают рядом. Получает гибрид из общественного транспорта и личного водителя, а город станет местом для жизни)
25 лет назад Буран слетал в космос и сел на автоматике, а тут какие-то автомобили. Вспоминаем закон мура и думаем как техника ускорилась с тех пор, так же вспоминаем про то, что по сравнению с компом реакция человека ничтожна. Кстати, в России 28K смертей в год в дтп (это 1.5% от всех смертей).
Я не c++ разработчик, и сильно спотыкаюсь при чтении кода в статье, поэтому лучше спрошу, чем буду пытаться самостоятельно.

У вас в примере все async_code функции ничего не возвращают, это случайность или ограничение данного подхода?
Не понимаю, зачем использовать эфвемизмы, особенно такие очевидные и явно выделенные. Смысл в них, какой? Тем б*ле_ _итатb так*й т3кст *чень _еприятно, @ _начит эт* явное неуважение к читателю.
Мы давно записали фотографию и затем только читаем. В системе периодически вылетают диски — мы их заменяем новыми, но перебалансировки не происходит. Со временем все диски будут заменены, а так как перебалансировки не было — наша фотография хранилась только на старых дисках, следовательно, мы её потеряем.

Я что-то не так понял?
Верно, что со временем (без перебалансировки) все старые фотографии будут недоступны? Если да, то интересно, почему вы решили, что она не нужна.
Вы не тот вопрос задаете.

Если java-программист хочет использовать замыкание (изменение локальной переменной из лямбды), то java сообщество не бьёт его палкой, а рекомендует использовать костыль в виде int[] или AtomicInteger. Возникает вопрос, почему это окостылевание не делает компилятор, если оно и так общепринято? Ответ я не знаю.
Это не трюк, а костыль. Когда я в первый раз увидел подобный код (там использовался AtomicInteger), я включил повышенный внутренний уровень опасности, ожидая хитрой работы с потоками, оказалось зря — это был как раз этот «трюк»: использование вещей для этого не предназначенных, чтобы обойти искуственное ограничение. По-моему, сложность для людей очевидна.
Замыкания и лямбды можно реализовать на уровне синтаксиса без добавления новых инструкций в байткод и изменения виртуальной машины. Доказательство: C#, Scala.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность