Вафлеративное программирование

Поділитися
Вставка
  • Опубліковано 10 лис 2024

КОМЕНТАРІ • 1,4 тис.

  • @bobshigu9409
    @bobshigu9409 2 роки тому +1150

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще. 🦧🦧🦧

    • @mrudk1
      @mrudk1 2 роки тому +13

      Давайте, пока!

    • @veeronten4886
      @veeronten4886 2 роки тому +22

      дошёл до комма ровно в момент, когда он это говорил
      прошёлся как по субтитрам, лол

    • @ФилиппФилиппович-д6э
      @ФилиппФилиппович-д6э 2 роки тому +4

      Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

      @@ФилиппФилиппович-д6э Хм. А экстрим сидит у вудуша?

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

      @@arbitermoralis2548 вот чего я точно не ожидал, так это Вудуш коммьюнити тут... (сам сижу)

  • @DecembristITTV
    @DecembristITTV 2 роки тому +517

    СОРВАЛИ ПОКРОВЫ ТАК СОРВАЛИ)
    Ждем видео, в котором Экстримцод расскажет, что языки высокого уровня это абстракция над языками низкого уровня
    Под названием "Языки вафлесокого уровня"

    • @ergo_____3491
      @ergo_____3491 2 роки тому +33

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

    • @vladimirviktorovichivanov7577
      @vladimirviktorovichivanov7577 2 роки тому +26

      @@ergo_____3491
      Преимущество ФП кода в том, что он во многих случаях получается гораздо компактнее, легче читается, легче отлаживается, однажды отлаженный гораздо чаще работает как положено в любом окружении. Стало быть если применять его по назначению, действительно здорово снижается время на разработку и поддержку.
      Недостаток в том, что очень сложно сделать так, чтобы он работал каким-то конкретным способом. И если функциональный код работает плохо (жрет память, тормозит), то отладить это чрезвычайно трудно, и проще всего такой участок надо просто переписать в императивном стиле.

    • @bogdanchirukin1050
      @bogdanchirukin1050 2 роки тому +30

      а языки низкого уровня - обертка для работы с электрончиками в полупроводниках)))

    • @andreymulik3399
      @andreymulik3399 2 роки тому +13

      ​@@ergo_____3491 Я тоже поржал.
      Пишу на Haskell уже 5 лет, сначала тоже пытался объяснять и агитировать, но через полгода надоело. Люди всё равно не понимают о чём речь, пока сами шишек не набьют. Думаю, именно из-за таких новичков, как я когда-то, у адептов ФП настолько сомнительная репутация.
      Если говорить конкретно про Haskell, то каких-то "сверхпреимуществ" у него нет - в основном, пока только обещают и экспериментируют. С обычными преимуществами всё просто: отличная система типов, лаконичный синтаксис, хороший компилятор - остальное либо субъективно, либо прямо вытекает из вышеуказанного.
      Насчёт "волшебного кода" - да, есть такая проблема. В начале изучения ФП новичок всегда сталкивается с большим объёмом новой информации и специфической терминологии, которые приходится "переваривать" в несколько этапов из-за большого количества взаимосвязей. Мы сами уже настолько не стесняемся это признавать, что документация некоторых библиотек ссылается на научные статьи, а в описании одного из стандартных типов прямым текстом говорится: "deeply magical".

    • @ergo_____3491
      @ergo_____3491 2 роки тому +20

      Вышеотписавшимся ораторам: вы подменяете понятия "парадигма программирования" и "язык программирования" - это логическая ошибка, совершение которой говорит о некомпетентности в обсуждаемом вопросе (если вы парадигму от языка, реализующего парадигму, не отличается, о чем тут говорить?).
      У других парадигм есть свои отличительные признаки:
      Императивная - смотрит на программный код, как на последовательность инструкций.
      Процедурная - смотрит на код, как на именованный набор последовательных инструкций, логически объединенных по признаку выполнения отдельных задач.
      ООП - смотрит на код, как на объекты реального мира, в которых объединяются их свойства (поля/характеризующие их данные) и их поведение, представленное процедурами.
      А про ФП вы что сказали? Лаконичность и понятность. Во-первых, это все относится к синтаксису конкретного ЯП, во-вторых, это субъективные категории, в-третьих, эти черты в той или иной мере присущи любому ЯП любой парадигмы, в-четвертых, не привели никакой конкретики.
      На все это можно ответить "нет, вы неправы" и на этом ваши тезисы рассыпались, потому что возразить по существу нечем.

  • @islomkhujaakhrorov6668
    @islomkhujaakhrorov6668 2 роки тому +170

    Императивно - это когда пишешь коммент:
    "Вообще четко. Давай еще больше. "
    Декларативно - это, когда просто лайкаешь видео🙂

    • @princessmary5556
      @princessmary5556 Рік тому +3

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

  • @samuelvimes4807
    @samuelvimes4807 2 роки тому +68

    Уважаемый автор, вы великолепны!!! Чувствую необходимость вам сообщить о том что ваши работы на данной площадке выше всяких похвал, будьте любезны продолжать в том же ключе. С превеликим уважением, отпищек.

    • @apdgslfhsodbna
      @apdgslfhsodbna 2 роки тому +5

      Ты что функциональщик?

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

      @@apdgslfhsodbna , я мимокрокодил

    • @apdgslfhsodbna
      @apdgslfhsodbna 2 роки тому +4

      @@samuelvimes4807 , что ты куришь, я тоже хочу

    • @ТарасА-к5р
      @ТарасА-к5р 2 роки тому +3

      @@apdgslfhsodbna это уже рофл над рофлом...врафляние какое то...

    • @ИванМихайловичДанилов
      @ИванМихайловичДанилов Рік тому +1

      @@ТарасА-к5р Можно ещё зарофлить рофл над рофлом, в формате рофла, что в свою очередь, в виду сложившейся тавтологии, будет являться рофлом!
      P.s. В зависимости от тяжести и количества принимаемых веществ, парадигму можно продолжить...

  • @starlord0208
    @starlord0208 2 роки тому +13

    Декларативность это когда ты описываешь только то, что ожидаешь, а не инструкции как этого результата достичь.
    Банально вот две реализации чисел Фибоначчи на С:
    Декларативный вариант
    int fibonacci(int num) {
    if (num

    • @deniskuznetsov7097
      @deniskuznetsov7097 2 роки тому +2

      Точно! Первую лабу по функциональному программированию даю как раз такую - на Си оба варианта сделать. Ты не у меня учился?

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

      @@deniskuznetsov7097 Нет)

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

      Спасибо, классный пример

    • @JohnDoe43584
      @JohnDoe43584 2 роки тому +2

      я думал это называется рекурсией, а не декларативностью, а какой пример есть без цикла?

    • @ProHolmes
      @ProHolmes 20 днів тому

      так и получается, что вся функциональность в том, что реализацию "как делать" пишешь не ты, а её уже написали до тебя. а если не написали, ну что ж..

  • @valeratych3468
    @valeratych3468 2 роки тому +258

    Вообще четко. Давай ещё больше. Не хватка таких видео. Твои видео как витамин C, только C++, что значит на два очка крутости больше!!!!

    • @darkvovka7792
      @darkvovka7792 2 роки тому +53

      на одно...

    • @nakidai
      @nakidai 2 роки тому +12

      @@darkvovka7792 Уже порвали?

    • @yehor612
      @yehor612 2 роки тому +6

      @@nakidai инкремент же. Два очка рвутся и соединяются в одно больше

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

      @@yehor612 Аа, а я не думал что можно делать экскременты с ними. Ну ок

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

      C++ придумал дьявол

  • @nikolaymatveychuk6145
    @nikolaymatveychuk6145 2 роки тому +12

    Как человек, который НЕ пользуется функциональным подходом к программированию, могу сказать, что основная фишка функционального программирования в том, что там нет понятия состояний. Это позволяет легче отслеживать то, что происходит в коде, и позволяет избежать подводных камней, когда вызов метода вернул что-то не то, потому что состояние объекта было изменено перед его вызовом кем-то другим. Мы в ООП парадигме тоже пытаемся за этим следить, но только ООП принципиально противоречит функциональному подходу и по определению делает методы объекта "грязными", потому что сама суть многих методов - это не вернуть значение, а изменить какое-то состояние.
    например в ООП запись чего-то в сокет выглядела бы так:
    открыть сокет, записать в сокет, закрыть сокет.
    При этом если после "закрыть сокет" попробовать передать в него снова "записать в сокет" вылетит ошибка, потому что состояние сокета неправильное
    в функционально парадигме это бы вылгядело:
    вернуть сокет, вернуть результат записи в сокет.
    таким образом состояние сокета неизменно, и для него снова же можно вызвать "вернуть результат записи в сокет" передав новую порцию данных, и ничего не упадёт. А закрытие сокета будет где-то под капотом спрятано в момент выхода за пределы области видимости переменной сокета, или типа того. То есть переменная на всём протяжении своей жизни не меняет никакие состояния, а потому её значение намного легче проследить, да и работать с ней намного проще, так как не приходится заморачиваться о том, а можно ли вызвать вот это вот в этом месте или вот в такой последовательности. У них там даже есть целая процедура доказательства иммутабельности данных в коде (то есть всё, что может на это повлиять прячется под капот и доводится до состояния, чтобы к моменту выхода из функции все состояния были откачены обратно к тому, какими они были при её вызове) :)
    Вот где основная польза функционального программирования и почему это намного больше, чем попытка выдать обычный уровень абстракции за принципиально новый подход. Это на самом деле принципиально новый подход с кучей преимуществ, в том числе дающий более стабильный код. Правда и писать так сложнее, потому это дороже, и это минус функционального программирования.

    • @КириллЧе-я5ы
      @КириллЧе-я5ы 2 роки тому +2

      Полностью поддерживаю. Речь не идёт о том, что императива больше нет. Речь идёт о том, что в языке не используется эта парадигма. Все внутри языка и не доступно пользователю. Это обеспечивает безопасность. Так же как в джаве безопасность обеспечена обертками и джава машиной. В плюсах менее безопасно из-за наличия возможности ручками нагадить там где норм человек будет использовать безопасные обертки. Ну от оберток не уйти, нигде, ни в функ, ни в ооп. А в нутрях голимый императив!!! Алгоритмы по-другому мать их не работают!!!

    • @TheVolkovAlexandr
      @TheVolkovAlexandr 2 роки тому +2

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

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

      @@TheVolkovAlexandr в ООп я бы тоже не стал делать сообщение.передать(). В этом случае правильно было бы написать канал.отправить(сообщение).
      данные не должны отвечать за свою передачу кому-то куда-то. Так что нет, тут не катит, потому что семантику можно соблюдать и при ООП.

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

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

    • @nikolaymatveychuk6145
      @nikolaymatveychuk6145 2 роки тому +1

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

  • @programisli
    @programisli 2 роки тому +69

    Впервые не понял, что ты хотел сказать в видео, но лайк поставил.
    Декларативность - это действительно еще один уровень абстракции и это как раз и плюс, потому что тебе не нужно мясо, тебе должно быть пофиг, как официант его тебе принесет. Под капотом может быть несколько реализаций принести мясо - побежать пешком, прягнуть на скейт и поехать... Подкапотщину ты можешь легко менять без смены декларативного кода.
    Я думаю, что ты прекрасно и так все это понимаешь. Возможно главный вопрос - зачем, если можно без декларативщины сделать ООП абстракцию, и точно также менять реализацию классов, а потребители классов и не будут замечать, что что-то там изменилось. Отвечаю - это всего лишь вопрос читабельности. Функциональщики утверждают, что их LINQ читается лучше, чем если ты то же самое будешь скрывать с помощью ООП. Те, кто согласен с этим утверждением и для них читабельность декларативности действительно указывает на уровень мастерства, те используют функциональщину. Те, кто не любит это, те посылают на болт функциональщину и продолжают писать код старым методом.
    Лично я сижу на двух стульях, при работе с массивами и XML я люблю функциональщину, при работе с БД я люблю старый метод.

    • @torburgmax
      @torburgmax 2 роки тому +2

      функциональщина не описывается одной лишь декларативностью, вот и все

    • @ergo_____3491
      @ergo_____3491 2 роки тому +15

      Теперь все понятно: зумеры "изобрели" интерфейсы и назвали это функциональным программирование.

    • @vladimirviktorovichivanov7577
      @vladimirviktorovichivanov7577 2 роки тому +7

      @@ergo_____3491
      в ФП функции принимают и возвращают функции. Эта единственная фича заменяет как интерфейсы так и половину других шаблонов проектирования ООП автоматически =)

    • @ergo_____3491
      @ergo_____3491 2 роки тому +11

      @@vladimirviktorovichivanov7577 ничего она не заменяет. Как вообще передача функции аргументом должна заменить все конструкции программы? Единственное, что в ФП заменяется - это отсутствие циклов, вместо которых вынужденно используются хвостовые рекурсии в качестве костылей (чтобы не получить переполнение стека при использовании обычных рекурсий).
      И функции возвращают не функции (это ж надо такое сказать), а данные, которые передаются вызывающей функции.
      Отличительная черта ФП - это организация кода на основе чистых функций, за счёт чего экономятся вычислительные ресурсы и упрощается распараллеливание кода, а также функций высшего порядка, что упрощает написание некоторых частей кода (и эта фишка реализована и в неФП-языках).
      Решаются вполне конкретные прикладные задачи. Серьезно, хоть бы один сторонник ФП об этом сказал.

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

      @@torburgmax Не только, но это основное свойство, если можно так говорить.

  • @АлександрМартемьянов-щ1з

    Этот чувак меня всегда радует своим взглядом и способом подачи. Вот прямо о наболевшем. Молодец! Нам не хватает таких оздоравливающие мозг роликов. Весь здравый смысл кодинга только на твоих видосах держится.

  • @jurang1170
    @jurang1170 2 роки тому +119

    Пили еще, а еще лучше в таком формате расскажи про опционалы, замыкания, полиморфизм и тд и тп. Нам нужен полный курс от тебя!!

    • @АлександрГригоренко-в4с
      @АлександрГригоренко-в4с 2 роки тому +2

      айосер детектед

    • @ЕгорСоловец-л1н
      @ЕгорСоловец-л1н 2 роки тому +6

      >полиморфизм
      Загадочная, полумифическая штука. Никто не знает, что это такое, но все считают, что без этого ООП не ООП. Хорошо, если бы существовало объяснение от обратного: показали бы пример языка, начисто лишённого полиморфизма, как выглядел бы такой язык, чего бы в нём невозможно было сделать, или показали что за зверь такой не полиморфная функция, как как ведёт себя эта функция. И ещё очень интересно, какая связь между полиморфизмом и лямбда-исчислением?
      Если с наследованием, классами, методами, атрибутами в ООП всё ясно и однозначно, то полиморфизм и инкапсуляция напоминают чистейшее мифотворчество: апологеты ООП понимают под этими терминами что хотят.

    • @Dadadadam999
      @Dadadadam999 2 роки тому +9

      @@ЕгорСоловец-л1н А что в полиформизме и инкапсуляции непонятного?
      Полиформизм - это буквально возможность наследуемого класса перезаписывать методы родительского класса.
      Инкапсуляция - это разграничение доступов к элементам класса.
      ООП на самом деле не такой сложный, как многие о нем рассказывают. В ОПП есть много специфики из-за чего многие трактуют его постулаты как хотят.

    • @ФилиппФилиппович-д6э
      @ФилиппФилиппович-д6э 2 роки тому +1

      Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

      А разве полиморфизма уже не было?)

  • @Nekomata1993
    @Nekomata1993 2 роки тому +21

    Было интересно, как всегда! Особенно интересно слушать будучи функциональщиком, кайфую от Фарша более пяти лет.

  • @kosinoff-vw1hm
    @kosinoff-vw1hm 2 роки тому +34

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф, ваще огонь. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @dractw
    @dractw 2 роки тому +2

    Я зашел, мне там кто-то понравился, я поставил лайк, поставил то се. Видосик посмотрел полностью, да никогда не поленюсь написать в комменте. Чувак красава! Охуенный видос, я сорок минут на нём залипал! Кип дуин вот ю дуин бро!

  • @vladimirberezhnev8124
    @vladimirberezhnev8124 2 роки тому +21

    Самое время полностью обмазаться новым видео от Ехстрим Цоде😊

  • @Iskledian
    @Iskledian 2 роки тому +2

    Функциональный подход - это как SOLID, некие правила/рекомендации/ограничения построения архитектуры приложения, которые в рамках определённых задач могут дать более чистый/короткий/лаконичный/%youradjectivehere% код.
    И какие-то языки более способствуют такому стилю, хотя в принципе на любом языке, где есть функции высшего порядка, можно писать в функциональном стиле.

  • @glek3197
    @glek3197 11 місяців тому +2

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще?

  • @george_potoshin
    @george_potoshin 2 роки тому +12

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

    • @marvinnimnull9982
      @marvinnimnull9982 2 роки тому +1

      в результате для того, чтобы сделать "рандом" или ввод/вывод надо городить "трёхэтажные конструкции" из монад :-)

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

      @@marvinnimnull9982 что Вы так к этим монадам прицепились? ) их функция совсем в другом же. Монады используются для выполнения операций над последовательностями. Для того, чтобы сделать обычный рандом, нужно вызвать обычную функцию рандом. Монады нужны тогда, когда Вы хотите, например, создать массив рандомов. Да, в этом случае нужна функция, которая сможет получить уже имеющееся состояние последовательности и добавить к ней одно значение. Ну или если Вам надо посчитать сумму элементов массива, то тут да, тут тоже монада нужна, потому что каждый раз она будет возвращать массив на 1 элемент короче, в котором последним элементом будем сумма двух последних элементов предыдущей монады, а всё остальное будет таким же, и остановится эта функция когда останется один элемент, являющийся полной суммой массива.
      Вы сложности на пустом месте придумываете. :)

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

      @@nikolaymatveychuk6145 вот именно, над последовательностями с общим состоянием (ключевое), со списками и так можно работать (каждый раз создавая новый cons/car/cdr + рекурсия), нюанс функции рандом в том, что она не может быть чистой и выдавать случайные числа не изменяя собственное состояние (если только это не опрос аппаратуры). А насчёт монад - в своё время была книга Тимоти Бада "Мультипарадигменное програмирование в LEDA" там он вводил тип relation - вот это была монада в чистом виде :-) и делал он это ещё до того, как хаскель создали (и уж тем более, как он стал популярным). А сложности? ну, я за мультипарадигменные системы :-) язык должен от задачи идти.

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

      @@marvinnimnull9982 ещё раз хочу уточнить что Вы подразумеваете под "не меняя собственное состояние"? У Вас с моей точки зрения странное представление о смене состояния. То есть Вы хотите сказать, что если я буду случайным образом запускать или не запускать функцию random в цикле и потом вызывать Вашу функцию, то Вы в ней гарантированно сможете определять, вызывал ли я рандом на этой итерации цикла или нет? КАК? :)

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

      @@nikolaymatveychuk6145 а как можно случайно запускать или не запускать рандом без самого рандома? теперь уже я не понимаю. Под состоянием имеется в виду простая вещь - каждый запуск функции от неизменных аргументов должен выдавать неизменный результат. Тогда функция чистая и состояние среды вычисления не меняется (между запусками). 1+2 вернёт 3 всегда, неважно как часто и в каком порядке вы будете это делать. read/write всегда будет менять среду (как минимум выдавая/принимая символы с устройства), т.е. у этих функций есть побочный эффект.
      отличие такое-же как между set и let, первая изменяет имеющийся символ, а вторая вводит новый, который уже не может изменяться.

  • @fejdraus
    @fejdraus 2 роки тому +57

    Классное объяснение. Побольше бы такого. На твоих видео я начал учится программировать, вот прямо цепляет и хочется узнавать что-то новое в этой среде. Жду новых видео. Спасибо 👍

    • @kadr6424
      @kadr6424 2 роки тому +7

      Пиздец чел

    • @grasslawn7544
      @grasslawn7544 2 роки тому +8

      Соболезную

    • @HuKuTa944
      @HuKuTa944 2 роки тому +9

      @Недотысячник тогда как вы объясните то, что я стал сеньор программистом за ДВЕЕЕЕЕЕ МИНУУУУУУУТЫ?

    • @daddy-nik8551
      @daddy-nik8551 2 роки тому

      @@HuKuTa944 Ну, наверное, подставил очко менеджеру. А менеджер скорострел, вот как раз и управился за двееее минуууууты :-D.
      Наверное единственный способ стать синьёром столь быстро.

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

      @@daddy-nik8551 вахаххх

  • @zeOnni
    @zeOnni 2 роки тому +1

    "Принеси мне сендвич" это такой же императивный стиль. В декларативном стиле будет "Это сэндвич на столе, который принес официант который приготовил повар. Где сэндвич это хлеб + сыр + ветчина + помидор + хлеб"

  • @Gameplayer55055
    @Gameplayer55055 2 роки тому +9

    Есть только 2 тру парадигмы программирования:
    Байтоебство и нервотрёпка

  • @mkamika
    @mkamika 2 роки тому +1

    уууууууууууууу, декларативность, императивность, чё так сложно-то, я вот просто сижу и прогаю, какие-то там классы создаю и тп
    а вообще лайк тебе, чувак, подача по кайфу, всё понятно 👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍

  • @N5O1
    @N5O1 2 роки тому +68

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще? 👍

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

    Братан, хорош!)) Давай, давай - вперёд!) Контент в кайф, вообще красавчик, давай ещё!!!)

  • @easyman333
    @easyman333 2 роки тому +77

    Братан хорош!!! Давай, давай вперед!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    - БРАТАН ХОРОШ ДАВАЙ ДАВАЙ ВПЕРЕД МОЖНО ЕЩЕ ВООБЩЕ КРАСАВЧИК. Можно вот этого вот почаще?
    - Да можно!

  • @denysserhieiev8378
    @denysserhieiev8378 2 роки тому +1

    Континент пушка. Ваще агонь. Как святой воды с бодуна попил и здоровым трушным дивелопером стал. Спасибо, пили ещё годноту!

  • @aslack5422
    @aslack5422 2 роки тому +17

    #CSSТожеЯзыкПрограммирования ☝️

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

      Даже арифметика есть и сравнения

  • @sansanik4446
    @sansanik4446 2 роки тому +1

    Братан, харош, давай давай вперёд! Контент в кайф, можно ещё? Ваще красавчик!

  • @sherzod8186
    @sherzod8186 2 роки тому +86

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще!
    Данное сообщение (материал) создано и (или) распространено иностранным средством массовой информации, выполняющим функции иностранного агента, и (или) российским юридическим лицом, выполняющим функции иностранного агента

    • @nothere7181
      @nothere7181 2 роки тому +1

      Давай пока

    • @mega_mango
      @mega_mango 2 роки тому +1

      🤣🤣🤣🤣. С нижней надписи проржал

    • @ФилиппФилиппович-д6э
      @ФилиппФилиппович-д6э 2 роки тому +2

      Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    Нифига конечно в конце дядюшка Артем трансформировалься в Колю, нормальный переход)))
    а так круто что объяснили вот эту вот непонятку с декларативностью, хоть что то стало понятно про функциональщину, спасиба, однозначно, братан хорош вообще крассавчик, ставлю лукас :)

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

    Братан, Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    return Братан хорош!!! Давай, давай вперёд!!! Контент в кайф, ваще огонь. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @rizh42
    @rizh42 2 роки тому +28

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @alexlindholm5590
    @alexlindholm5590 Рік тому +1

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.🤟🤘

  • @Akabane_Kamidzu
    @Akabane_Kamidzu 2 роки тому +5

    По запросу трудящихся:
    БРАТАН ХОРОШ!! ДАВАЙ ДАВАЙ, ВПЕРЁД! КОНТЕНТ В КАЕФ! МОЖНО ЕЩЁ?! ВООБЩЕ КРАСАВЧИК! Можно этого почаще

  • @ЕгорГромов-к3ь
    @ЕгорГромов-к3ь 2 роки тому +5

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.
    #CSSтожеЯзыкПрограммирования

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

    Хорошо братан!!! Вперёд, давай, давай!!! Кайф Контент. Еще можно?Красавчик вообще! Можно вот этого вот почаще! Музлон зачет!

  • @flexroflovich456
    @flexroflovich456 2 роки тому +5

    Да, давайте почаще, ща учусь не хватает вот этой мотивационно-информационной атаки с вашего канала

  • @ГробницаШу-л2г
    @ГробницаШу-л2г 2 роки тому +1

    Музычка 12/10 и сам видос отличный!

  • @UsatiyNyan
    @UsatiyNyan 2 роки тому +18

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

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

      Что ты блядь несешь? императивный подход это когда ты вызываешь что то. Приказываешь им. ООП о это разделении на модули декларотивности.

    • @kitu-brazilieru
      @kitu-brazilieru 2 роки тому +1

      А чем тебе ООП не бьется с императивностью? Ты не туда воюешь, чел, ООП-языки по типу шарпа вообще ни разу от императивности не открещиваются

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

      @@kitu-brazilieru В любом языке вообще можно писать мультипарадигменно, кроме может быть совсем обфусцированных. ЯП лишь помогают следовать какой либо из парадигм, вопрос лишь в том, будешь ли ты им следовать.
      Любую императивщину можно архитектурно отделить от бизнес логики, в которой у нас и появляются гарантии и возможности писать чистый код.

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

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

  • @andrei_9460
    @andrei_9460 2 роки тому +6

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще. + 1

  • @ЯГречка
    @ЯГречка 2 роки тому +5

    Братан, хорош давай давай вперед контент в кайф можно еще ваще красавчик!

  • @Александр-и7г8л
    @Александр-и7г8л 2 роки тому +4

    бро контент в кайф!!! давай ещё!!!

  • @ЕкатеринаДенисова-д8ь

    Круто, спасибо) всегда эт в голове вертелось и думала, что мб я че то в этом жизни не понимаю просто, так сказать не познала дзен декларативщиков. Но в итоге такие мысли не у меня одной, и это прям успокаивает☺️

    • @deniskuznetsov7097
      @deniskuznetsov7097 2 роки тому +1

      Забавно, что мысли, которые всегда вертелись, выразил блоггер немного погуглив. Думаю, эту мысль надо повертеть.

  • @BaltoHolks
    @BaltoHolks 2 роки тому +11

    #CssТожеЯзыкПрограммирования

  • @ДмитрийДодр
    @ДмитрийДодр 2 роки тому +4

    Да, как всегда - спасибо за творчество, ждём ещё, удачи. В это раз кратность переваренности кала стала явно больше в итоговом продукте.

  • @ivanrechkin1255
    @ivanrechkin1255 2 роки тому +6

    Брат, молодец! Продолжай в том же духе! Содержание видео мне нравится. Можно больше сего действа? Действительно красиво получилось! Можно повторять с большей регулярностью.

  • @iafnn
    @iafnn 2 роки тому +5

    Ачо всмысле, какое-то там императивное, декларативное программирование - я всегда думал, что функциональное программирование просто помагает не загаживать код миллионом имплементаций какой-то функции, если каждая имплементация нужна только один раз

  • @NikolasPlol
    @NikolasPlol 2 роки тому +6

    Реализовал на css правило 34

  • @caiiikanikolaev
    @caiiikanikolaev 2 роки тому +15

    Братан хорош!!! Давай, давай вперед!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще. Давайте, пока.

  • @weedwave
    @weedwave 2 роки тому +11

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

    • @hellfim
      @hellfim 2 роки тому +2

      @Илья Прусаков чё ты душишь-то его сразу так? Ну нравится ему декларативщиной обмазываться - пусть обмазывается!

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

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

    • @vladimirviktorovichivanov7577
      @vladimirviktorovichivanov7577 2 роки тому +2

      @@Dadadadam999 Ни вообще ни разу. Я как-то ради прикола придумывал визуальный способ представления функционального кода, так вот он на блупринтовый визуальный язык не похож совершенно потому что в ФП функция - это объект первого уровня, то есть функция принимает другие функции в качестве аргументов и возвращает функцию как результат своей работы. Таким образом код ФП нельзя описать как блоки со связями между ними. Он будет выглядеть как матрешка где функции вставляются в в другие функции и в результате всего получается третья функция.

    • @nikolaymatveychuk6145
      @nikolaymatveychuk6145 2 роки тому +1

      @Илья Прусаков суть не в этом. разница в том, как достигается конечный результат: описанием результата, который необходимо получить, или описанием как его получить. Например разные функции фильтров массивов являются декларативными, потому что вызывая их, в аргументы передаётся не алгоритм отсеивания лишних элементов, а правило, которому должны соответствовать оставшиеся/отсеянные элементы.
      Само происхождение слов говорит о том, что один метод описательный, а второй повелительный. И все эти примеры "принеси мне мяска" это выдумка тех, кто не понял в чём прикол. На самом деле в примере с официантом декларативный метод был бы "мне нужно мясо", в то время как императивный высокого уровня звучал бы как раз "принеси мне мясо". Или если подняться на уровень выше,чтобы была понятнее разница, то декларативно мы бы сказали "проголодавшись я буду нуждаться в мясе", а императивно "если я голоден, принеси мне мясо". Ну или как-то приблизительно так... надеюсь основная идея понятна.

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще)))

  • @s_morze
    @s_morze 2 роки тому +23

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще!
    P.S. спасибо тому, у кого все скопировали этот текст.

  • @МуратАринов-ю9м
    @МуратАринов-ю9м 2 роки тому

    Полный подрыв пацанов .... Автору респект! )

  • @КонстантинКачанов-л9е

    БРАТАН ХАРОШ ДАВАЙ ДАВАЙ ВПЕРЕД КОНТЕНТ В КАЙФ МОЖНО ЕЩЕ ВООБЩЕ КРАСАВЧИК

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

      можно вот этого вот почаще? давайте, пока

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

    Я считаю что автор - гений. Ходит в кафе без меню.

  • @РинатМингазов-у4й
    @РинатМингазов-у4й 2 роки тому +1

    Эхтримцоде: хтмл-верстальщики пишут код на css...
    Тем временем я: Тильда, грузи мои бесплатные шаблоны!

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

      Вот она - декларативность! 😂

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф, ваще огонь. Можно ещё? Вообще красавчик! Можно вот этого вот почаще?

  • @mikhailshirokov8464
    @mikhailshirokov8464 2 роки тому +10

    На самом деле, нет ничего плохого, если юзать мультипарадигменные языки, совмещая императивный и декларативный стили там, где это удобнее и понятнее. Например, в каком-нибудь Котлине, если нужно найти в коллекции объектов какие-то объекты по определённым условиям, гораздо удобнее вызвать на коллекции функцию-расширение find, передав ей лямбда-выражение, по которому будет производиться отбор. Как итог, вместо этажей из for-ов и if-ов, элегантное решение в одну строку, причём гораздо более удобочитаемое. Хуже, когда, имея возможность использовать разные подходы, человек тупо упирается во что-то одно и, как сектант, юзает это везде (только ООП или только функциональщина). Примерно так же, как и с языками программирования.

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

      Это ты своими ебучими лямбдами не шерстил нормальный объём данных, с серьёзным условием. Они по итогу вообще перестают быть читабельными после четвёртой точки, когда ты собираешь вновь отфильтрованные данные. Ибо человеческому мозгу уже сложно удержать всю ту херову гору операций которые произошли изначальной коллекцией. Добавь сюда ещё специй из «нейминга» разных промежуточных значений типо i, map, list и т.д В итоге элегантное выражение в три точки превращается в нечитаемый отрывок, назначение которого забудут через полгода, а следующему копателю говна мамонта придётся это разбирать значительно дольше чем старые добрые, но уже «не красивые» вермишели if/else

    • @mikhailshirokov8464
      @mikhailshirokov8464 2 роки тому +1

      @@ProGuitarUA если "шерстить нормальный объём данных, с серьёзным условием" при помощи for/if/else, то кода станет гораздо больше и читать его будет сложнее. Про "специи нейминга разных промежуточных значений" вообще не понял к чему это здесь; если у тебя одна коллекция вложена в другую, внутри лямбды ты можешь так же на вложенной коллекции вызвать функцию-расширение find или filter (или любую другую подходящую под ситуацию, ибо в том же Котлине их дохуя на все случаи жизни). С точки зрения читабельности в коде всё понятно что и откуда вызывается, поскольку для читающего код скрыты все сложные реализации коллекций и фильтров, а видна только сама бизнес-логика. А вот если это делать в имеративном стиле, получится хуева гора условий и циклов, "i", "j", write-only код, где как раз таки хуй разберёшься через пол года.

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

    Братан - хорош! Давай-давай вперёд! Контент в кайф. Можно ещё? Ваще красавчик.

  • @АлександрКузнецов-ш4н

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.💪💪

  • @thetraveler7779
    @thetraveler7779 2 роки тому +10

    Логика видео: *_Я - человек, состою из атомов и палка состоит из атомов, значит палочка и человек это одно и тоже, выходит надо уравнять права человека и палки._*

    • @werwolfwaffen3657
      @werwolfwaffen3657 2 роки тому +1

      А разве тру-мэйжор-программиты на всех эти свистопердельных фреймворк обмазанных языках лучше палки?

    • @awwarez
      @awwarez 2 роки тому +2

      @@werwolfwaffen3657 Ой, а ты прям гига chad разработчик - пишешь интернет-магазин на assembler?

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

      Специалист подобен флюсу, а программист - палке.

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

      @@awwarez я пишу на самом пиздатом яп.

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

      @@werwolfwaffen3657 Elixir?

  • @temoncher
    @temoncher 2 роки тому +10

    Насколько я понимаю, в функциональных языках декларативность - это всего лишь побочный эффект фокуса на композиции. Идея не в том, чтобы писать "декларативно", а в том, чтобы писать максимально переиспользуемые компоненты. При этом оказывается, что, когда композируемость стоит во главе, код сам становится декларативным. При этом современное ООП точно также одобряет композицию, и у тебя точно также получается хороший декларативный код.
    P.S. на самом деле я fan-boy функционального программирования, но у меня такое ощущение, что некоторые не замечают насколько у ФП и ООП много общего, фокусируясь исключительно на различиях.

    • @ergo_____3491
      @ergo_____3491 2 роки тому +1

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

    • @temoncher
      @temoncher 2 роки тому +2

      @@ergo_____3491 Видимо мы с тобой совершенно по-разному мыслим, потому что твой коммент я тоже абсолютно не понял.
      А по поводу различий я с тобой не согласен, из статей которые я читал видно только одно: евангелисты ФП, как автор канала и сказал, хвастаются тем как у них все офигительно и как ФП - это "совершенно другой мир", и нужно "забыть всё, что ты знал про программирование до этого", когда это совершенно не так и фундамент у обоих подходов один.
      "Если бы концентрировались только на общем, то ФП бы не существовало" - тоже не ясно откуда такие выводы взялись, как концентрация на различиях привела к появлению ФП? Alonzo Church же параллельно с Turing'ом этот вопрос изучал, они даже не знали, что одно и то же изучают..

    • @marvinnimnull9982
      @marvinnimnull9982 2 роки тому +1

      @@ergo_____3491 вы смешали в кучу "парадигмы в большом" (вычислительные модели) и "парадигмы в малом" подходы к организации программного кода. Хотя, если это был сарказм, то он не следует из ответа того, кому вы оппонируете.

    • @pavelchurlyaev257
      @pavelchurlyaev257 2 роки тому +1

      Сейчас и в ООП-языках, в той же джаве - полно разных функциональных штук - редьюсы, фильтры и иже с ними. Уж для перекладывания массива в мапу никто нормальный в 2022 не будет циклы использовать).

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

      @@pavelchurlyaev257 редьюсы, фильтры это все же капля в море в сравнении с Хаскеллем

  • @ARMALON87
    @ARMALON87 2 роки тому +9

    Спасибо, Братан, что такую тему поднял!
    Почитав Википедию, я так понимаю, что преимуществом Функционального ЯП является то, что выполнение его кода может быть в некоторой степени оптимизировано, ценой большей траты времени программиста.
    Ибо писать чистые функции сложнее, чем дергать глобальные переменные внутри любого метода)
    Я прав?

    • @aether-quinque
      @aether-quinque 2 роки тому +6

      Как раз наоборот, функциональные языки во многих местах медленнее как раз из-за того, что они дают куеву тучу абстракций, которые помогают писать код намного быстрее. Например, тот же Сlojure, быстрее чем на нем писать практически невозможно.
      На самом деле прикол функциональщины в архитектуре, ее нет) В смысле буквально нет, если у тебя нет ничего кроме функций, то и городить сраные clean architecture и прочие VIPER не из чего, а это приводит к единственному решение - реши блядскую задачу, возьми данные А из источника Б, и перебери их в данные В, потом засунь в источник Г.

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

      @@aether-quinque спасибо за подробный ответ! Можете показать характерный пример на таком языке?

    • @YegresAL
      @YegresAL 2 роки тому +2

      @@aether-quinque источник Г - это прекрасно )))) И насколько точно описывает решенную задачу )))

    • @bogdanlevi
      @bogdanlevi 2 роки тому +6

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

    • @artemsokolov5007
      @artemsokolov5007 2 роки тому +2

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

  • @gorttar
    @gorttar Рік тому +3

    Да, редко на просторах ютуба встретишь более хайпово-бэйтный бред, чем у автора этого видоса. Он там ответить на вопрос просил ещё в конце. Ну что же, тогда по пунктам:
    1. Видео начинается с кучи тезисов с отрицательными коннотациями в адрес неких абстрактных функциональщиков в вакууме, которые автор даже не пытается доказать. Просто поток сознания: "хитрые и беспринципные байтеры", "нагло всех обманывают", "коварно и лживо завлекают людей перейти в свою веру"
    2. Продолжает автор неизвестно откуда взятыми якобы высказываниями неких абстрактных функциональщиков в вакууме: "у нас всё декларативно", "мы флексим".
    3. Дальше идёт одна довольно трезвая мысль, но тоже не без недостатка: "декларативность - это абстракция поверх императивности", при этом абстракция у автора, почему-то в кавычках, хотя они тут и не нужны. Декларативность - это действительно абстракция поверх императивности, но ценность у ней от этого не исчезает. Автор врядли программирует в машинных кодах, а всё что выше, включая ассемблер - уже абстракция поверх языка, который понимает машина. Да и сами машинные коды - абстракция поверх физических процессов, происходящих в компьютере.
    4. Затем идёт ещё один малопонятный тезис про некоего функциональщика, который начал автору рассказывать про SQL после того, как автор "продавил ему петрушку". Интересно бы узнать уровень навыков знаний этого самого функциональщика.
    5. Далее идёт тезис про мёртвость пролога. Видимо автору не приходилось сталкиваться с решением проблемы авторизации в сложных распределённых системах, иначе он бы был в курсе существования rego - современного языка описания политик доступа, который является диалектом datalog/prolog
    6. Следом, на примере того же пролога, автор оскорбляет всех учёных, занимающихся академическим программированием, сказав что порлоги придуман задротами для задротов. То есть учёные - задроты, к тому же ненормальные, так как, опять же со слов автора, нормальным людям туда (в пролог) вход строго запрещён.
    7. Ну и в финале автор требует ответа на вопрос, который он сам сформулировал на основе того, что некие абстрактные функциональщики в вакууме , реализуя функции императивно, называют это декларативностью. При этом ещё что-то невнятное про лицо приплёл.
    Это всё к тому, что у автора 0-5% полезного познавательного контента в видео и где-то 95-100% безграмотного высера ни на чём не основанного.
    Теперь же про ФП: основное отличие от той же процедурной парадигмы вовсе не в декларативности, а в том, что функции в ФП могут быть аргументами других функций и результатами работы других функций. Если же говорить про "чистое" ФП, то там ещё вводится понятие чистой (ссылочно прозрачной) функции, и это подмножество ФП, хотя и менее удобно на практике, имеет под собой строгое математическое основание в виде лямбда исчисления.
    Надеюсь, после этого короткого экскурса, автора стало яснее, чем же ФП отличается от других парадигм.
    Так же очень надеюсь, что автор примет критику к сведению, и будущие видео окажутся более информативными и менее хайпожорными.

    • @vadimn6393
      @vadimn6393 3 місяці тому +1

      Долго мотал коменты, и был в шоке - неужто тут нет ни одного адекватного человека? Слава Богу хоть один нашелся! Спасибо вам за здравые мысли с которыми полностью согласен! Жаль остальных адептов этого блогера. Их уровень нагляден - большинство постов тут начинается с почти гопницкого - "Братан, хорош!/красавчик/молодец/..." и жаль, что с таким "гуру" им не суждено подняться выше, лишь совсем им мозги засрет.
      По теме лишь добавлю, что поскольку ФП в идеале оперирует неизменяемыми данными, то оно очень хорошо распараллеливается, снимается проблема организации общего доступа к данным, race condition, блокировки... Более того, это распараллеливание может автоматом делать компилятор, благо ФП это фактически чистая математика (чистые математические функции) и в computer science тут все очень хорошо исследовано, доказана куча теорем... и все это компилятор может использовать для вывода наиболее эффективного и распараллеленого вычислительного потока (вернее потоков).
      Как известно, тактовая частота процессоров почти уперлась в свой физический предел и дальнейшее повышение производительности уже давно идет за счет увеличения числа ядер. И это одна из важных причин почему ФП сейчас становится все популярнее. Функциональные фишки по моему наблюдению это то как сейчас эволюционируют языки - их добавление основной тренд эволюции старых языком и обязательный стиль для новых.
      Честно говоря, даже не верится что автор ролика настолько тупой. Возможно он специально делает такие провокационные ролики, чтобы собрать реакцию от аудитории, раскрутиться и как конечная цель - получить побольше гешефта. Это первый и последний ролик, что у него посмотрел.

  • @aslack5422
    @aslack5422 2 роки тому +4

    Боже. ФункциАНАЛщики не декларативностью флексят, а монадками с эндофунктороми😎. У вас у императивщиков только пародии на них типо Optional в джаве🤭

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

      Просто дополнительная абстракция, не более

    • @aslack5422
      @aslack5422 2 роки тому +1

      @@nikolay7658 доооо. Это же не так, что монады позволяют ясно с эффектами манипулировать и комбинировать, без всяких костылей в виде эксэпшэнов и налов🤢

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

      @@aslack5422 все костыли под этой абстракцией как бэ, к тому же, все абстракции рано или поздно протекают

    • @aslack5422
      @aslack5422 2 роки тому +1

      @@nikolay7658 ну тогда вперёд в жизнь без абстракций. В структурное программирование! А те дураки кто хочет не страдать от налов, эксэпшэнов пусть дальше свои монады используют

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

      @@aslack5422 все языки программирования - абстракция. Я не писал о том, что их не нужно использовать. Я о культе ФП, монад и дальше по списку

  • @30adka
    @30adka 2 роки тому +5

    Интерфейсы JPA - вафлеративнось в Java

  • @brr3534
    @brr3534 2 роки тому +42

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф, ваще огонь. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @Inf213
    @Inf213 2 роки тому +30

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @SubmarineTitansFAN
    @SubmarineTitansFAN 2 роки тому +8

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @davidhops3952
    @davidhops3952 2 роки тому +30

    Братан хорош!!! Давай, давай вперед!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @alexpan4987
    @alexpan4987 2 роки тому +4

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф, ваще огонь. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @dinozood
    @dinozood 2 роки тому +4

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @denismir101
    @denismir101 2 роки тому +29

    Братан хорош!!! Давай, давай вперед!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @shadowminimoon
    @shadowminimoon 2 роки тому +6

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф, ваще огонь. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @Антон-ъ6ж2е
    @Антон-ъ6ж2е 2 роки тому +9

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @ПавловСайдам
    @ПавловСайдам 2 роки тому +1

    Братан харош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @hakerskayafasol1799
    @hakerskayafasol1799 2 роки тому +371

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

    • @nothere7181
      @nothere7181 2 роки тому +7

      Давай пока

    • @онет-ю4с
      @онет-ю4с 2 роки тому

      Ливни отсюда

    • @hakerskayafasol1799
      @hakerskayafasol1799 2 роки тому +2

      @@онет-ю4с Братан плох!!! Давай, давай назад!!! Контент в грусть. Можно ненадо? Вообще дурак! Можно вот этого вот пореже.

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

      Плюсую братка, контент топчик, даёшь ещё!!

    • @АнтонПотуданский
      @АнтонПотуданский 2 роки тому

      ок

  • @cleverocheckts518
    @cleverocheckts518 2 роки тому +8

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @LIRAY
    @LIRAY 2 роки тому +23

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @darkvovka7792
    @darkvovka7792 2 роки тому +11

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @grommaks
    @grommaks 2 роки тому +28

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @boristhefat
    @boristhefat 2 роки тому +7

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @wincan2335
    @wincan2335 2 роки тому +11

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @vitaliikharchenko
    @vitaliikharchenko 2 роки тому +9

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @АлексейКлочек
    @АлексейКлочек 2 роки тому +4

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @РусланСайфетдинов-п2х

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @МаксимЛужинский-у9ш

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @friendlyfire6291
    @friendlyfire6291 2 роки тому +4

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @KMCprod
    @KMCprod 2 роки тому +5

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

  • @Insert-any-prefix-
    @Insert-any-prefix- 2 роки тому

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @МаксМихайлов-д2ф
    @МаксМихайлов-д2ф 2 роки тому

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @ТемирланАбдрахманов-о6ы

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

  • @ДенисНуритдинов
    @ДенисНуритдинов 2 роки тому +4

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще.

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

    Братан хорош!!! Давай, давай вперёд!!! Контент в кайф. Можно ещё? Вообще красавчик! Можно вот этого вот почаще