Не морочьте мне голову со своим функциональным программированием / Виталий Брагилевский

  Рет қаралды 34,885

Mobile Channel

Mobile Channel

Күн бұрын

Пікірлер: 50
@stanislavzemlyakov5442
@stanislavzemlyakov5442 5 жыл бұрын
Отличный доклад, спасибо.
@АлександрЗверев-й1х
@АлександрЗверев-й1х 3 жыл бұрын
Блестящий доклад! Спасибо большое!
@ultraon83
@ultraon83 3 жыл бұрын
Просто невероятно, очень классное и понятное объяснение!
@centwor1on167
@centwor1on167 2 жыл бұрын
Отличный доклад! Вот что значит эксперт - уметь рассказать и объяснить тему даже на дудульке сыграв! Спасибо Виталию за взгляд на тему с высоты
@PetrovAlexey
@PetrovAlexey 4 жыл бұрын
Очень полезный доклад для вывода мозгов из тупика
@folcrams2993
@folcrams2993 Жыл бұрын
"Не морочьте мне голову со своим функциональным программированием!" - дайте хоть основы выучить
@MrVicorl
@MrVicorl 3 жыл бұрын
ещё до пандемии, без масок и офлайн встреча... какие времена были... :(
@petrvictorovich
@petrvictorovich 3 жыл бұрын
Почему так мало людей дозревает до такой "простоты" в понимании? Видимо потому что с умным видом произносить "страшные слова" легче, приятней и льстит самолюбию.
@TheOnlyAndreySotnikov
@TheOnlyAndreySotnikov 2 жыл бұрын
Есть вещи, которые ahead of time компилятор в принципе никогда не сможет оптимизировать. Например, вызов виртуальной функции невозможно заинлайнить, если вызов осуществляется через таблицу виртуальных функций, которая строится в run-time. Так что аргумент «не бывает медленных способов программирования, это компиляторы плохие» не состоятелен.
@АлександрФёдоров-я7ц
@АлександрФёдоров-я7ц Жыл бұрын
Поэтому полиморфизм типажей и дженериков в Rust куда лучше чем наследование абстрактных методов в той же Java. С одной стороны вроде как интерфейс (набор виртуальных методов), а с другой - no cost abstraction, потому все накладные расходы во время компиляции снимаются (ну также как Templates в С++). Ну, а если мы говорим про, скажем, массив экземпляров разных классов с одним интерфейсом, то тут я не вижу особых способов оптимизации даже руками программиста. То есть так или иначе будет if else или что-то типа того, завязанного на конкретном типе. Если у Вас есть идеи как эту проблему исправить руками программиста (а не компилятора), было бы интересно узнать)
@alexgorodecky1661
@alexgorodecky1661 11 ай бұрын
@@АлександрФёдоров-я7ц, разницы с Java никакой нет. Разница лишь в том будет инлайн или нет, а это зависит. А инлайна может не быть вовсе если вы соберёте себе Array - но тут вы явно попросили рантаймовых абстракций
@laticalamonzi2814
@laticalamonzi2814 Жыл бұрын
Включила на прослушку, показалось Вячеслав Мясников говорит... =)
@SergRyabinin
@SergRyabinin 3 жыл бұрын
Доклад очень интересный. Если брать аналогии с живым миром, никого не удивляет присутствие в нем птиц, насекомых, бактерий, рыб, растений, грибов и тд, но почему то в мире программистов все еще бывают споры относительно того, какой подход самый "правильный"))
@berghauz
@berghauz 3 жыл бұрын
Автор доклада явно уже определился, и счетчики ему не то, и циклы фу, а что под капотом они же и сидят - ну не видно, значит неть! Уровень передергивания зашкаливает.
@SergRyabinin
@SergRyabinin 3 жыл бұрын
@@berghauz споры про это все-равно не утихнут никогда и все ветки программирования будут развиваться, как и все живое на земле)) впрочем, пригладное программирование хочется видеть давно уже посредством "крупных кубиков", а не ломать копья про ООП/функциональное/структурное и етс программирование. Хотя отраслевые решения на эту тему уже имеются давно.
@NICKy1038ausc
@NICKy1038ausc 3 жыл бұрын
@@berghauz Не очень понятна суть претензии. Следуя этой логике, раз "под капотом" процессор работает с машинными кодами, то все, кто считает более эффективным писать код хотя бы на ассемблере или на более высоких уровнях абстракции и так делают - "передёргивают". Речь же идёт конкретно про код программиста, который выполняет бизнес-задачу. На 8:39 был отличный пример. Декларативный код, который описывает суть задачи, занимает три строки. Проще читать, проще поддерживать. Чем лучше 10+ строк кода с циклами, проверками и счётчиками, который делает абсолютно то же самое? Понятно, что надо всегда быть разумными и использовать более применимый подход для кажого конкретного случая. Но доклад автора был только про ФП, в этом смысле тоже претензия непонятна
@berghauz
@berghauz 3 жыл бұрын
@@NICKy1038ausc На 8:39 был отличный пример сахара, какое отношение этот пример имеет к счетчикам, циклам и всему прочему, о чем выступающий говорил минутой ранее? Никакого, но выступающий зачем-то акцентировал свое внимание на зашкварности использования этих методов, словно все программисты, пишущие "эффективный" код только и занимаются тем, что считают строчки в файле. Это и называется - передергивать.
@NICKy1038ausc
@NICKy1038ausc 3 жыл бұрын
@@berghauz Это рофл? Прямое отношение. Вы смотрели видео, суть поняли? Были показаны два метода, которые делают одно и то же. В императивном и функциональном стиле. Первый занимает гораздо больше места и менее читаем из-за того, что в теле этого метода используются циклы и счётчики, о которых шла речь. В хорошем читаемом коде метод должен делать одну вещь и делать её хорошо. Перебор коллекции и чтение файлов посимвольно - как раз примеры того, почему императивный метод не является хорошо читаемым кодом. Когда все рутинные действия были вынесены в методы поменьше, функциональный код стал гораздо более лаконичным и декларативным. Он и пишется гораздо быстрее, и читается как книга: последовательно и на понятном языке. А не как код студента-младшекурсника. Программисты на реальных проектах ощутимо быстрее пишут код и быстрее его поддерживают, с этим очень странно спорить. Никто не считает каждую строчку кода, но когда функциональный код на практике В ТРИ РАЗА короче, это огромная разница. А так любую удобную абстракцию можно назвать сахаром и сказать, что она не нужна. И так раньше нормально жили, чего вообще развиваться, усваивать что-то новое и увеличивать производительность программистов. Вы сами-то решаете реальные задачи? И как, императивно? Пробовали иначе? Поделитесь, пожалуйста, своим опытом.
@ivanfedorov7934
@ivanfedorov7934 3 жыл бұрын
Супер доклад , все правильно, делайте хорошие компиляторы, а уж мы-то напишем :)
@kujoxer-yep
@kujoxer-yep Жыл бұрын
00:15:40 - чел 100% закрывает вопрос что такое ФП и ООП, красавчик есть же
@ArgentSmith
@ArgentSmith 5 жыл бұрын
Хочу такой презентер с "подсветкой экрана"
@VBragilevsky
@VBragilevsky 5 жыл бұрын
Управлять не очень удобно!
@alexanderskusnov5119
@alexanderskusnov5119 3 жыл бұрын
Я видел другой режим: фон не становится чёрным, а пятно желтоватое или красноватое (с прозрачностью).
@IExSet
@IExSet Жыл бұрын
Какой нафиг компилятор с искусственным интеллектом, о чём они ?
@yaroslavpiddubnyak2025
@yaroslavpiddubnyak2025 Жыл бұрын
Общий смысл - переходить на языки ещё более высокого уровня, а если будет плохо работать - это виноваты разработчики компилятора, что дураки - остались на низком. 😎
@cheefoxcheefox2372
@cheefoxcheefox2372 Жыл бұрын
Чёт херь какая-то. Надеюсь,что в комитете Haskell этот человек просто пьёт кофе
@lenin1st
@lenin1st 2 жыл бұрын
когда лектор оговорился про то, что скорость - это проблема компилятора, я выключил. какие знакомые боевые фразы.
@0xsadcat92
@0xsadcat92 11 ай бұрын
Штош, компилятор виноват в медленном коде, так заказчику и скажем, пусть подождет пока допилят...
@inbuckswetrust7357
@inbuckswetrust7357 5 ай бұрын
на кого вешать собак разрабам компилятора ? :) короче выяснится, что во всем виноват собака Тьюринг
@АндрейСимаков-ь9и
@АндрейСимаков-ь9и 2 жыл бұрын
Дано: гугл-1шт. ,есть поток данных n>1, дискретность данных будет n>1÷a+(b•b). Сжатие фаилов b не позволяют высокоуровнивые кодаки. основанные на последних языках програмирования, т.к в фортан больше не могем. Попытки сжимать медиа.- нейросетями привели к неслабой ловле лулзов. Вопрос: сколько потребуется времени чтобы компания гугл освоила сжатие медиафаилов крипто шифрованием, используя при этом сторонние мощьности?
@princessmary5556
@princessmary5556 Жыл бұрын
Бред.
@mslq
@mslq Жыл бұрын
Да я на ассемблере функций наделал средствами макроса и функионирую! ))
@АлександрФёдоров-я7ц
@АлександрФёдоров-я7ц Жыл бұрын
пишу программы на машине Тьюринга, симулированной в игре жизнь и не жалуюсь))
@deleteddeleted1940
@deleteddeleted1940 Жыл бұрын
3734 note
@Devof-n9i
@Devof-n9i 2 жыл бұрын
Хаскелевский интерпретатор и вправду медленный. Отсюда вопрос: если хаскелисты, сплошь и рядом - ученые-исследователи и математики, то почему бы не написать быстрый компилятор для своего языка?
@СтаниславВершков-т2т
@СтаниславВершков-т2т 2 жыл бұрын
потому что ученые-исследователи и математики не инженеры
@АлександрФёдоров-я7ц
@АлександрФёдоров-я7ц Жыл бұрын
компилятор или интерпритатор? GHCI - медленный так как интерпретатор. А вот GHC - вполне быстрый, главное писать директиву ghc-options: -o2 в package.yaml, чтобы включилась оптимизация
@ChannelCheesecake
@ChannelCheesecake 11 ай бұрын
Ну так он медленный, потому что умный. Что не понятно, это 2 стороны одной монеты. Но пока Хаскеллист напишет код за x времени, напишет y тестов и будет ждать z времени компиляцию. Какой-нибудь гошник напишет то же самое за 5x времени, напишет 3y тестов, но скомпилирует быстрее, кто в итоге продуктивнее
@Darellat
@Darellat 5 жыл бұрын
очередной манямир функциональщиков на этапе вопросов
@Yetishkin_Pistolet
@Yetishkin_Pistolet 2 жыл бұрын
Python ведь тоже на 79% функциональный. А вы его не упомянули, почему ? Как будете оправдываться ?! А ?! АААААААА !!!!
@nikitatimofeenko9351
@nikitatimofeenko9351 Жыл бұрын
А не че, что он ООП и сам создатель языка до последнего не хотел добавлять функциональные методы по типу map, filter, reduce и тп
@mslq
@mslq Жыл бұрын
Очень сильный язык, боится оговорится.
@ChannelCheesecake
@ChannelCheesecake 11 ай бұрын
Что там функционального. Лямбды однострочные или может быть отсутствие иммутабельных данных
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 7 МЛН
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 161 МЛН
I thought one thing and the truth is something else 😂
00:34
عائلة ابو رعد Abo Raad family
Рет қаралды 11 МЛН
Functional Programming in 40 Minutes • Russ Olsen • GOTO 2018
41:35
GOTO Conferences
Рет қаралды 819 М.
Процедурное, объектно-ориентированное, функциональное. Зачем?
54:08
Московский клуб программистов
Рет қаралды 1 М.
Виталий Брагилевский: интервью с автором Haskell in Depth
1:14:20
Functional programming - A general introduction
11:47
Daedalus Community
Рет қаралды 115 М.
Functional Design Patterns - Scott Wlaschin
1:05:50
NDC Conferences
Рет қаралды 299 М.