
On 01/26/2012 11:16 AM, dokondr wrote:
On Thu, Jan 19, 2012 at 1:37 AM, Dag Odenhall
wrote: On Tue, 2012-01-17 at 22:05 +0300, dokondr wrote:
I prefer using Turing complete PL to program web client, like the one
used
in GWT (Java) or Cappuccino (Objective-J). http://cappuccino.org/learn/ In this case you /almost/ don't need to know HTML, CSS, DOM, Ajax, etc. to develop WebUI and good PL lets you concentrate on problem domain instead of bothering about browser support. It is a real pity that Haskell still has no such tools to generate Web GUI in Javascript. (((
Have you seen Chris Done's posts on the subject?
Thanks for the link! (Never seen this before) Ideally, I would be happy to be able to write in Haskell a complete front-end / GUI, so it could be compiled to different back-ends: Javascript to run in the Browser and also a standalone app. In Python world this is already done with Pyjamas (http://pyjs.org/) - "a Rich Internet Application (RIA) Development Platform for both Web and Desktop." Also from Pyjamas site: Pyjamas "... contains a Python-to-Javascript compiler, an AJAX framework and a Widget Set API. Pyjamas Desktop is the Desktop version of Pyjamas Pyjamas Desktop allows the exact same python web application source code to be executed as a standalone desktop application (running under Python) instead of being stuck in a Web browser."
Architecture diagram http://pyjs.org/wiki/pyjamasandpyjamasdesktop/
I wonder if somebody works on similar Haskell "Rich Internet Application (RIA) Development Platform" ? Any ideas, comments on implementation of such system in Haskell? What existing Haskell GUI libraries can be used for a desktop GUI, etc.?
Well, it's basically just proof-of-concept at the moment, and it's not really usable for real applications at the moment, but there is http://hackage.haskell.org/package/dingo-core-0.1.0 http://hackage.haskell.org/package/dingo-widgets-0.1.0 http://hackage.haskell.org/package/dingo-example-0.1.0 The basic client<->server communication, server-side state handling, etc. is there, but it's missing a couple of things before it could be used for real apps: There's no real security, and there are *very* few widgets. The few widgets that exist at the moment are also probably lacking a few operations. On the plus side, it's should be pretty easy to create new widgets. You can get a feel for how the thing looks from an application programmer's perspective by looking at the source for the example.