Thanks for your support. I would really like to do this but 1) the talk is tomorrow evening and 2) I do not have time in the interval to learn yesod and/or gloss enough to be confident that I will not botch anything in a 5 minutes time frame.

I did recently a 2-hours long talk with same purpose (introducing Haskell to an audience of mixed-level Scala programmers), using some code to produce sound and music, up to a web server for generating wav files from "scores", and I had to make giant steps in the last 15 minutes to get to the web stuff. There was a lot of questions right from the start on various "strange" aspects of the language : type inference, laziness, generalized tail recursion, monadic I/O, point-free definitions and I barely managed to keep some time to show how easy it is to write a web server with simple HTML combinators (I discovered miku in the process).

I timed myself on the menu problem and I am a little bit under 5 minutes, given I want to explain quite a few things in the process: what you can do with lists, what you can do with pairs, how to simply generate all the combinations of elements of a list, how to map a function on list, how to use list-comprehensions to integrate everything into a concise form and how to avoid combinatorial blow-up through laziness.

I also would love to have the time to show some cool concurrency stuff following your suggestion. I will try to pack this tomorrow.

Thanks a lot again for your advices,

Arnaud

2012/2/28 Ertugrul Söylemez <es@ertes.de>
Arnaud Bailly <arnaud.oqube@gmail.com> wrote:

> Thanks Yves for your advice. And I agree with you that too much
> laziness may be mind-blowing for most of the audience, yet this is one
> of the characteristics of Haskell, whether or not we like it and
> whatever troubles it can induce.
>
> I really think the knapsack is simple, not too far away from real
> world and might be demonstrated with live code in 5 minutes. I will
> have a look anyway at more "spectacular" stuff like gloss or yesod but
> I fear this is out of scope.

Gloss is definitely not out of scope.  It is to simple 2D graphics what
Yesod is to web applications.  I write two-minutes visualizations using
it all the time.  Of course if you want to show something great, you
shouldn't fear learning it first.

Also showing the language features, despite their greatness, makes
people go like:  "Ok, that's great, but I can do it in my language using
<insert control construct here>".  If you really don't want to go for
something amazing like Diagrams, Gloss or Yesod, I really suggest at
least bringing the run-time system into the game.  Show concurrency, STM
and parallel evaluation.  Show how you can write a full-featured finger
server in five minutes that is fast, secure and amazingly readable.
Something like that.

Math problems amaze Haskellers, not programmers in general.  Show how
Haskell solves practical problems, for which there is no simple solution
in more common languages.  Don't show why Haskell is also good.  Show
why Haskell is /a lot better/.


Greets,
Ertugrul

--
nightmare = unsafePerformIO (getWrongWife >>= sex)
http://ertes.de/

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