lore-oriented programming: the good, the "meh", and the ugly of haskell tuning

Following my earlier pithy musings on haskell, I thought I would expand the topic matter to accommodate my shallow thoughts on something I only hinted at in that post - namely the dark art of tuning haskell.

disclaimer: before you proceed, remember that this is my personal blog, I do not claim to be a haskell master, and you are not obligated to read anything I write or have an opinion on it. this is not reddit link-bait...if you waste a day discussing this on reddit, that is your own business.

2012-12-03: discussion on reddit

As the title implies, haskell tuning is an art located deep in the recesses of lore-oriented programming. What is "lore-oriented programming"? My own term for any tool whose effective use relies on lore - secrets, legends, things-left-out-of-the-docs, etc. My tool of choice in the 90s - perl, is a classic case of a lore-oriented tool. Implicit variables, default args, default behavior, default coercions, cryptic regexes, tips, tricks and techniques that befuddle the junior programmer and provide job security for those in-the-know. Don't get me wrong - I still love perl, and I'm not at all put-off by its status as a lore-oriented language, but lore-oriented it is.

Haskell tuning is also lore-oriented. You'll find some scattered wiki pages, some long-forgotten threads in haskell-cafe, some stackoverflow posts...all of which constitute the lore of tuning haskell, and almost entirely non-obvious to the average coder. I won't enumerate all of the techniques here - I can't, I'm not a haskell master and it is lore after all. I do offer my thoughts on what I have been exposed to in the past.

Before you proceed, I am fully aware of the fact that haskell was not originally conceived as a performance/efficiency focused tool. I do try to take haskell at face-value, so don't look at any of my criticisms as damning the overall value of haskell as a platform for experimentation. on to the lists...

the good

the "meh"

the ugly

last update 2012-12-02