+1, better cabal support for UHC's JS backend would be a big win.

Daniel

2012/3/11 Jurriën Stutterheim <j.stutterh...@me.com>:
> While I might be a bit biased (I spent a good deal of time working on 
> improving the UHC JS backend), I think there are a lot of opportunities to 
> get Haskell as a client-side language via the UHC, as Heinrich suggested. 
> Alessandro Vermeulen recently wrote an entire front-end application using the 
> UHC JS backend, so we know that it's capable of producing working front-end 
> applications. See also[1].
>
> Currently, however, it is still a bit of a pain to compile larger UHC JS 
> projects, since Cabal support for UHC's different backends is limited. This 
> could be one potential goal for your GSoC project: make it possible to type 
> `cabal configure && cabal build` and find a complete JS application in your 
> dist folder. This would go a long way to make the UHC JS backend more usable 
> and as a result, make Haskell a practical language to use for client-side 
> programming. In solving this problem, you will have to think about how to 
> deal with external Haskell libraries (UHC compiles JS from its internal core 
> representation, so storing pre-compiled object files won't work in this case) 
> and perhaps external JS libraries as well. You would also need to modify 
> Cabal so that it becomes possible to select a specific UHC backend in your 
> cabal files. Ideally, you will only need one cabal file for an entire web 
> application; for both the front-end and backend.
>
> I think this would make a nice GSoC project. The scope of the above should be 
> about right, but if you would be done way ahead of time, there are plenty of 
> relevant related things you could work on (e.g., a UHC JS-specific Haskell 
> Platform-like package). If this sounds interesting to you, let me know and I 
> can send you some more detailed information about the UHC JS backend. As for 
> mentoring, I might be able to help out there, but since the above project 
> would revolve more around Cabal and not so much around the UHC internals, 
> there might be more suitable mentors out there.
>
>
> Jurriën
>
> [1] http://uu-computerscience.github.com/uhc-js/
>
> On 8 Mar 2012, at 14:58, Heinrich Apfelmus wrote:
>
>> 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
>>
>> --
>> http://apfelmus.nfshost.com
>>
>>
>> _______________________________________________
>> 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

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to