metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-01-22 02:45 pm
Entry tags:

Что у нас в FP есть в плане анализа предметки

и синтеза дизайна системы?
Тут народ вопросом задается: http://guamoka.livejournal.com/1047171.html

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

[identity profile] dmzlj.livejournal.com 2013-01-22 12:17 pm (UTC)(link)
в плане "синтеза" есть опасность скатиться в микро-дизайн, и если топикстартер приводит в пример высеры Буча и GoF, то это 99% оно и есть, т.е не нужно.

Далее, нет никакого "FP". Есть Ocaml с классами (не к ночи) и навороченными параметрическими модулями, есть Haskell с тайпклассами, монадами (хехе) и простыми модулями, есть Scala (что там в ней есть), есть Erlang с его примочками. Везде есть модули, процессы, сообщения, но все равно нет никакого общего "FP", соответственно, надо смотреть.

[identity profile] metaclass.livejournal.com 2013-01-22 12:26 pm (UTC)(link)
Скала настоящий мультипарадигменный йязык, заодно и со статик типами.
В F# макросов не хватает для кошерности, а немерле меня пугает мертвостью.

[identity profile] migmit.livejournal.com 2013-01-22 05:13 pm (UTC)(link)
Макросы некошерны.

[identity profile] metaclass.livejournal.com 2013-01-22 05:18 pm (UTC)(link)
Да. А языки, где они не нужны, пугают людей :)

[identity profile] jakobz.livejournal.com 2013-01-22 12:43 pm (UTC)(link)
Да ФП, не смотря на все монады, заканчивается на IO и стейте. ФП - это отличная парадигма, позволяющая поверх себя строить другие, умеющие IO и стейт. Но сама она не позволяет даже консольное приложение сделать.

Что там будет на верхнем уровне - ООП, монады, стрелки, акторы и прочее - вопрос не про ФП совсем.

[identity profile] dmzlj.livejournal.com 2013-01-22 12:58 pm (UTC)(link)
что такое ФП до сих пор не договорились, поэтому, я думаю, все не так плохо. А то можно любой грязный язык не-ФП считать. моё понятие ФП --- это оптимизация хвост. вызовов, замыкания и HOF.

[identity profile] metaclass.livejournal.com 2013-01-22 01:14 pm (UTC)(link)
Без полноценных статических типов грустно :)

[identity profile] dmzlj.livejournal.com 2013-01-22 01:31 pm (UTC)(link)
Типизация ортогональна. Scheme вполне функционален

[identity profile] love5an.livejournal.com 2013-01-23 09:40 pm (UTC)(link)
не ожидал услышать данный тезис от адепта хаскеля. хотелось бы пожать руку даже, вощемто

[identity profile] v-l-a-d.livejournal.com 2013-01-22 04:19 pm (UTC)(link)
а иммутабельность?
или она сама по себе логически вытекает из чего-то перечисленного?

[identity profile] guamoka.livejournal.com 2013-01-22 02:54 pm (UTC)(link)
в плане "синтеза" есть опасность скатиться в микро-дизайн, и если топикстартер приводит в пример высеры Буча и GoF, то это 99% оно и есть, т.е не нужно

Опасность скатиться в микродизайн есть всегда и обусловлена она неумением сформулировать проблему в терминах задачи, а не её решения. Вне зависимости, читал ли человек Бутча и ГоФ или нет.

[identity profile] dmzlj.livejournal.com 2013-01-22 03:31 pm (UTC)(link)
GoF про микродизайн, а Буч это натягивание сов на глобусы, вообще малоосмысленное чтение.

[identity profile] guamoka.livejournal.com 2013-01-22 03:40 pm (UTC)(link)
ГоФ- это не только (и не столько) микродизайн (боюсь даже спросить, что вы под этим утверждением понимаете). Бутч- вполне себе осмысленное чтение. Хоть и затянутое. Фаулера вполне достаточно.