GUI библиотеки для GHC 6.8.2
От: BulatZiganshin  
Дата: 29.03.08 13:14
Оценка: 76 (7)
Две основные GUI-библиотеки для хаскела наконец вышли в версиях, совместимых с GHC 6.8.2, так что пора обновить этот обзор. Итак, если вы хотите создать графическую морду для своей программы на хаскеле, то можете выбрать из:

Gtk2Hs. Биндинг к GTK+, доступный под Win32, Unixes и кажется MacOS. Наиболее стабильная библиотека в плане поддержки, развития и т.п. Ссылки:
Home: http://haskell.org/gtk2hs/overview/
Статья: http://haskell.org/~shae/memory.pdf
Введение в Glade: http://haskell.org/gtk2hs/docs/tutorial/glade/
Учебник: http://home.telfort.nl/sp969709/gtk2hs/index.html
Загрузить версию под ghc 6.8.2+win32: http://haskell.org/~duncan/gtk2hs/gtk2hs-0.9.12.1.exe

Для работы ваших программ пользователям потребуется GTK+ runtime. Под Linux он ставится обычно автоматом, под винды: http://ovh.dl.sourceforge.net/sourceforge/gtk-win/gtk2-runtime-2.12.6-2008-02-02-ash.exe (можете также посмотрете другие пакеты на gtk-win.sf.net)

я сделал на нём gui-версию freearc (http://freearc.org), так что могу поделиться впечатлениями:
1) благодаря учебнику я в первый же день смог сделать работающую, полезную программу
2) в том, что не охвачено учебником, приходится разбираться с помощью доки, а в ней поначалу трудно ориентироваться — большая и недостаточно структурированная. некоторые вещи, например drag&drop, вообще не документированы, приходится лезть в доку по самому GTK
3) библиотека достаточно низкоуровневая, "дубовая" — собственно, на уровне самого GTK
4) никаких проблем ни с многозадачностью, ни с переносом под Linux — код, который я писал под виндами, сразу заработал
5) проблем с русскими буквами не было, а вот всякие грузинские сразу не заработали — надо всем контролам выставить приличный unicode'ный шрифт
6) Особенностью GTK+ является то, что она не использует предоставляемые ОС контролы, так что под виндами вид программы может быть слегка "ненативным". А уж свои собственные диалоги открытия файлов — это для виндовых юзеров вообще финиш

одним словом, gtk2hs — это надёжная рабочая лошадка без изысков


wxHaskell. Биндинг к wxWindows, совместим с Windows/Unix/MacOS, при этом использует "родные" контролы в каждой среде. Несколько месяцев назад его поддержка возобновилась, новая команда выпустила версию, совместимую с GHC 6.8.2: http://sourceforge.net/project/showfiles.php?group_id=73133

Помимо низкоуровневой библиотеки включает также высокоуровневую надстройку над ней, упрощающую работу с контролами. Однако документация беднее (набор контролов кажется тоже), учебника нет. Есть статья, по которой можно оценить удобство высокоуровневой библиотеки:
http://research.microsoft.com/users/daan/download/papers/wxhaskell.pdf
слайды на ту же тему: http://www.cse.unsw.edu.au/~cs4132/lecture/wlta543.pdf


qtHaskell. Насколько я понимаю, в данный момент это просто автоматом сгенерённые биндинги к Qt и ничего больше. нет ни доки, ни какой-либо вручную написанной обвязки. Если вы знаете Qt — можете попробовать и затем поделитесь с нами впечатлениями :D http://qthaskell.sourceforge.net
Люди, я люблю вас! Будьте бдительны!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.