Подтвердить что ты не робот

Интерфейс пользовательского интерфейса Haskell?

Есть ли, случайно, новый интерфейс пользовательского интерфейса Haskell для Windows?

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

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

Я читал, что существует много фреймворков, но ни один из них не является полнофункциональным.

Мне просто интересно, если это то, что на подъеме, или просто слишком сложно заставить достаточно разработчиков идти в одном направлении с одним?

4b9b3361

Ответ 1

Две основные структуры: wxHaskell и Gtk2Hs. Оба они были использованы для реальной работы. Из того, что я знаю, моим предпочтением будет Gtk2Hs, потому что он правильно обрабатывает ресурсы (т.е. Использует GC). wxHaskell требует, чтобы программист выпускал виджетов, как только они больше не нужны, поэтому вы можете получить с ним все классические утечки памяти и устаревшие винты с указателем.

Проблема в том, что все в монаде IO. Это отражает тот факт, что они представляют собой сравнительно тонкие обертки вокруг существующих библиотек графического интерфейса для императивных языков. Конечно, это означает, что вам не хуже, чем писать графический интерфейс на императивном языке, но вы вряд ли тоже лучше.

В Hackage есть интересные экспериментальные библиотеки, в том числе идеи гейпфрута и конуса Эллиота "Разумные ценности" в GuiTV. Оба они пытаются использовать более декларативный подход.

Ответ 2

(Отказ от ответственности: я сторонник wxHaskell)

Оба wxHaskell и Gtk2Hs более или менее полны. Это означает, что оба обеспечивают большую функциональность, предоставляемую их базовыми библиотеками. Они также оба, как упоминалось ранее, требуют довольно "императивного" стиля программирования в монаде IO.

Было много дискуссий относительно относительных достоинств каждого. Я бы сказал, что wxHaskell легче работать, особенно в Windows, поскольку он может быть установлен через cabal (см. http://www.haskell.org/haskellwiki/WxHaskell/Install#On_Windows)

Фреймворки FRP (грейпфрут и другие) обеспечивают более "функциональный" стиль программирования за счет значительно уменьшенного охвата виджета. У меня такое ощущение, что это все еще открытая исследовательская область, и не совсем готова к "прайм-тайм".

На практике у меня никогда не было проблем с управлением ресурсами с помощью wxHaskell, хотя я согласен с тем, что это возможно, и это область, обработанная лучше Gtk2Hs, которая использует подсчет ссылок в базовой библиотеке.

Для полноты я также должен упомянуть, что существует также привязка Qt (QtHaskell?) - она ​​относительно молода, но, по-видимому, достаточно полная.

Я скорее считаю, что сообщество Haskell, маленькое, как есть, хорошо исправило бы одну графическую инфраструктуру, но примите эту сложность (например, лицензирование, поддержку для всех платформ ОС и т.д.).

Ответ 3

Также вы можете использовать wxWidgets (я имею в виду библиотеку С++) с Haskell. Вот пример: https://bitbucket.org/afiskon/hs-a-star-gui/src Такой подход имеет некоторые преимущества перед wxHaskell: 1. Вы можете использовать генераторы UI (Code:: Blocks, wxFormBuilder) 2. Ваше приложение занимает меньше места на диске. 3. Вы можете использовать все функции wxWidgets.

Следует также отметить, что последняя версия wxHaskell использует wxWidgets 2.9, который, вероятно, никогда не будет перенесен в Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=16;bug=613431