FP is dead

Jun. 5th, 2015 12:37 am
thedeemon: (house)
[personal profile] thedeemon
.. as a topic. Помните, было такое "структурное программирование"? Люди в чатиках конца шестидесятых срались на тему СП vs. GoTo, кричали "considered harmful!", писали посты на своих печатных машинках, такая движуха была. И где оно все, почему прекратились срачи? Все основные языки впитали в себя (или взросли на) СП, и тема рассосалась. Наблюдая за интенсивностью тем об ФП на разных форумах, в ЖЖ, в журнале ПФП и прочих интернетах, в этом году могу констатировать аналогичную ситуацию: ФП как темы больше нет, расходимся. Все основные языки впитали в себя (или взросли на) ФП, по крайней мере полезные его части (первоклассные функции, ФВП, лямбды, замыкания, иммутабельность, произведение типов, копроизведение типов, экспонента, применение этого всего в первую очередь в виде map/filter/reduce), а бесполезные части оказались выкинуты на задворки, в уголке музея эзотерики на них всегда можно будет полюбоваться, но в основном только там. Думаете, другая часть ФП еще себя покажет, и расширение линз Кана вправо-вверх вдоль контравариантного функтора еще выстрелит? Не будет этого, dead end.

Date: 2015-06-04 05:48 pm (UTC)
From: [identity profile] bvlb.livejournal.com
Это просто вы в хороших интернетах живете. В ЖЖ конечно фп рулит, а например в скайп-чатах различных украинских айти-сообществ научились пугать словом "монада" - вот до сюда ровно прогресс пока что и дошел.

Date: 2015-06-04 06:02 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
А он дальше и не пойдет, монады не прошли рубеж полезности, так и останутся пугалом для большинства.

Date: 2015-06-04 08:04 pm (UTC)
From: [identity profile] 109.livejournal.com
what the fuck? я столько времени потратил, пытаясь понять, что такое монада!

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-05 03:30 am (UTC) - Expand

(no subject)

