Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Haskell用户界面框架?_Windows_User Interface_Haskell_Frameworks - Fatal编程技术网

Windows Haskell用户界面框架?

Windows Haskell用户界面框架?,windows,user-interface,haskell,frameworks,Windows,User Interface,Haskell,Frameworks,是否偶然出现了一个针对Windows的Haskell UI框架 我最近开始研究这门语言,从我所看到的,它将适用于伟大的小型“一次性”应用程序(精巧的脚本) 然而,如果没有一个好的UI框架,我就看不到它在更明显的竞争者的烟雾和镜子下出现 我读过很多框架,但没有一个是全功能的 我只是想知道,这是否是一个正在上升的趋势,还是很难让足够多的开发人员使用同一个框架朝着同一个方向发展?这两个主要框架是和。这两种方法都已用于实际工作。据我所知,我的首选是Gtk2Hs,因为它正确地处理资源(即使用GC)。wxH

是否偶然出现了一个针对Windows的Haskell UI框架

我最近开始研究这门语言,从我所看到的,它将适用于伟大的小型“一次性”应用程序(精巧的脚本)

然而,如果没有一个好的UI框架,我就看不到它在更明显的竞争者的烟雾和镜子下出现

我读过很多框架,但没有一个是全功能的


我只是想知道,这是否是一个正在上升的趋势,还是很难让足够多的开发人员使用同一个框架朝着同一个方向发展?

这两个主要框架是和。这两种方法都已用于实际工作。据我所知,我的首选是Gtk2Hs,因为它正确地处理资源(即使用GC)。wxHaskell要求程序员在不再需要小部件时释放它们,这样就可以获得所有经典的内存泄漏和陈旧的指针螺钉

两者的问题在于,一切都在IO单子中。这反映了这样一个事实,即它们是针对命令式语言的现有GUI库的相对较薄的包装。当然,这意味着您的境况并不比用命令式语言编写GUI差,但您的境况也不会好多少

在Hackage上可以找到一些有趣的实验库,包括葡萄柚和Conal Elliott在GuiTV中的“有形价值”思想。这两种方法都试图采用更具声明性的方法。

(免责声明:我是wxHaskell维护者)

wxHaskell和Gtk2Hs都或多或少是完整的。也就是说,两者都包装了其底层库提供的大量功能。正如前面提到的,它们都需要IO monad中相当“命令式”的编程风格

关于每种方法的相对优点,已经进行了许多讨论。我想说wxHaskell是这两个工具中比较容易使用的,尤其是在Windows上,因为它可以通过cabal安装(请参阅)

FRP框架(葡萄柚和其他)提供了一种更“功能性”的编程风格,但代价是大大降低了小部件的覆盖率。我觉得这仍然是一个开放的研究领域,还没有真正准备好进入“黄金时段”

在实践中,我从未遇到过wxHaskell的资源管理问题,尽管我同意这是可能的,而且Gtk2Hs可以更好地处理这一领域,它在底层库中使用引用计数

为了完整性,我还应该提到Qt绑定(QtHaskell?)也存在——它相对年轻,但显然相当完整


<>我觉得Haskell社区虽然很小,但是可以很好地解决一个GUI框架,但是接受了这个困难(例如,许可证,支持所有OS平台等等)。

也可以使用Haskell(我是C++库)和Haskell。下面是一个例子:这种方法比wxHaskell:1有一些优势。您可以使用UI生成器(代码::Blocks,wxFormBuilder)2。你的应用程序占用更少的磁盘空间3。您可以使用wxWidgets的所有功能


还应该注意的是,wxHaskell的最新版本使用了wxWidgets 2.9,它可能永远不会被移植到Debian:

我不能推荐一个特定的版本,但是如果您还没有看到它,这个列表可能会很有趣:谢谢。事实上,我在这一页中看到了这一点,不幸的是,这是我最沮丧的地方。。。“不幸的是,没有一个标准的,所有的或多或少都是不完整的。”非常感谢!这正是我要找的信息。不过我同意包装器库。你知道有没有用葡萄柚编写的应用程序,和/或它在社区中的应用有多广泛吗?@Lance,对不起,我只知道这些。请参阅答案还应该包括商业游戏“Nikki和机器人”使用的qtHaskell。