[Haskell-cafe] Summer of Code idea: Haskell Web Toolkit

Heinrich Apfelmus apfelmus at quantentunnel.de
Thu Mar 8 14:58:58 CET 2012

Chris Smith wrote:
> My first impression on this is that it seems a little vague, but
> possibly promising.

My impression is also that this project proposal is rather vague. The 
general goal "Haskell as client-side language for websites" is clear and 
worthwhile, but I can't tell from the proposal whether the project will 
succeed or not, or, more importantly, *what* it will succeed at.

The way I see it is that a successful GSoC proposal has to embody four 
key points:

1. One specific goal - "I want to compile Haskell to JS via UHC's backend"
2. in a larger context - "as a step towards Haskell as a client-side 
language for websites."
3. that is accompanied by a successful example - "To demonstrate that 
this works, I will write a small Asteroids game with HTML5 and Haskell"
4. and that others can build upon - "Moreover, I want to make it really 
easy for others to use the Haskell->JS compilation from cabal."

The last point is extremely important: you don't want to build a hobbled 
prototype that languishes in a dark corner of github, you want to build 
a great software that changes the world by solving an important problem 
and making this solution really easy to use!

Alejandro, your proposal mentions several different specific goals, each 
of which can be the basis for a successful GSoC project:

* Make UHC's Haskell->JS compilation easy to use.
* Design combinators for DOM manipulation in functional style, f.i. 
zippers. Note that this goal does *not* involve running Haskell on the 
client-side, the focus is solely on the design of combinators. This 
means that you'd have to use another example, for instance XML parsing. 
Of course, the idea is that this can be reused when someone else manages 
to run Haskell on the client.
* Design combinators for "remote procedure calling" via HTTP/AJAX. 
Again, there is no Haskell running in the browser, the showcase would be 
two Haskell processes that communicate with each other via HTTP/AJAX.

Each of these goals is a tangible improvement on the status quo and 
specific enough to be completed in a single GSoC project.

Of course, the one specific goal is not supposed to be a limit, it is 
meant to be a foundation. If there is time remaining, the student is 
free to work on whatever he dreams of. By all means, don't hesitate to 
reach for the sky, but help us climb to the tree top first.

Best regards,
Heinrich Apfelmus


More information about the Haskell-Cafe mailing list