[Haskell] AJAX applications in Haskell

Pasqualino 'Titto' Assini tittoassini at gmail.com
Wed Aug 9 06:28:52 EDT 2006


Those among you who have an interest in AJAX-style web development - that is
to say the development of web applications that run entirely into the
browser environment, calling back to the server back-end only to get raw
data -- will probably have noticed the recent appearance of the Google Web
Toolkit (http://code.google.com/webtoolkit).

The main idea behind it is very simple: you write your Ajax application in
Java and your code is compiled down to JavaScript/HTML (rather then to Java
Virtual Machine bytecode) so that it can be executed in any browser.

The main advantages of this solution are:

- Development using a typed language with good compile-time checks and
debugger support 

- No plugins (e.g. a Java VM) required on the user machine

The disadvantages are:

- An additional compilation step

- Probably, a significant loss of performance with respect to hand-written

Assuming that the balance is positive, this naturally raises the question:
why not doing the same with our favourite language?


This would require to:

- Retarget one of the existing Haskell compilers to generate JavaScript
(other possible targets would be Flash or higher level UI languages such as
OpenLaszlo that in turn compiles down to either Flash or JavaScript/HTML)

- Write a suitable runtime library (including support for native JavaScript
or Flash UI components, remote method invocations, multi-threading, etc.)

- Port a usable subset of the Haskell Libraries

- Select an approach to write user interfaces in Haskell. There have been
many attempts in this direction but I am unsure if any of them has proven
particularly successful.


All considered, quite a significant amount of work -- that would require a
concerted group effort -- with a rather uncertain pay-off.

Is anyone working on anything similar or that might be interested in such a

And has anyone any thoughts to offer on what compilers/libraries/UI
frameworks would be more suitable for the task?


       titto assini

More information about the Haskell mailing list