user interface - Using ZeroMQ for cross platform development? -


we have large console application in haskell have been charged making cross platform , adding gui.

the requirements are:

  1. native-as-possible , feel.
  2. clients windows , mac os x, linux if possible.
  3. no separate runtime install.
  4. no required network communication. haskell code deals sensitive information cannot transmitted on wire. reason isn't web application.

now, real reason question explain 1 solution i'm researching @ moment , solicit reasons i'm not thinking of make bad idea.

my solution native gui. winforms on windows, cocoa on mac os x, , gtk/glade on linux, handles presentation. write layer on top of haskell code turns responder messages , ui using zeromq handle messages , maybe protobufs serializing data , forth. native application start start daemon of magic happens, , send messages , forth.

aside making sure daemon accepts connections application started it, , challenge of providing right data , forth advanced gui elements (i'm thinking table views, cells, etc.), don't see many downsides this.

what not thinking makes bad idea?

i should mention @ first glance going go gtk on platforms. problem that, while it's close, , gtk , glade support haskell nice work with, result doesn't 'right'. it's close, not native enough in subtle ways make solution unacceptable people happen writing check work.

also, issue of multiple platforms , multiple languages gui isn't problem i'm not looking other ways solve problem unless simplifies interop haskell code.

then write layer on top of haskell code turns responder messages , ui using zeromq handle messages , maybe protobufs serializing data , forth.

i think is reasonable (a client/server model, client happens native look-n-feel desktop app). (i have no strong view protobufs versus e.g. json, thrift).

the haskell zeromq bindings getting use now, too.

what not thinking makes bad idea?

how tested zeromq on windows , mac? fine, i'd check.

the problem that, while it's close, , gtk , glade support haskell nice work with, result doesn't 'right'.

does integration package there?


Comments