2010-05-18 70 views
19

是否偶然會出現一個新興的Windows Haskell UI框架?Haskell UI框架?

我最近開始關注語言,從我看到的情況來看,這將是一個很好的「一次性」應用程序(精心製作的腳本)。

但是,沒有一個好的UI框架,我看不到它在更明顯的競爭者的煙霧和鏡像之下。

我讀過,有很多框架,但沒有一個是全功能的。

我只是想知道這是不是正在興起,還是難以讓足夠的開發人員朝着同一個方向前進?

+0

我真的不能推薦一個具體的,但這份名單可能是,如果你有意思還沒有看到它:http://www.haskell.org/haskellwiki/Applications_and_libraries/GUI_libraries – ChristopheD 2010-05-18 20:52:37

+0

謝謝。我實際上已經在確切的頁面中看到了這一點,不幸的是,這是我的大多數灰心......「不幸的是,沒有標準的,所有的都不完整。」 – Lance 2010-05-18 20:59:59

回答

18

兩個主要框架是wxHaskellGtk2Hs。這兩個都被用於實際工作。從我知道我的偏好是Gtk2Hs,因爲它正確處理資源(即使用GC)。 wxHaskell要求程序員在不再需要時釋放小部件,因此您可以使用它來獲取所有經典內存泄漏和陳舊的指針螺絲。

兩者的問題是一切都在IO monad中。這反映了它們是用於命令式語言的現有GUI庫的相對較薄的包裝。當然,這意味着你不會比使用命令式語言編寫圖形用戶界面更糟糕,但你也不會更好。

在Hackage上有一些有趣的實驗圖書館,包括葡萄柚和Conal Elliott在GuiTV中的「有形價值觀」。這兩個嘗試更多的聲明式方法。

+0

謝謝!這正是我正在尋找的信息。雖然我同意包裝器庫。您是否知道用Grapefruit編寫的任何應用程序,和/或其在社區中採用的程度如何? – Lance 2010-05-19 12:45:06

+0

@蘭斯,對不起,這就是我所知道的。 – 2010-05-19 18:26:07

+2

另請參見http://stackoverflow.com/questions/2672791/is-functional-gui-programming-possible – shosti 2010-05-20 14:43:24

7

(聲明:我是wxHaskell維護者)

wxHaskell和Gtk2Hs兩者都或多或少已經完成。也就是說,它們都包裝了其底層庫提供的大量功能。正如前面提到的,它們兩者都需要IO monad中相當「必要」的編程風格。

已經有各的優缺點多次討論。我會說wxHaskell是兩個人工作的更容易,特別是在Windows上,因爲它可以通過cabal安裝(見http://www.haskell.org/haskellwiki/WxHaskell/Install#On_Windows

FRP框架(葡萄柚和其他)提供了更「功能」編程,其代價是小部件覆蓋率大大降低。我覺得這仍然是一個開放的研究領域,而且還沒有準備好迎接'黃金時段'。

在實踐中,我從來沒有使用wxHaskell的資源管理問題,儘管我同意這是可能的,並且是由Gtk2Hs更好地處理的區域,它在底層庫中使用引用計數。爲了完整性,我還應該提到一個Qt綁定(QtHaskell?)也存在 - 它是相對年輕的,但顯然是相當完整的。我寧願覺得Haskell社區儘管很小,但可以很好地修復一個GUI框架,但接受這種困難(例如許可,支持所有操作系統平臺等)。

1

你也可以用Haskell使用wxWidgets(我的意思是C++庫)。下面是一個例子: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