metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-08-20 11:20 am
Entry tags:

Офигенная статья, объясняющая ВСЕ про FP

http://blog.jelastic.com/2012/07/24/functional-programming-is-a-ghetto/
So why is functional programming, despite its virtues, a ghetto? The answer is that we tend to insist on good design, to such a degree that we avoid taking jobs where we’re at risk of having to deal with bad designs.

PS: В статье позитивная айседовщина. "IDE не нужны, потому что на продакшен сервере за тридевять земель вам они не помогут", "только идиоты начинают разработку на жабе или С++ в 2012 году" и прочее такое.

Еще того же автора: http://michaelochurch.wordpress.com/2012/04/13/java-shop-politics/

[identity profile] vit-r.livejournal.com 2012-08-20 01:38 pm (UTC)(link)
Насколько вижу, основрые проблемы в документации и представлении программ графически. Плюс проблемы с делением сложности по уровням.
"читай исходный код" в большинстве случаев не работает.

[identity profile] metaclass.livejournal.com 2012-08-20 01:48 pm (UTC)(link)
"читай исходный код" работает весьма условно, да. Когда там сплошные функции высшего порядка да ленивые последовательности - единственный вариант осилить это - мыслить категориями потоков данных, а не порядка выполнения.

[identity profile] nivanych.livejournal.com 2012-08-20 02:00 pm (UTC)(link)
Я бы так сказал — функциональщина, это первый шаг к формализации того, что ты делаешь.
Сколько бы ни было императивностей в некотором языке (например, окамель), но большую часть чего угодно на нём пишут именно в функциональном стиле, а значит, в выражениях некоторой интуиционистской логики.
Причём, чем больше опыта, тем большую часть.
А значит, тем большая часть хоть как-то формализована.
Другой подход к формализации, со стороны императивщины, сильно более сложен, и в немалой части, состоит в правильном разделении на модули с жёстко контролируемыми связями между ними. Что в некотором смысле, начинает приближать программу к функциональной.

[identity profile] nivanych.livejournal.com 2012-08-20 02:06 pm (UTC)(link)
Вот давно меня интересует.
Индусский говнокод и хацкельное ФП — это взаимоисключающие понятия или нет? ;-)
Хотя я понимаю, что если постараться, я бы придумал таакой говнокод! :-)
Но может ли он родиться естественным путём?

[identity profile] metaclass.livejournal.com 2012-08-20 02:50 pm (UTC)(link)
Может. Достаточно не написать комментариев и захардкодить констант :)

[identity profile] w00dy.livejournal.com 2012-08-20 03:04 pm (UTC)(link)
> только идиоты начинают разработку на жабе или С++ в 2012 году

Вот с этим я чего-то согласен. Есть жеж до-диез :)

[identity profile] metaclass.livejournal.com 2012-08-20 03:19 pm (UTC)(link)
Микрософт и индусы. Огорчают.

[identity profile] w00dy.livejournal.com 2012-08-20 03:21 pm (UTC)(link)
Тем не менее он приятен чем оракел с теми же самыми индусами. Ну или крестики со своим Страуструпом и Александреску

[identity profile] w00dy.livejournal.com 2012-08-20 03:26 pm (UTC)(link)
какой-нить писюк на i80386 :)

[identity profile] tzirechnoy.livejournal.com 2012-08-20 03:34 pm (UTC)(link)
Да, вполне реально. А что?

[identity profile] tzirechnoy.livejournal.com 2012-08-20 03:36 pm (UTC)(link)
100MB permanent storage, это я опечатался, кстати.

[identity profile] tzirechnoy.livejournal.com 2012-08-20 03:37 pm (UTC)(link)
C сейчас жывее многих. Во всяком случае, никуда помирать он не собирается.

[identity profile] tzirechnoy.livejournal.com 2012-08-20 03:40 pm (UTC)(link)
>А динамика в том что пять лет назад о ФП вообще
> никто кроме как в паре университетов не знал.

Отлить в граните, да.

PS Я, если чо, ещё в школе про него услышал, это большэ 15 лет назад. Правда, тогда не заинтересовался, но группа заинтересовавшыхся была достаточно большой.

[identity profile] tzirechnoy.livejournal.com 2012-08-20 03:41 pm (UTC)(link)
А что, под видом прогрэсса в ООП происходит что-то хорошэе?

Фигассе новость.

[identity profile] w00dy.livejournal.com 2012-08-20 03:43 pm (UTC)(link)
Та не, ничо. Просто была возможность потыкать пальцами в свежий асус - 4 ядра, дохера памяти, ондроед. И оно тормозит. Такое ощущение что специально старались.

[identity profile] zamotivator.livejournal.com 2012-08-20 04:04 pm (UTC)(link)
Судя по комментариям - [livejournal.com profile] theiced насчёт тебя прав.
Два раза обосраться похуй, но при этом крыть хуями в ответ на критику - это действительно мудак.

[identity profile] blackyblack.livejournal.com 2012-08-20 04:17 pm (UTC)(link)
Речь о том, чтобы оптимизировать копирование иммутабельных значений и т.п.? Ну этого и в с++ нет, однако хаскелл как-то в с++ компилится.

[identity profile] blackyblack.livejournal.com 2012-08-20 04:18 pm (UTC)(link)
Я примерно это и имел в виду. :) Под "товарищем" я Вас подразумевал.

[identity profile] thedeemon.livejournal.com 2012-08-20 04:54 pm (UTC)(link)
Не, речь о существующих в современном С++ штуках вроде move constructor, rvalue reference и return value optimization. В Си они недоступны, как я понимаю, потому на С++ можно генерить более эффективный код. Ну и явная работа с SIMD в плюсах нормально более-менее сделана (тут я вообще не в курсе, как она выглядит в Си).

Создатели GHC давно уже себе свой С-- запилили, чтобы обойти недостаток нужных фич в Си. Про компиляцию в С++ не слыхал.

[identity profile] tonsky.livejournal.com 2012-08-20 04:57 pm (UTC)(link)
Это вот это-то удобство?

[container setObject:value forKey:[NSString stringWithFormat:@"%d", number]];

[identity profile] thedeemon.livejournal.com 2012-08-20 04:58 pm (UTC)(link)
А что заказчикам предлагалось вместо пыхомуcкуля? Agda on Rails? :)

[identity profile] bydl0coder.livejournal.com 2012-08-20 04:59 pm (UTC)(link)
Краткое содержание статьи: "какой же я крутой!"

[identity profile] thedeemon.livejournal.com 2012-08-20 05:01 pm (UTC)(link)
надо просто мыслить категориями.
или 2-категориями, еще лучше :)

[identity profile] tzirechnoy.livejournal.com 2012-08-20 05:08 pm (UTC)(link)
Я вообще потерял нить Вашых суждений.

[identity profile] tzirechnoy.livejournal.com 2012-08-20 05:10 pm (UTC)(link)
По сравнению с тем жэ самым на STL -- да, безусловно.
А на C вообще такое выходит за рамки языка.

Page 5 of 7