Александр Соловьев / 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

КОМЕНТАРІ • 121

  • @SharikSS
    @SharikSS 10 років тому +54

    Офигенный кодерский стэндап

  • @dmitrib3937
    @dmitrib3937 5 років тому +50

    Легендарный доклад. Александр пытается объяснить принцип работы ныне популярного React.js ещё до того это стало мэйнстримом. Чувак был впереди своего времени.

    • @oleksiikryvtsov6938
      @oleksiikryvtsov6938 5 років тому +3

      React.js никакого отношения к reactive programming не имеет. То, о чем говорит докладчик, относится больше к либе rxjs-dev.firebaseapp.com/ которую изначально использует Angular. Так что Angular ближе к реактивности чем React.js. Но докладчик хотел донести концепцию en.wikipedia.org/wiki/Reactive_programming - одну из парадигм на ровне с OOP, Functional и т.д. и это образ мышления и подхода к разработке, а не фреймворк или библиотека :)

    • @dmitrib3937
      @dmitrib3937 5 років тому

      @@oleksiikryvtsov6938 Мне нравится Ангуляр, но то, что он ближе к реактивности чем React.js - полная чушь. Но, во-первых, в первой версии Ангуляра использовался two way data flow. Только во второй версии стали использовать подобие иммутабельных структур данных для управления состоянием. RXjs прикрутили ещё позже. Так что насчет того что ангуляр реактивный "изначально" вы не правы.
      Второе. OOP и Functional это фундаментально конфликтующие парадигмы. FRP это базворд, который не стоит на ровне с ними, есть несколько способов достижения так называемой реактивности. Rx решает эту задачу при помощи наследования (mixins), а это консрукция из мира ООП. Redux в свою очередь использует композицию. Какой подход лучше? Даже не хочу начинать эту тему.
      Читайте что я написал. Ключевая фраза, "принцип работы". Как докладчик подметил, FRP - это базворд.

    • @oleksiikryvtsov6938
      @oleksiikryvtsov6938 5 років тому +1

      @UCOAob9nWdSFsMqDYBsw-jnA C "изначально" согласен, погорячился, но сути это не меняет: "в React.js от реактивности только название", но сделать его реактивным можно. OOP - имеется введу как парадигма (императивная) и Functional Reactive Programming - парадигма (декларативная) - обе они парадигмы. Что такое "mixins" и какие задачи решает - medium.com/javascript-scene/functional-mixins-composing-software-ffb66d5e731c . Redux - это реализация архитектуры Flux. Причем здесь сравнение с OOP? Redux если и сравнивать, то с MVC хотя бы... так как обе являются архитектурными решениями. Вопрос "Какой подход лучше?" зависит от поставленной задачи. Любые технологии это инструменты, а не серебренные пули и для разных задач свои подходы

    • @dmitrib3937
      @dmitrib3937 5 років тому

      ​@@oleksiikryvtsov6938Информация из википедии, это конечно хорошо, но её все таки нужно понимать. Пожалуйста, не надо копипастить понятия, о которых вы не имеете глубокого представления. Если FRP это парадигма, то вы можете назвать хотя бы один язык функционально реактивный язык программирования? Если она декларативная, то почему FRP реализуется на чисто функциональных языках, таких как lisp или haskel? Про статью о functional mixins я вообще промолчу. А вы в курсе что RXJava был еще до того как к джаве прикрутили лямбды? Получается в понятии RX functional reactive programming слово functional вообще никакой нагрузки не несет? Задумайтесь перед тем как делать заявления о том, что "реактивно", а что нет. А если делаете, то аргументируйте их. Иначе вы выдаете в себя не с лучшей стороны. Вы не Пол Худак, не Рич Хики и даже не Брэндан Айх, поэтому надо уметь аргументировать.

    • @oleksiikryvtsov6938
      @oleksiikryvtsov6938 5 років тому

      ​@@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 это базворд", тогда я не смогу Вам донести что-то. Время, окружение, задачи - смогут, если, не выгорите раньше, чего Вам конечно не желаю ;)

  • @Oh-My-YouTube
    @Oh-My-YouTube 10 років тому +43

    Лучшее что я видел в своей жизни.

  • @mrMultipassport
    @mrMultipassport Рік тому +2

    Да, хорошие были времена, когда каждый (почти) доклад был как стендап комеди, даже лучше

  • @aleksander-panteleev
    @aleksander-panteleev 8 років тому +15

    Саша, охуенный доклад. Спасибо! :D

  • @x28test1
    @x28test1 11 років тому +2

    Здорово! Обажаю когда объясняют в таком стиле)

  • @TheSmellOfVinyl
    @TheSmellOfVinyl 11 років тому +1

    Смотрю уже пятый раз и до сих пор в восторге

  • @dimsuz
    @dimsuz 11 років тому +1

    Очень понравилось! Во-первых, я давно хотел понять, что такое FRP, а во-вторых, докладчик офигенный! )))

  • @Benui4eg
    @Benui4eg 11 років тому

    Аплодирую стоя. Доклад просто от души.

  • @yasenclassen
    @yasenclassen Рік тому +2

    Соловьев здорового человека

  • @aleksk84
    @aleksk84 11 років тому

    Необыкновенный чувак! Я с трудом представляю конкретику языков про которые говорил Александр, но что есть FRP и чем прекрасен CloujreSript я реально вдуплил!

  • @TheBunyk
    @TheBunyk 10 років тому +49

    Я не имею в виду что поддерживать путина плохо, но мне кажется это показатель. :)

    • @d12e3fb512d08cc64857
      @d12e3fb512d08cc64857 9 років тому +1

      А час можеш підсказати?

    • @TheBunyk
      @TheBunyk 9 років тому

      Nim Ano Цитати? Приблизно 49:00

    • @polusbrtlovsky6008
      @polusbrtlovsky6008 4 роки тому +1

      2019 Удивительно как он был прав...

  • @xOceanSpirit
    @xOceanSpirit 10 років тому

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

  • @vpatryshev
    @vpatryshev 11 років тому

    Роскошно. Спасибо!!!

  • @emakedon
    @emakedon 11 років тому

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

  • @AlexKorovyansky
    @AlexKorovyansky 10 років тому +1

    Соловьев мега-чувак! Очень весело про саму суть рассказывает!

  • @isfland
    @isfland 3 роки тому

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

  • @kawasaki7775
    @kawasaki7775 11 років тому

    я ниразу не программер, и мало чо понял там, но сам незаметил как посмотрел весь доклад на одном дыхании. молодец чувак о.О

  • @eglova
    @eglova 11 років тому +1

    был на этом мероприятии, его доклад был самый смешной и позитивный :)

  • @fwdays
    @fwdays  11 років тому

    смотрите видео в режиме HTML5 - там оно работает без ошибок

  • @thisnameisnotavailable
    @thisnameisnotavailable 10 років тому

    Классный доклад)

  • @artemzubkov
    @artemzubkov 11 років тому

    Я этого парня теперь просто обожаю =)

  • @MrAntonlit
    @MrAntonlit 11 років тому

    Убойный доклад!

  • @AlexanderUstinovAD
    @AlexanderUstinovAD 11 років тому

    Козный доклад. До этого я не аналога слову клик. Оказывается это Жмакаем. =))

  • @aragnophy
    @aragnophy 11 років тому +2

    Из этого парня вышел бы отличный преподаватель! Серъёзно, классно импровизирует и явно хорошо понимает о чём говорит.

  • @sonyalovedin9288
    @sonyalovedin9288 11 років тому

    У меня просто нет слов.

  • @MrMarvinoid
    @MrMarvinoid 11 років тому

    Это просто красота! 26:45

  • @John1744444
    @John1744444 11 років тому +1

    Докладчик молодец.

  • @oinn6216
    @oinn6216 9 років тому +10

    "что-то я парю вообще такое" XD

  • @isfland
    @isfland 3 роки тому

    В 2020 реактивное программирование захватило фронтенд. React, Vue, Angular - все предоставляют инструменты реактивных вычислений.
    Кроме того, есть крутые инструменты визуализации данных и алгоритмов типа observablehq, которые целиком построены на реактивщине

  • @mi4445
    @mi4445 11 років тому

    Лучший доклад программиста который я видел. Не люблю когда менеджер рассказывает о коде к которому он отношения не имеет.

  • @ashoumikhin
    @ashoumikhin 11 років тому +6

    Статью на lurkmore уже написали? :)

  • @sawyer6057
    @sawyer6057 5 років тому

    "Улучшает программирование или хотя-бы жизнь" - афигенское разделение.

  • @cristaloleg
    @cristaloleg 11 років тому

    хабр поднял статистику. причем серьезно. очень.

  • @hacker2612
    @hacker2612 10 років тому +5

    Преподов бы таких)))

  • @YuriyTsemashko
    @YuriyTsemashko 11 років тому

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

  • @PaulFXable
    @PaulFXable 11 років тому

    Поначалу показалось, что вроде, как понтовик, но потом затянуло и понравилось, отличное изложение!

  • @Santolich
    @Santolich 11 років тому

    Этот мужик сделал мой вечер, да что там, всю неделю похоже)

  • @Archie3D
    @Archie3D 11 років тому

    Это ж data flow programming (см. PureData, LabView, и проч., или тот же VHDL)

  • @gobwas
    @gobwas 11 років тому

    Супер =)

  • @artemzaika3298
    @artemzaika3298 10 років тому +6

    Усцака! В жизни так не ржал на скучных IT конференций :)))

  • @TheBunyk
    @TheBunyk 6 років тому

    Цікаво, то не Агафонкін присутній при винайденні мему "Чик-чик і в продашн" ? 34:21

  • @yuuri6082
    @yuuri6082 9 років тому +4

    GEDDAN на 9:54 %)

  • @dmtmov
    @dmtmov 3 роки тому +2

    фух, ржака, каждій раз смотрю как первій :D

  • @eferop1357
    @eferop1357 11 років тому

    Офигенный чувак!

  • @SlavaKim
    @SlavaKim 11 років тому

    Очень смешно, но чувак затрагивает очень хорошие темы: FP, FRP, Clojure. У всех крупных компаний есть внутренний фреймворк с похожими идеями. Самый знаменитый (но закрытый) - Luna, framework компании Asana. Они это даже выставляют своим плюсом: тебе понравится у нас работать, потому что ты прикоснешься к великому фреймворку Луна!

  • @AliaksandrHarbunou
    @AliaksandrHarbunou 8 років тому

    18:32 - ClojureScipt

  • @xhall0910
    @xhall0910 11 років тому

    stop complaining about his "eeeeh" guys, he is amazing!

  • @user-dn7qr7vs1h
    @user-dn7qr7vs1h 4 роки тому

    "почему назвали Lift" - судя по сигнатурам потому, что это - функторная функция map, она же lift. Интереснее, почему pure/return назвали constant :D

  • @lessmember
    @lessmember 11 років тому

    Ну, зачот, без базара.

  • @user-qb9fn6gp2m
    @user-qb9fn6gp2m 10 років тому +1

    Новая песня о старом для новых нужд- FRP приложения с графическим интерфейсом о которых вышел доклад и от товарища vintaje на habrahabr.ru/post/235121/ для любителей почитать. Эти приложения реализованы в системе управления промышленными процессами американской компанией honeywell еще так 20 лет тому, в верхней части монитора обновляющийся тренд (каждые 2 секунды) внизу мгновенные данные от датчиков регуляторов (расхода сред, температуры , давления). Тогда система поставлялась вместе с хардваром ( теплой ламповой ЭВМ ), сейчас она совместима с современными операционками . Помню что мышки тогда не было вместо нее кажись кошка была...

    • @DmitryFomin
      @DmitryFomin 7 років тому

      так промышленное ПО - это ж поди не веб-дев :) всякие realtime OS и отполированный код на С

  • @QuKiPinky_channel
    @QuKiPinky_channel 7 років тому +5

    6:19 что за глитчи? У него как-будто коннекшн с матрицей рвется.

    • @isfland
      @isfland 3 роки тому

      Хрупкое состояние

  • @unlike777
    @unlike777 11 років тому

    Странно, почему не было вопросов насчет производительности?
    Мне вот интересно каким образом реализовано это реактивное программирование в клоужере или в других js библиотеках, через таймеры или через какой-то другой механизм?

  • @Kanaris007
    @Kanaris007 11 років тому

    Идея FRP похожа на аппаратное программирование.

  • @DrunkenerWitcher
    @DrunkenerWitcher 7 років тому +2

    2013 год. Когда чуваки с бородой еще не были хипстерами. 18:56

  • @nataliyagoryaeva5160
    @nataliyagoryaeva5160 11 років тому +2

    ...если кто не понял питон-хороший)))

  • @IlyasFasikhov
    @IlyasFasikhov 11 років тому

    Надо ему его метод подачи информации передать преподавателям университетов, реально не уснешь.

  • @razeev4685
    @razeev4685 3 роки тому

    Please add English captions

  • @yuragutyk8028
    @yuragutyk8028 11 років тому

    сок!

  • @DeathMan2k
    @DeathMan2k 11 років тому

    круче камеди !

  • @SergeyCoder
    @SergeyCoder 10 років тому +1

    Ржачный чувак! xD

  • @user-qq8mx1db2b
    @user-qq8mx1db2b 10 років тому +5

    Кто те люди, кому не понравилось? о_О

    • @aliakseiliutsich3115
      @aliakseiliutsich3115 9 років тому +5

      +Максим Соловьёв Программисты на Erlang, судя по всему. :)

  • @nikdudnik
    @nikdudnik 11 років тому

    ага, еще все это должно настраиваться какими то метаданными (аннотациями например), а программист должен брать денег за количество кода, потому что так его в 5 раз больше.
    profit!

  • @alexeygudkov637
    @alexeygudkov637 11 років тому

    читать сухую документацию и так весело о ней рассказывать это талант.

  • @rin2004able
    @rin2004able Рік тому

    Чем-то напомнил Черномырдина по разговору.

  • @seriypr
    @seriypr 11 років тому

    Как в Эрланге узнать pid процесса? os:getpid(). С вас 5000 баксов...

  • @bublikom
    @bublikom 11 років тому

    а что все набросились? говорит вполне резонные вещи chrm, все именно так и рекомендуется делать

  • @mihan0id
    @mihan0id 11 років тому

    На цитаты просто

  • @TermoBYTE
    @TermoBYTE 10 років тому +1

    в стаканчике была водка)

  • @foo44444
    @foo44444 7 місяців тому +1

    это жесть какая-то)

  • @DileSoft
    @DileSoft 11 років тому +1

    Одесская школа программистов?

  • @NikitaGorobets
    @NikitaGorobets 11 років тому

    Постараюсь запомнить фразу:"Синтаксический сахар"

  • @chrm
    @chrm 11 років тому

    То, что автор называет ошибками, на самом деле является плохой системной организацией приложения, для этого существуют специальный архитектурный уровень -- паттрены, в частности -- описанные проблемы взаимодействия между клиентом и сервером и своевременного, адресного, актуального обновления GUI-frontend существуют Models+Views+ViewPresenters+Commands+Services+Observers... и для большей гибкости лучше все связать в единую архитектуру через Dependency injections (IoC)

  • @PainTrain556
    @PainTrain556 11 років тому

    Он же упорот :D

  • @Levgenii
    @Levgenii 11 років тому

    Чувак просто под мышкой.

  • @availization
    @availization 11 років тому

    видео недоступно((

  • @Greamzih
    @Greamzih 8 років тому

    Интересно из какого он города?

    • @maksymdemidov8921
      @maksymdemidov8921 8 років тому +1

      ua-cam.com/video/R4sTvHXkToQ/v-deo.html
      КПИ, это Киевский Политех, так что очевидно - Киев

  • @dbSuntechnic
    @dbSuntechnic 11 років тому

    Чо-то я не понял. Просто функциональщина в js и всё?

  • @bokiyis
    @bokiyis 11 років тому

    и фабриками, фабриками сверху полирнуть.

  • @fgdgggdhhd
    @fgdgggdhhd 11 років тому

    Я бы тоже хотел думать мозгом... хаха! 12:00

  • @nikdudnik
    @nikdudnik 11 років тому

    ну он видимо не пытался понять, то что посмотрел (если конечно посмотрел) и ткнул своими любимыми ООП базз вордами. как то так

  • @ivanelizarov9743
    @ivanelizarov9743 11 років тому

    а именно

  • @diamondblackford5048
    @diamondblackford5048 8 років тому

    8:46 WTF????

    • @Sergtor
      @Sergtor 7 років тому

      Судя по тому, что аудиопоток не глючил - это не монтаж. Чувак телепортнулся ненароком

  • @blu3h4t
    @blu3h4t 2 роки тому

    Да, лол, я только хотел написать что типо все то что ты рассказываеш это просто принцыпы Лиспа. Как он першел на кложурскрипт.

  • @user-wr4mx5so7x
    @user-wr4mx5so7x 11 років тому

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

  • @blu3h4t
    @blu3h4t 2 роки тому

    Саша, это все англиский просто, лифт это не только поднимать а также типо чтоли стырить

  • @sentineloltreyn5412
    @sentineloltreyn5412 10 років тому +5

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

    • @Oleksandp
      @Oleksandp 8 років тому

      +Sentinel Oltreyn т.е. то что он несет полную ахинею, єто норм?

    • @Oleksandp
      @Oleksandp 8 років тому

      +Sentinel Oltreyn упс, сори, не глянул на дату сообщения ^^

  • @isfland
    @isfland 3 роки тому

    Accidental complexity - самая страшная штука в профессии.
    Разработчик, остервенело борись с этой сложностью, выжигай калёным железом

  • @MrOverlord243
    @MrOverlord243 11 років тому

    Ахахах: "Я программист, а не аналитик ,чук-чук и в продакшн" :)

  • @eolit1o
    @eolit1o 11 років тому

    Лиспом тебе в голову xD

  • @Ogr285
    @Ogr285 7 років тому

    Жжот как дуговая сварка )

  • @olegtyshchenko6379
    @olegtyshchenko6379 11 років тому

    Конечно много умных слов, но если разобратся в вашем абзаце, то вы написали полную нелепицу.

  • @ivanelizarov9743
    @ivanelizarov9743 11 років тому

    Дам работу "завам" за деньги. считать одну деньгу трйской унции не боле. Жаден Я. Дам денег на развитие проектов учитывающих ре инвест в меня, на жизнь в общагах останется. Новый Алигарх Иван Елизаров. Инвестор.

  • @ivanelizarov9743
    @ivanelizarov9743 11 років тому

    триллион завров тебе обеспечен ученый за бесприкословную работуъ

  • @ivanelizarov9743
    @ivanelizarov9743 11 років тому

    Мой шефф.......... Мон синьор, Вы не правы в послании шефа

  • @user-je2bk3om6l
    @user-je2bk3om6l 10 років тому

    очень странное упоминание о Путине

  • @user-wr4mx5so7x
    @user-wr4mx5so7x 11 років тому

    Я хоть и предприниматель, но для меня все озвученное в видео обычные вещи. Какого ляда оно весит на главной хабра? Я реально думал что там люди более компетентные.