我们在Haskell有一个很大的控制台应用程序,我负责制作跨平台并添加一个gui。使用ZeroMQ进行跨平台开发?
的要求是:
- 本机作为-可能的外表和感觉。
- 客户端适用于Windows和Mac OS X,如果可能,Linux。
- 没有单独的运行时间来安装。
- 没有必要的网络通信。 haskell代码处理非常敏感的信息,无法通过线路传输。这真的是这不是一个Web应用程序的唯一原因。
现在,这个问题的真正原因是为了解释我目前正在研究的一个解决方案,并征求我没有想到的原因,这使得这是一个坏主意。
我的解决方案是一个本地gui。 Windows上的Winforms,Mac OS X上的Cocoa和Linux上的GTK/Glade,它们只是简单地处理演示文稿。然后,我会在Haskell代码的顶部编写一个图层,将其变为使用ZeroMQ来处理消息的UI和来自UI的消息的响应者,以及可能来回序列化数据的protobufs。所以本地应用程序将启动它本身启动所有魔法发生的守护进程,并且来回发送消息。
除了确保守护进程只接受来自启动它的应用程序的连接,以及为高级gui元素(我正在考虑表视图,单元格等)提供正确数据的挑战,我没有看到很多缺点。
我在想什么,这是一个坏主意?
我或许应该提到,乍看之下,我打算在所有平台上使用GTK。问题在于,虽然它很接近,并且GTK和Glade支持Haskell很适合使用,但结果看起来并不“正确”。它很接近,但只是微妙的方式不足以让那些碰巧正在为这项工作写检查的人无法接受这种解决方案。
此外,gui的多平台问题和多语言问题不是问题,所以我不一定要寻找其他方法来解决这个问题,除非它简化了与haskell代码的交互操作。
我用hack-handler-webkit或类似的东西搞砸了很久。它工作得很好。只要有空闲时间,我一定会研究这个。谢谢(你的)信息! – clintm 2011-05-04 23:07:47