И еще

Nov. 25th, 2008 04:11 pm
metaclass: (Default)
[personal profile] metaclass
Писать GUI на хаскеле - это все равно, что писать GUI на SQL.

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

Date: 2008-11-25 02:34 pm (UTC)
From: [identity profile] jtootf.livejournal.com
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 нужна императивщина?

Date: 2008-11-25 03:05 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Видел я скриншоты GUI на этом. За такое с работы увольняют.
Но вообще идея насчет комбинирования GUI из элементов сама по себе правильная.

А императивщина нужна, когда GUI сильно динамический, т.е. юзер ткнул в один элемент - десять других поменяли свое состояние. Я делал декларативное описание такого на XML - этот продукт в процессе разработки потерял поддерживаемость года где-то за два, сейчас буду переделывать и переносить декларативные описания внутрь кода(структура примерно такая же, но в качестве описания будет структура .NET класса, управляющего GUI, а всякие проверки и прочее - чисто императивный код).

Date: 2008-11-25 03:21 pm (UTC)
From: [identity profile] jtootf.livejournal.com
это не императивщина, это уже event-driven. а как раз в event-driven функциональщина чувствует себя очень неплохо - можно смотреть FRP, работы Элиотта, YAMPA (AFRP)

ну а что GUI страшное, так речь не о том; это - интерфейс, снизу к нему хоть Qt пристегнуть можно, хоть GTK# (насчёт WinForms не уверен)

Date: 2008-11-25 03:45 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да, FRP, видимо, должно подойти. Промоделировать юзера как две сущности - одна генератор событий, а вторая - функция, преобразующая вывод программы в вводимые данные :)

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 30th, 2025 02:17 am
Powered by Dreamwidth Studios