[Haskell-cafe] Haskell School of Expression (graphics)

Jerzy Karczmarczuk jerzy.karczmarczuk at unicaen.fr
Mon May 30 10:19:18 CEST 2011

Henk-Jan van Tuyl commenting Andrew Coppin
> ... (about HOpenGL and H.Platform) ...
>> Uh... yes, you might be right about that. However, AFAIK you still 
>> need something with which to create a rendering surface in the first 
>> place. (Not sure if HP includes GLUT...)
> As you can see in the HP documentation at
>   http://lambda.haskell.org/hp-tmp/docs/2011.2.0.0/index.html
> , both OpenGL and GLUT are present.
Or simply download and execute the examples before raising doubts... 
(the Haskell translation of the NeHe tutorials, etc.) No need for 

Now, I have a  personal pedagogical comment.
A few months ago I gave to some 30 students an assignment (a family of, 
with freely chosen variants). A long one, to complete in 2 months or 
more, and the subject was - the implementation, coding and running some 
nice 3D scenes with HOpenGL. I teach Haskell for years, usually the 
projects, which should be "applied" are devoted to some exercices in AI 
/ games, compilation, text processing, graph manipulation, lazy 
numerics, etc., you know the song. This time I decided to propose 
something more visual.

The results? A true DISASTER!
They did "something", all of them, and all their realisations were the 
nec plus ultra of mediocrity... Since my students were as clever and 
laborious as always, and I didn't drink much vodka during this process, 
I asked them what happened? The short "standard" assignments went 
smoothly as always...

The answers (concentrated) were as follows:

The OpenGL bindings in Haskell are hardly "functional".  You make us 
sweat with generic functional patterns, laziness, exquisite typing, 
non-determinism monad, parsing tools, etc., and then you throw us into 
this ugly imperativism ! Nobody liked your assignment, it was no 
pleasure for us, and our results are the consequence thereof. Where is 
Haskell?? Of course, we had to execute the typical syntactic gymnastics, 
but without understanding the functioning of all those "variables", and 
other stuff relevant to the stateful OpenGL engine. Perhaps, if we had 
before a semester of OpenGL, and at least two months of a true 
course/tutorial (not your pseudo-tutorial on the Web...) we could be 
more productive.

That's it...
I don't want to generalize, but there is a huge work to do in this context.

All the best.

Jerzy Karczmarczuk
Caen, France

More information about the Haskell-Cafe mailing list