图形用户界面工具,积极开发并为Haskell提供完善的文档
我花了上午和下午的更多时间在Haskell中使用GUI框架,因为我需要一些可视化和交互功能,而且我并不喜欢在Haskell中编写我的核心功能,然后将其写入前端在另一个GUI中; 我宁愿用一种语言来完成。 这个更好的部分的更好的部分已经花费在编译和修补源代码上,或者谷歌编译错误的编译错误。
我花了很多时间阅读这些问题,在Haskell.org上花了大量的时间,还有大量的时间阅读文档。 我遇到的是一大堆过时的或记录不完善的信息。 我可以把它归结为以下三件事情:
基于Gtk +绑定构建的选项过多。 我不太关心Gtk +,主要是因为我觉得这很令人不快,特别是在OS X上。抓住UI看起来不合适和/或简单丑陋可能看起来很愚蠢,但这对于我。 特别是如果我希望其他人使用我创建的任何程序。
wxHaskell,它稳定且非常易于安装,但许多现有教程似乎适用于wx-0.1x,而将wxWidgets 2.9.x文档桥接到wx-0.90.x的约定非常非常重要且很难理解,当他们甚至存在时。
qtHaskell似乎大部分被抛弃(纠正我,如果我错了),只适用于新版本的GHC应用一年后的补丁,并吐出大量的警告,表明他们很快就会出现编译错误更新版本的GHC。
实际上,我正在寻找Haskell对Java Swing的答案; 一个功能强大,维护良好,有文档记录,易于入门的图书馆,试图成为本地化的外观和感觉,能够跟上GHC的发展步伐,而不会面临放弃的高风险。 这似乎完全是零的GUI框架,但似乎大部分与GUI框架相关的“官方”资源/维基/页面/文档都是无法维护的,所以我决定转向社区,看看我是否有某种东西没有找到。 我并不担心这个框架是跨平台的,只要它适用于现代版本的OS X。
重申一下,我并没有真的想找人给我发送一个链接到haskell.org或WikiBook的链接。 我去过那里,而且我不喜欢我所看到的。 那里的大部分信息都过时了,它只会创造更多的工作,而不是更少的工作。
我意识到我的“要求”有点极端,特别是对于像Haskell这样的较小社区的语言,但我希望有人能帮助我。 与此同时,我打算只是试着骑wxHaskell或qtHaskell,直到我成功或死亡。
我希望我不会过分粗暴或不适。
wxHaskell是好的,是的,我的前往GUI中级库。 我承认,在新版本的文档之前,一直关注更新代码。
对于现代的功能反应式编程有趣的东西,我喜欢反应性香蕉,这是积极维护,并有Heinrich Apfelmus本人可能出现在这里回答你的问题的额外好处。
Threepenny-gui是Haskell GUI库中最新的竞争者。
它的主要卖点是安装非常简单,因为它使用网络浏览器作为显示器。 开始使用也很容易。
另一方面,它甚至不尝试拥有原生的外观和感觉 - UI完全是建立在HTML之上的。 (这可能会改变,因为我们可以选择使用XUL)。 此外,API仍然非常不稳定,因此准备好新的主要版本的库可能会打破向后兼容性。 (另一方面,这意味着它正在积极开发。:-))
(披露:我是threepenny-gui软件包的作者/维护者。)
我感到你的痛苦; 这个答案试图提供一些可能足够好的替代方案,可能会帮助您进行搜索。
首先,有一种名为Concurrent Clean的语言。 它应该与Haskell类似,具有GUI支持,并且用于编写真实世界的应用程序。 它在某些方面有所不同; 例如,它的I / O基于独特的类型而不是Monad,就我而言,这是一件好事:)。 这里是一个链接:http://wiki.clean.cs.ru.nl/Clean
接下来,我挖掘了一个编译到JVM的Haskell,希望它能够回收Java库,ala Clojure。 没有骰子。 我找到的是一个SO线程,讨论缺少的问题及其挑战:Haskell在JVM上的问题?
然而,从那个线程,提出了另外两个选项。 一个是弗雷格:http://code.google.com/p/frege/
另一个是CAL:https://github.com/levans/Open-Quark
Haskell也有功能性反应式编程。 它应该可以启用像GUI这样的东西,不过不管你是否真的获得GUI都是另一回事:http://www.haskell.org/haskellwiki/Functional_Reactive_Programming
这是可悲的。 在这里,我们有JVM和.NET,但是对于Haskell来说却是zilch。 比这更糟糕; .NET已经显示了一个令人担忧的趋势,以摆脱有希望的实现。 无论IronScheme,IronLisp和IronHaskell发生了什么? 据我所知,所有人都死了。
不好 :(
链接地址: http://www.djcxy.com/p/42929.html上一篇: GUI tools that are actively developed and well documented for Haskell