
This is a great idea! IMO this is also one of the main ways that GUI-based apps are likely to evolve into in the future. Cross-platform GUIs are a pain in the butt in _any_ language (possibly excluding full language platforms like Java/.NET, and I'll bet even those were a nightmare for the original implementors). Mike aditya siram wrote:
Yes Haskell is not strong on the GUI end of things but have you considered turning your desktop app into a web app? I've done this for a few things and really enjoyed the process. Haskell's STM is what makes this so nice.
Basically the you start a Haskell service on port <some-large-number> and make AJAX calls to it from your web browser using a CGI script as a go-between. In my case all data flows back and forth as JSON objects. You could just as easily use XML.
For the front-end I used Qooxdoo [1] , an absolutely gorgeous well-documented Javascript GUI framework but there are plenty to choose from.
This has a couple of advantages, it encourages MVC by letting the front-end take care of UI and the back-end does the logic and holds state. It's easy to deploy- Javascript runs everywhere and so does Haskell (the non-GUI parts anyway!). And it looks uniform across platforms.
The disadvantages include security (but you can always restrict users to localhost), and performance (you probably don't want to visualize gigabyte size datasets in your browser). Additionally you now need to add and configure an extra piece of software, namely the web-server. Also you now have to learn Javascript and add that to the list of things the maintenance programmer has to worry about. But if you can learn Haskell, Javascript shouldn't be an issue. I've found that none of these disadvantages are really show-stoppers.
hth, deech
On 4/2/10, gladstein@gladstein.com
wrote: As a working engineer, one of my greatest frustrations is my inability to use Haskell in the workplace. The unfortunate fact is that my media industry clients use mostly Windows, some Macs, and no linux except for servers. The core system works everywhere, but many contributed libraries don't. GUIs are the big showstopper.
One of the reasons Java won out over Common Lisp is that it had huge libraries. Franz's libraries were superb but few in number. One diehard Lisp user converted his lab to Java because "Java gives you everything you want, for free."
That languages are distinct from their libraries escapes a lot of people; they see each language as a package. I met a COBOL programmer recently (I'm not making this up) that was looking into Java. He didn't see how people could use it, he said, because it had "thousands of commands".
I'll stop whining now.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe