metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-11-25 04:11 pm

И еще

Писать GUI на хаскеле - это все равно, что писать GUI на SQL.

Если обернуть фразу - то для того, чтобы сделать нормальный GUI фреймворк для хаскеля (а не сплошную имитацию императивщины на монадах), нужно представить GUI в декларативно-функционально-теоретико-множественном стиле :)

[identity profile] jtootf.livejournal.com 2008-11-25 02:34 pm (UTC)(link)
Phooey (http://darcs.haskell.org/packages/phooey/doc/html/Graphics-UI-Phooey-Applicative.html), Fudgets (http://www.cs.chalmers.se/ComputingScience/Research/Functional/Fudgets/springschool95-intro.html)

вполне себе функционально. кстати, а где в описании GUI нужна императивщина?

[identity profile] sergiej.livejournal.com 2008-11-25 02:34 pm (UTC)(link)
Я видел веб гую генерируемую полностью из Pl/SQL. И ничего. Конечно сама она была HTML

[identity profile] aamonster.livejournal.com 2008-11-25 02:55 pm (UTC)(link)
Вот я пишу на императивщине, и все мне кажется, что изрядная часть гуя должна быть декларативной. Как минимум - лэйауты, enable/disable кнопок и т.п.

[identity profile] g-rub.livejournal.com 2008-11-25 03:11 pm (UTC)(link)
Если посмотреть в разрезе парадигмы MVC, то логика грамотно спроектированного View (отрисовывающего себя сообразно состоянию модели) -- целиком и полностью функциональна.

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

Все жесткие правила относительно последовательных цепочек действий -- разруливаем, реализовав на уровне модели объект "сессия" и сведя задачу к предыдущей.

Вот и выбросили из ГУИ 99% императивщины, которой там при правильном проектировании изначально не должно было быть.