From: [identity profile] 109.livejournal.com - Date: 2015-06-05 07:26 am (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-05 07:54 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 08:23 am (UTC) - Expand

(no subject)

From: [identity profile] grey-kristy.livejournal.com - Date: 2015-06-05 09:30 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 09:46 am (UTC) - Expand

(no subject)

From: [identity profile] lispnik.livejournal.com - Date: 2015-06-05 09:49 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 10:00 am (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 10:18 am (UTC) - Expand

(no subject)

From: [identity profile] Игорь Петров - Date: 2015-06-05 09:58 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 10:02 am (UTC) - Expand

Шоу "Цирк на аутсорсе"

From: [identity profile] ext_1684112 - Date: 2015-07-02 04:04 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 10:14 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 10:17 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 10:22 am (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 10:39 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 11:33 am (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 12:05 pm (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 12:39 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 12:47 pm (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 12:59 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 12:08 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 12:20 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2015-06-05 01:03 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 02:09 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2015-06-06 01:35 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-06 01:49 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2015-06-06 01:53 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-06 02:38 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-06 03:16 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-06 03:34 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2015-06-07 02:47 am (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-07 04:05 am (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-07 08:14 am (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-06 03:43 pm (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2015-06-07 02:50 am (UTC) - Expand

(no subject)

From: [identity profile] gabriel-irk.livejournal.com - Date: 2015-06-11 12:36 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-07 04:03 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2015-06-07 09:48 am (UTC) - Expand

(no subject)

From: [identity profile] Игорь Петров - Date: 2015-06-09 11:21 am (UTC) - Expand

(no subject)

From: [identity profile] valentin budaev - Date: 2015-06-07 02:44 am (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2015-06-05 12:57 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 01:30 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2015-06-05 02:01 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 02:11 pm (UTC) - Expand

(no subject)

From: [identity profile] kurilka.livejournal.com - Date: 2015-06-05 05:26 pm (UTC) - Expand

(no subject)

From: [identity profile] thesz.livejournal.com - Date: 2015-06-05 06:24 pm (UTC) - Expand

(no subject)

From: [identity profile] kurilka.livejournal.com - Date: 2015-06-05 06:32 pm (UTC) - Expand

Date: 2015-06-04 08:48 pm (UTC)
From: [identity profile] singularitty.livejournal.com
Украинофобия

Date: 2015-06-04 05:52 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
даже хаскелл впитал в себя что-то из функционального программирования, надо признать.

Date: 2015-06-04 05:59 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Да, хаскелл неплохо бы проапгрейдить.

(no subject)

From: [identity profile] os80.livejournal.com - Date: 2015-06-04 06:01 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2015-06-04 06:07 pm (UTC) - Expand

(no subject)

From: [identity profile] os80.livejournal.com - Date: 2015-06-04 06:08 pm (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2015-06-05 12:20 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2015-06-04 08:26 pm (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2015-06-04 10:04 pm (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2015-06-05 12:19 am (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2015-06-05 06:58 am (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-05 07:58 am (UTC) - Expand

(no subject)

From: [identity profile] dmytrish.livejournal.com - Date: 2015-06-05 08:04 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-06-05 08:11 am (UTC) - Expand

(no subject)

From: [identity profile] sassa-nf.livejournal.com - Date: 2015-06-05 08:29 am (UTC) - Expand

(no subject)

From: [identity profile] nponeccop.livejournal.com - Date: 2015-06-05 03:06 pm (UTC) - Expand

(no subject)

From: [identity profile] Игорь Петров - Date: 2015-06-05 09:42 am (UTC) - Expand

(no subject)

From: [identity profile] dewshick.livejournal.com - Date: 2015-06-05 10:44 am (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 11:09 am (UTC) - Expand

(no subject)

From: [identity profile] juan-gandhi.livejournal.com - Date: 2015-06-05 08:43 pm (UTC) - Expand

Date: 2015-06-04 06:00 pm (UTC)
From: [identity profile] sassa-nf.livejournal.com
Тогда давайте уже начинать обсуждать эти самые расширения Кана. Того и гляди, добавят.

Date: 2015-06-04 06:04 pm (UTC)
From: [identity profile] os80.livejournal.com
Инициатива наказуема, так что с Вас туториал «расширения Кана для чайников за 21 минуту» :-)

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 03:24 pm (UTC) - Expand

Date: 2015-06-04 06:00 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Хорошая тема.

Если уж у нас в конторе вдруг возникает вопрос разницы между монадой и апликативным функтором... дожили, блин, до светлого дня.

Студент у меня на экзамене пишет какую-то херню про функтор тож. Я их этому не учил.

Date: 2015-06-05 11:50 am (UTC)
From: [identity profile] zeit-raffer.livejournal.com
2025 год. GoF публикуют в O'Reily тысячестраничный талмуд "125 основных архитектурных применений расширений Кана сохраняющих пределы функторов". Joshua Bloch издаёт бестселлер "Effective Kan". Страуструп на очередном заседании комитета по стандартизации С++ говорит, что предложения по введению категорных пределов недостаточно продуманы и требуют доработки. На интервью поступающих в украинские бодишопы спрашивают определение 2-топоса. Уодлер по вердикту функциональной инквизиции прилюдно отрекается от параметричности, добавляя шепотом "а все-таки она бесплатная!"
Edited Date: 2015-06-05 12:15 pm (UTC)

Date: 2015-06-04 06:33 pm (UTC)
From: [identity profile] gineer.livejournal.com
ни... фи... га... себе

получается я не зря сидел на берегу этой реки. %)

Date: 2015-06-04 07:36 pm (UTC)
From: [identity profile] algebraic-brain.livejournal.com
О, хорошая формулировка.

Date: 2015-06-04 08:45 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
В мейнстриме пока плохо с tail call optimization. Кстати, в немалой степени из-за тех древних мракобесов, которые пиарили тупо удаление goto, а не введение кошерной замены.

А в остальном всё так. Не из-за самих абстракций, которые могут когда-то сработать лучше, а из-за специфики их реализаций в сегодняшнем FP.

Date: 2015-06-05 06:20 am (UTC)
From: [identity profile] dmzlj.livejournal.com
Да в мейнстриме вообще всё плохо. Все только многозначительно кивают на какие-то "мейнстримовые языки", а копнешь - одно с убогим синтаксисом, отсуствием типизации и генерит тормозные бинарники размером больше, чем у хаскелла (и нет на мипсе), и устарело лет на тридцать в момент появления на свет, второе никак не родится, ломает совместимость и есть мнение, что слишком сложно для идиота и не слишком умное для не-идиота, т.е не найдет свою ЦА (и нет на мипсе), третье имеет причудливый синтаксис, убогую типизацию, медленно компилирует и вообще гвоздями прибито к JVM-у (и нет на мипсе)...

Короче - как был один Си, так и остался в этом вашем мейстриме. Убогий, но прекрасный, как первая рыба, выбравшаяся на сушу.


Edited Date: 2015-06-05 06:20 am (UTC)

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-05 06:25 am (UTC) - Expand

(no subject)

From: [identity profile] dmzlj.livejournal.com - Date: 2015-06-05 06:46 am (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2015-06-05 07:59 am (UTC) - Expand

(no subject)

From: [identity profile] Игорь Петров - Date: 2015-06-05 09:15 am (UTC) - Expand

(no subject)

From: [identity profile] justy-tylor.livejournal.com - Date: 2015-06-05 01:45 pm (UTC) - Expand

Date: 2015-06-05 08:15 am (UTC)
From: [identity profile] nivanych.livejournal.com
> Все основные языки впитали в себя (или взросли на) СП
> и тема рассосалась

Вот когда проникнет в mainstream, скажем, на уровне системы типов, ну скажем, идриса, вот тогда поверю.
А так — даже на уровне хаскеля нет ничего же.

> расширение линз Кана вправо-вверх
> вдоль контравариантного функтора еще выстрелит?

К системе типов (и соответственно, устройству языка) это имеет только то отношение, что в "хорошей" системе такое можно описать более полно.

Date: 2015-06-05 01:38 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
На уровне идриса не проникнет, эти ваши завтипы - dead end.

Вот liquid types в том или ином виде - еще может быть.

Date: 2015-07-11 09:50 pm (UTC)
From: [identity profile] beroal.livejournal.com
Что тема закрыта — это прекрасно. Не люблю оголтелую рекламу и перевозбуждённых людей. По-моему, они только хуже делают: распространяют ахинею и мешают работать.

Насчёт того, что «языки впитали», вы переоцениваете эти языки. Функциональное программирование — это один эпизод вторжения математики в программирование. Программисты долго выпихивали математику в дверь, а она влезла в окно. И будет влезать не раз, потому что она сильнее. Cравните историю и интеллектуальный уровень математики и программирования — слон и Моська.

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-07-18 06:05 am (UTC) - Expand

(no subject)

From: [identity profile] beroal.livejournal.com - Date: 2015-07-18 07:57 am (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2015-07-18 08:00 am (UTC) - Expand

Date: 2015-06-05 09:09 am (UTC)
From: [identity profile] Игорь Петров (from livejournal.com)
В древней Греции жил и творил художник Зевксис, про которого рассказывали, что он мог написать виноград так хорошо, что птицы слетались и клевали изображение.
Да художник и сам - если верить историям о нем - путал вещи и их изображения. Также из этих историй известно, что он получал изображения людей комбинируя лучшие части разных и смело приставляя губы Никанора Ивановича к носу Ивана Кузьмича.
Теперь уже очевидно, что про все нынешние основные языки будут рассказывать, что некоторые программисты считали, будто бы они впитали в себя полезные части ФП и даже пытались эти части использовать.
Кстати, Зевксис, якобы, умер от смеха - видимо в момент, когда очередной изголодавшийся Буратино проколол носом нарисованный котелок. Не исключено, что что-то такое может случиться и с некоторыми современными зевксисами, подарившими нам "впитавшие полезные части ФП" языки.

Date: 2015-06-05 09:35 am (UTC)
From: [identity profile] grey-kristy.livejournal.com
Нет, еще далеко не все полезное перешло в мейнстрим
Pattern matching например, еще нигде не видно.

Но в целом да, все постепенно перезжает

Date: 2015-06-05 10:41 am (UTC)
From: [identity profile] dewshick.livejournal.com
scala? не говоря уже про python/ruby

(no subject)

From: [identity profile] grey-kristy.livejournal.com - Date: 2015-06-05 01:53 pm (UTC) - Expand

(no subject)

From: [identity profile] zeit-raffer.livejournal.com - Date: 2015-06-05 02:36 pm (UTC) - Expand

(no subject)

From: [identity profile] dewshick.livejournal.com - Date: 2015-06-05 02:48 pm (UTC) - Expand

(no subject)

From: [identity profile] lionet.livejournal.com - Date: 2015-06-07 04:52 am (UTC) - Expand

(no subject)

From: [identity profile] dewshick.livejournal.com - Date: 2015-06-07 07:58 pm (UTC) - Expand

(no subject)

From: [identity profile] lionet.livejournal.com - Date: 2015-06-07 08:08 pm (UTC) - Expand

Date: 2015-06-05 01:39 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Молодые языки (Rust, Swift, Haxe, Elm, ...) все с паттерн-матчингом. В C# то ли добавляют, то ли уже. Остальные мастодонты подтянутся за C#, хоть и с опозданием как обычно.

(no subject)

From: [identity profile] kurilka.livejournal.com - Date: 2015-06-05 06:21 pm (UTC) - Expand

Date: 2015-06-05 01:51 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
Видно. Но он даже в FP-языках убогий, так что ценность копипасты оттуда сомнительна.

Date: 2015-06-05 11:17 am (UTC)
From: [identity profile] dewshick.livejournal.com
из относительно мейнстримного разве что кложа выросла на ФП по-моему. можно говорить про скалу, но с тем же успехом можно и про плюсы, жаву итп.
по мере того, как мейнстримные языки и ООПэ будут заменяться, начнут вылезать другие проблемы, и возможно даже расширения линз Кана вправо-вверх вдоль контравариантного функтора выстрелят
Edited Date: 2015-06-05 12:38 pm (UTC)

Date: 2015-06-07 05:12 pm (UTC)
From: [identity profile] max630.livejournal.com
жаль, очень жаль, что ADT и pattern matching не прошли в мейнстрим. А так да, похоже на то.

Date: 2015-06-09 11:41 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Они потихоньку туда ползут. И новые языки уже с ПМ рождаются часто.

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 25th, 2026 02:49 am
Powered by Dreamwidth Studios