Александр Соловьев / Functional Reactive Programming & ClojureScript [ru]
Вставка
- Опубліковано 11 кві 2013
- Конференция JavaScript Frameworks Day прошла в Киеве 2 марта 2013 года.
Таймкоды:
01:54 Как всё обычно делается. Проблемы событий
06:06 FRP - Зачем это нужно?
14:56 Обычные вычисления. Реактивные вычисления. Комбинирование
18:08 ClojureScript
28:20 Q&A
Презентация доклада: fwdays.com/event/js-framework...
Facebook: / fwdays
Twitter: / fwdays
Офигенный кодерский стэндап
Легендарный доклад. Александр пытается объяснить принцип работы ныне популярного React.js ещё до того это стало мэйнстримом. Чувак был впереди своего времени.
React.js никакого отношения к reactive programming не имеет. То, о чем говорит докладчик, относится больше к либе rxjs-dev.firebaseapp.com/ которую изначально использует Angular. Так что Angular ближе к реактивности чем React.js. Но докладчик хотел донести концепцию en.wikipedia.org/wiki/Reactive_programming - одну из парадигм на ровне с OOP, Functional и т.д. и это образ мышления и подхода к разработке, а не фреймворк или библиотека :)
@@oleksiikryvtsov6938 Мне нравится Ангуляр, но то, что он ближе к реактивности чем React.js - полная чушь. Но, во-первых, в первой версии Ангуляра использовался two way data flow. Только во второй версии стали использовать подобие иммутабельных структур данных для управления состоянием. RXjs прикрутили ещё позже. Так что насчет того что ангуляр реактивный "изначально" вы не правы.
Второе. OOP и Functional это фундаментально конфликтующие парадигмы. FRP это базворд, который не стоит на ровне с ними, есть несколько способов достижения так называемой реактивности. Rx решает эту задачу при помощи наследования (mixins), а это консрукция из мира ООП. Redux в свою очередь использует композицию. Какой подход лучше? Даже не хочу начинать эту тему.
Читайте что я написал. Ключевая фраза, "принцип работы". Как докладчик подметил, FRP - это базворд.
@UCOAob9nWdSFsMqDYBsw-jnA C "изначально" согласен, погорячился, но сути это не меняет: "в React.js от реактивности только название", но сделать его реактивным можно. OOP - имеется введу как парадигма (императивная) и Functional Reactive Programming - парадигма (декларативная) - обе они парадигмы. Что такое "mixins" и какие задачи решает - medium.com/javascript-scene/functional-mixins-composing-software-ffb66d5e731c . Redux - это реализация архитектуры Flux. Причем здесь сравнение с OOP? Redux если и сравнивать, то с MVC хотя бы... так как обе являются архитектурными решениями. Вопрос "Какой подход лучше?" зависит от поставленной задачи. Любые технологии это инструменты, а не серебренные пули и для разных задач свои подходы
@@oleksiikryvtsov6938Информация из википедии, это конечно хорошо, но её все таки нужно понимать. Пожалуйста, не надо копипастить понятия, о которых вы не имеете глубокого представления. Если FRP это парадигма, то вы можете назвать хотя бы один язык функционально реактивный язык программирования? Если она декларативная, то почему FRP реализуется на чисто функциональных языках, таких как lisp или haskel? Про статью о functional mixins я вообще промолчу. А вы в курсе что RXJava был еще до того как к джаве прикрутили лямбды? Получается в понятии RX functional reactive programming слово functional вообще никакой нагрузки не несет? Задумайтесь перед тем как делать заявления о том, что "реактивно", а что нет. А если делаете, то аргументируйте их. Иначе вы выдаете в себя не с лучшей стороны. Вы не Пол Худак, не Рич Хики и даже не Брэндан Айх, поэтому надо уметь аргументировать.
@@dmitrib3937 во-первых, давайте разделять Functional Reactive Programming и Reactive Programming - это разные понятия. во-вторых, нужно понимать какие цели призвана решить эта парадигма, а для этого нужно понимать и принимать, что здесь написано: www.reactivemanifesto.org/. в-третьих, в декларативном стиле можно писать и на OOP языках, а не только FP. Вот, принимая эти уточнения, отвечаю:
- "Если FRP это парадигма, то вы можете назвать хотя бы один язык функционально реактивный язык программирования" - чистых нет, но есть библиотеки которые реализуют подход реактивности reactivex.io/languages.html Многие из этих языков гибридные (OOP, FP и т.д). а почему нету чистых ? хмм... наверное потому, что задачи в мире разные ;))
- "Если она декларативная, то почему FRP реализуется на чисто функциональных языках, таких как lisp или haskel" - это вообще гениально, но ответ уже дан Вами "декларативность", и в случае с FRP используя всю мощь FP (функции, арность, каррирование, монады, фукнторы, комбинаторы)
- "Про статью о functional mixins я вообще промолчу" - мне тоже больше нравится "currying" и "partial" ;)
- "А вы в курсе что RXJava был еще до того как к джаве прикрутили лямбды?" - конечно, с 1.6, хорошее доказательство по пунктам (во-первых, в-третьих), а вы знаете что такое лямба в Java ? Functional Interface и про inline классы слышали тогда =) а мне довелось реализовывать miscroservice-ы на spring. и не понаслышке знаю про RxJava, DDD, Event Sourcing, CQRS и другие страшные слова. И мне приятно, что spring 5 официально получает реактивность в комплект на уровне фреймворка =))
- "Получается в понятии RX functional reactive programming слово functional вообще никакой нагрузки не несет? " - смотри пункт (во-первых, в-третьих)
P.S.: я так понял для вас "FRP это базворд", тогда я не смогу Вам донести что-то. Время, окружение, задачи - смогут, если, не выгорите раньше, чего Вам конечно не желаю ;)
Лучшее что я видел в своей жизни.
Да, хорошие были времена, когда каждый (почти) доклад был как стендап комеди, даже лучше
Саша, охуенный доклад. Спасибо! :D
Здорово! Обажаю когда объясняют в таком стиле)
Смотрю уже пятый раз и до сих пор в восторге
Очень понравилось! Во-первых, я давно хотел понять, что такое FRP, а во-вторых, докладчик офигенный! )))
Аплодирую стоя. Доклад просто от души.
Соловьев здорового человека
Необыкновенный чувак! Я с трудом представляю конкретику языков про которые говорил Александр, но что есть FRP и чем прекрасен CloujreSript я реально вдуплил!
Я не имею в виду что поддерживать путина плохо, но мне кажется это показатель. :)
А час можеш підсказати?
Nim Ano Цитати? Приблизно 49:00
2019 Удивительно как он был прав...
да, живой доклад без мазни всегда приятнее слушать чем сухую, еле живую лекцию.
Роскошно. Спасибо!!!
спасибо за комментарий сейчас посмотрим в чем дело
Соловьев мега-чувак! Очень весело про саму суть рассказывает!
7 лет для фронтенда это бесконечно много.
В то время был популярным CoffeeScript, про который сейчас помнят только деды с потухшими глазами, пережившие две великих фронтендерских революции
я ниразу не программер, и мало чо понял там, но сам незаметил как посмотрел весь доклад на одном дыхании. молодец чувак о.О
был на этом мероприятии, его доклад был самый смешной и позитивный :)
смотрите видео в режиме HTML5 - там оно работает без ошибок
Классный доклад)
Я этого парня теперь просто обожаю =)
Убойный доклад!
Козный доклад. До этого я не аналога слову клик. Оказывается это Жмакаем. =))
Из этого парня вышел бы отличный преподаватель! Серъёзно, классно импровизирует и явно хорошо понимает о чём говорит.
У меня просто нет слов.
Это просто красота! 26:45
Докладчик молодец.
"что-то я парю вообще такое" XD
В 2020 реактивное программирование захватило фронтенд. React, Vue, Angular - все предоставляют инструменты реактивных вычислений.
Кроме того, есть крутые инструменты визуализации данных и алгоритмов типа observablehq, которые целиком построены на реактивщине
Лучший доклад программиста который я видел. Не люблю когда менеджер рассказывает о коде к которому он отношения не имеет.
Статью на lurkmore уже написали? :)
"Улучшает программирование или хотя-бы жизнь" - афигенское разделение.
хабр поднял статистику. причем серьезно. очень.
Преподов бы таких)))
Люто понравился доклад и доводы в пользу кложура: его пишут не хипстеры, а бородатые чуваки, которые не ломают систему в минорных апдейтах:)
Поначалу показалось, что вроде, как понтовик, но потом затянуло и понравилось, отличное изложение!
Этот мужик сделал мой вечер, да что там, всю неделю похоже)
Это ж data flow programming (см. PureData, LabView, и проч., или тот же VHDL)
Супер =)
Усцака! В жизни так не ржал на скучных IT конференций :)))
Цікаво, то не Агафонкін присутній при винайденні мему "Чик-чик і в продашн" ? 34:21
GEDDAN на 9:54 %)
фух, ржака, каждій раз смотрю как первій :D
Офигенный чувак!
Очень смешно, но чувак затрагивает очень хорошие темы: FP, FRP, Clojure. У всех крупных компаний есть внутренний фреймворк с похожими идеями. Самый знаменитый (но закрытый) - Luna, framework компании Asana. Они это даже выставляют своим плюсом: тебе понравится у нас работать, потому что ты прикоснешься к великому фреймворку Луна!
18:32 - ClojureScipt
stop complaining about his "eeeeh" guys, he is amazing!
"почему назвали Lift" - судя по сигнатурам потому, что это - функторная функция map, она же lift. Интереснее, почему pure/return назвали constant :D
Ну, зачот, без базара.
Новая песня о старом для новых нужд- FRP приложения с графическим интерфейсом о которых вышел доклад и от товарища vintaje на habrahabr.ru/post/235121/ для любителей почитать. Эти приложения реализованы в системе управления промышленными процессами американской компанией honeywell еще так 20 лет тому, в верхней части монитора обновляющийся тренд (каждые 2 секунды) внизу мгновенные данные от датчиков регуляторов (расхода сред, температуры , давления). Тогда система поставлялась вместе с хардваром ( теплой ламповой ЭВМ ), сейчас она совместима с современными операционками . Помню что мышки тогда не было вместо нее кажись кошка была...
так промышленное ПО - это ж поди не веб-дев :) всякие realtime OS и отполированный код на С
6:19 что за глитчи? У него как-будто коннекшн с матрицей рвется.
Хрупкое состояние
Странно, почему не было вопросов насчет производительности?
Мне вот интересно каким образом реализовано это реактивное программирование в клоужере или в других js библиотеках, через таймеры или через какой-то другой механизм?
Идея FRP похожа на аппаратное программирование.
2013 год. Когда чуваки с бородой еще не были хипстерами. 18:56
...если кто не понял питон-хороший)))
Надо ему его метод подачи информации передать преподавателям университетов, реально не уснешь.
Please add English captions
сок!
круче камеди !
Ржачный чувак! xD
Кто те люди, кому не понравилось? о_О
+Максим Соловьёв Программисты на Erlang, судя по всему. :)
ага, еще все это должно настраиваться какими то метаданными (аннотациями например), а программист должен брать денег за количество кода, потому что так его в 5 раз больше.
profit!
читать сухую документацию и так весело о ней рассказывать это талант.
Чем-то напомнил Черномырдина по разговору.
Как в Эрланге узнать pid процесса? os:getpid(). С вас 5000 баксов...
а что все набросились? говорит вполне резонные вещи chrm, все именно так и рекомендуется делать
На цитаты просто
в стаканчике была водка)
это жесть какая-то)
Одесская школа программистов?
Постараюсь запомнить фразу:"Синтаксический сахар"
То, что автор называет ошибками, на самом деле является плохой системной организацией приложения, для этого существуют специальный архитектурный уровень -- паттрены, в частности -- описанные проблемы взаимодействия между клиентом и сервером и своевременного, адресного, актуального обновления GUI-frontend существуют Models+Views+ViewPresenters+Commands+Services+Observers... и для большей гибкости лучше все связать в единую архитектуру через Dependency injections (IoC)
Он же упорот :D
Чувак просто под мышкой.
видео недоступно((
Интересно из какого он города?
ua-cam.com/video/R4sTvHXkToQ/v-deo.html
КПИ, это Киевский Политех, так что очевидно - Киев
Чо-то я не понял. Просто функциональщина в js и всё?
и фабриками, фабриками сверху полирнуть.
Я бы тоже хотел думать мозгом... хаха! 12:00
ну он видимо не пытался понять, то что посмотрел (если конечно посмотрел) и ткнул своими любимыми ООП базз вордами. как то так
а именно
8:46 WTF????
Судя по тому, что аудиопоток не глючил - это не монтаж. Чувак телепортнулся ненароком
Да, лол, я только хотел написать что типо все то что ты рассказываеш это просто принцыпы Лиспа. Как он першел на кложурскрипт.
В общем-то это прописные истины которые разработчик познает после месяца работы с приложениями. Мне интересно почему ролик вылез в топ на хабре - тут даже юмор кислый. Интересно только то, что человек акцентируется на всех этих мелочах рутины.
Саша, это все англиский просто, лифт это не только поднимать а также типо чтоли стырить
Если бы он еще не э-э-экал, цены бы не было, терпеть не могу когда экают, каждый раз вспоминаю о наших голубых политиках имбицилах.
О вообще полностью согласен побольше подобных ораторов, особенно в универы. эдакий бодрячек, а не умирающий препод которому бы пару отстоять))
+Sentinel Oltreyn т.е. то что он несет полную ахинею, єто норм?
+Sentinel Oltreyn упс, сори, не глянул на дату сообщения ^^
Accidental complexity - самая страшная штука в профессии.
Разработчик, остервенело борись с этой сложностью, выжигай калёным железом
Ахахах: "Я программист, а не аналитик ,чук-чук и в продакшн" :)
Лиспом тебе в голову xD
Жжот как дуговая сварка )
Конечно много умных слов, но если разобратся в вашем абзаце, то вы написали полную нелепицу.
Дам работу "завам" за деньги. считать одну деньгу трйской унции не боле. Жаден Я. Дам денег на развитие проектов учитывающих ре инвест в меня, на жизнь в общагах останется. Новый Алигарх Иван Елизаров. Инвестор.
триллион завров тебе обеспечен ученый за бесприкословную работуъ
Мой шефф.......... Мон синьор, Вы не правы в послании шефа
очень странное упоминание о Путине
А по моему попал)
Я хоть и предприниматель, но для меня все озвученное в видео обычные вещи. Какого ляда оно весит на главной хабра? Я реально думал что там люди более компетентные.