首页 文章

为Haskell积极开发和记录良好的GUI工具

提问于
浏览
32

我花了很多时间在早上和下午在Haskell中使用GUI框架,因为我需要一些可视化和交互功能,而且我不喜欢在Haskell中编写我的核心功能然后在前端写出来在另一个GUI中;我宁愿用一种语言来做这一切 . 更好的部分更好的部分用于编译和修补源代码,或谷歌搜索模糊的编译错误 .

我花了很多时间阅读SO问题,在haskell.org上有充足的时间,并且有充足的时间阅读文档 . 我遇到的是一大堆过时或记录不完整的信息 . 我可以归结为这三件事:

  • 在Gtk绑定之上构建了大量选项 . 我不太关心Gtk,主要是因为我发现它看起来非常不愉快,特别是在OS X上 . grab UI看起来不合适和/或只是丑陋看起来可能看起来很傻,但这对于我 . 特别是如果我希望其他人使用我创建的任何程序 .

  • wxHaskell,它稳定且非常容易安装,但许多现有教程似乎适用于wx-0.1x,并且将wxWidgets 2.9.x文档桥接到wx-0.90.x的惯例非常非常不稳定且难以理解,当他们甚至存在 .

  • qtHaskell,似乎大部分被放弃了(如果我错了,请纠正我),在应用一年之久的补丁后只编译更新版本的GHC,并吐出大量警告,表明它们很快会成为编译错误在较新版本的GHC中 .

实际上,我正在寻找Haskell对Java Swing的回答;一个强大,维护,文档齐全,易于入门的图书馆,尝试在外观和感觉上保持原生,可以跟上GHC的发展速度,而不是放弃的高风险 . 这似乎完全是零GUI框架,但似乎与GUI框架相关的大多数“官方”资源/ wiki / pages / docs都很糟糕,所以我决定转向社区,看看是否有什么我只是没找到 . 我不是非常担心框架是跨平台的,只要它适用于现代版本的OS X.

重申一下,我并不是真的想找个人给我发一个链接到haskell.org或WikiBook . 我去过那里,我不喜欢我所看到的 . 那里的大多数信息都是过时的,它只能创造更多的工作,而不是更少 .

我意识到我的“要求”有点极端,特别是对于像Haskell这样的小社区的语言,但我希望那里的某个人可以帮助我 . 与此同时,我打算只是试着骑出wxHaskell或qtHaskell直到我成功或死亡 .

我希望我不要粗暴或疲惫不堪 .

3 回答

  • 4

    wxHaskell很好,是的,我的GUI中级库 . 我承认在新版本的文档之前,重点是更新代码 .

    对于现代的,功能反应式编程有趣的东西,我会积极维护reactive banana,并且有额外的好处,Heinrich Apfelmus他自己可能会在这里回答你的问题 .

  • 3

    Threepenny-gui是Haskell GUI库中最新的竞争者 .

    它的主要卖点是它易于安装,因为它使用Web浏览器作为显示器 . get started也很容易 .

    另一方面,它甚至没有尝试具有原生外观 - UI仅基于HTML构建 . (这可能会在将来发生变化,因为我们可以选择使用XUL) . 此外,API仍然非常不稳定,因此请准备好库的新主要版本可能会破坏向后兼容性 . (另一方面,这意味着它是积极开发的 . :-))

    (披露:我是threepenny-gui包的作者/维护者 . )

  • 4

    我感觉到你的痛苦;这个答案试图提供一些可能足够好的替代方案,也许可以帮助您进行搜索 .

    首先,有一种名为Concurrent Clean的语言 . 它应该类似于Haskell,具有GUI支持,用于编写真实世界的应用程序 . 它在某些方面有所不同;例如,它的I / O基于独特的类型,而不是Monads,就我而言,这是一件好事:) . 这是一个链接:http://wiki.clean.cs.ru.nl/Clean

    接下来,我挖了一下一个Haskell编译到JVM,希望它可以捎带在Java库上,ala Clojure . 没有骰子 . 我所发现的是一个讨论缺乏和挑战的SO线程:Haskell on JVM?

    然而,从该线程,提出了另外两个选项 . 一个是弗雷格:http://code.google.com/p/frege/

    另一个是CAL:https://github.com/levans/Open-Quark

    有's also work on functional reactive programming in Haskell. It'应该启用像GUI这样的东西,不管你是否真的从中获取GUI是另一回事:http://www.haskell.org/haskellwiki/Functional_Reactive_Programming

    这是可悲的 . 在这里,我们有JVM和.NET,而且还有针对Haskell的zilch . 它比那更糟糕; .NET已经显示出一种令人担忧的趋势,即放弃有希望的实现 . 无论IronScheme,IronLisp和IronHaskell发生了什么?据我所知,一切都死了 .

    不好 :(

相关问题