wxHaskell 和 Gtk2HS 的相对优点是什么?

2024-02-15

哪个更适合使用 Haskell、wxWidgets 开发 GUI 应用程序(通过wx哈斯克尔 http://haskell.org/haskellwiki/WxHaskell)或 GTK(通过Gtk2HS http://www.haskell.org/gtk2hs/)?

各自的优点和缺点是什么?它是否会根据您的目标平台而有所不同(我主要在 OS X 上工作,但希望我的程序也能在 Linux 和 Windows 上工作)?


[免责声明:我是 wxHaskell 维护者]

两者都是稳定且相当完整的 GUI 绑定,您可以放心地为大多数项目选择其中之一。两者都具有某种程度的“更高级别”Haskell 绑定,但在这两种情况下,您都需要投入相当命令式的“C”风格编码才能完成任务。我的印象是,wxHaskell 允许您在更高级别的绑定上花费更多的时间,但我没有做太多 GTK2HS,并且无论如何,您肯定会发现自己在这两个库的包装器的薄端工作 -我认为这两种情况下的整体编程“复杂性”是相似的。

因此,让我们以基本功能为给定,并专注于差异。请注意,我真诚地相信 GTK2HS 是一款出色的作品,如果您选择它,您会感到高兴。我下面所说的大部分内容都是个人对这些差异的看法,以及为什么我选择自己从事 wxHaskell 工作。

GTK2HS 有一个更大的团队致力于它,并且发布得更频繁。 wxHaskell 更新不那么频繁,但核心团队很活跃,并且定期进行错误修复,但主要新功能的添加速度比我们希望的要慢(我们都有日常工作)。

wxHaskell 在所有支持的平台上提供真正的本机应用程序外观,开箱即用。当然,GTK2HS 在 Linux 上是原生的,并且在 Windows 上有一个相当好的原生主题(即足以满足除学究之外的所有人......),但在 OSX 上具有 GTK 外观和感觉,并且依赖于安装了 X11。我相信 OSX“原生”GTK 库正在开发中,但被认为相对不成熟。一旦稳定,GTK2HS 应该能够轻松受益于相同的“部分原生”外观和感觉(例如GTK OSX 屏幕截图 http://developer.imendio.com/sites/developer.imendio.com/files/screenshot-gimp.png).

如果您不在 Linux 上,wxHaskell 可能更容易构建(如果您托管 Linux,则 GTK2HS 可能更容易),但老实说,构建两者都相当复杂,因为这两种情况都存在大量依赖项。

分发基于 wxHaskell 的应用程序稍微容易一些(恕我直言),只是因为它具有较少的库依赖性。我在 Windows 上主要使用 InnoSetup 来分发应用程序,在 OSX 上则作为应用程序包来分发。我承认,只需要少量的额外工作,GTK2HS 就可以完成同样的工作,所以这可能是支持 wxHaskell 的最弱论据。

我个人认为 wxHaskell 对闭源(例如商业)开发更友好。当然,这是无休止的争论的主题,所以我只会说 wxHaskell 是在wxWidgets 许可证 http://www.wxwidgets.org/about/newlicen.htm这明确地允许闭源开发。 GTK2HS 是 LGPL,所以你需要询问你的律师 - 尽管我必须明确指出,许多人和公司已经得出结论,LGPL 与商业开发兼容;我工作的公司的律师得出的结论是,这不适合我们的项目。

我认为如果 Linux 是我的主要开发和交付平台,我可能会使用 GTK2HS。然而事实并非如此:我主要交付给 Windows,偶尔也交付给 OSX,并且我认为 wxHaskell 更适合这些平台,尽管这两个选项都支持所有三个平台。

我希望这对您的选择有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wxHaskell 和 Gtk2HS 的相对优点是什么? 的相关文章

随机推荐