
My idea would be reusing some of the already-available tools for compiling
Haskell to JS (for example, UHC), and develop with any of them a complete
library for client-side scripting; rather that redevelop a way to compile
Haskell to JS.
I think it's really a pity not being able to use things like what Yesod
provides in a client-side context. And both sides would benefit: they can
share common code for datatypes (as it's done in Google Web Toolkit), and
autogenerate some code for sending or receiving AJAX requests, for example.
2012/3/6 Michael Snoyman
Hi, I'm really looking forward to helping in the Summer of Code, if Haskell goes into it this year (something I take for granted :). I would like to
an idea for a project, and I'm looking for suggestions about whether it's good, should be improved or it's just unfeasible.
My idea is to make a client-side Haskell Web Toolkit, in the spirit of Google Web Toolkit, which would allow to program in Haskell the client
On Tue, Mar 6, 2012 at 11:40 PM, Alejandro Serrano Mena
wrote: propose part of a web application, and would complement the web frameworks already existing for Haskell (such as Yesod and Snap). The point is coming about with a Haskell-ish way to program applications, to reuse all the existing knowledge for our beloved language.
I've added more details in a pre-proposal in Google Docs, available in https://docs.google.com/document/d/1FnTNO9uTobDHRTDXWurKns7vGTjeauw0nRhbtt6v... Tell me if you prefer to see it in other format, but I didn't want to generate a bigger e-mail.
Thanks in advance.
I definitely think the idea has merit. In general I'm wary of solutions which try to compile down to Javascript[1], and I'm not sure if actually providing a full Haskell-to-JS approach is a good idea. Another possibility might be a DSL/combinator library for generating JS. Though at this point, I wouldn't rule out either approach.
Yesod is currently wrapping up its 1.0 release (almost certainly out-the-door by the end of April), and after that our main focus is intended to be client-side integration, so we would certainly be happy to discuss design ideas and collaborate in general.
Michael
[1] I say "compile down to" to mean nontrivial changes, as opposed to something like Coffeescript, which is a fairly simple conversion.