009 - What are hard things anyway?

When are things hard or when are they merely unfamiliar?

I came across this post which is essentially about how 'hard' Haskell is to learn. Haskell is a programming language, and one with a bit of a reputation for being a bit, say, esoteric and tricky to pick up. In fact, in this particular case, 9 years (on and off) of trying to learn it. I'll quote a little of it:

As a beginner, I'm really struggling with my Haskell relationship. Please read this as a strong encouragement towards making Haskell more accessible, and a discouragement from extending the features of the language.

The poster then goes on to explain some of their difficulties, and then finishes with:

I am starting to wonder if it the language is just too complex to be worth the effort. I am losing heart.

I'm not sure what the way forward here is, but something needs to change. There is certainly a shortage of accessible walk-through documentation for simple modules or simple tasks…

It just seems like the community is far too focused on making more ego-inflating advanced features, and not focused enough on teaching it to others so they can share its advantages.

There is no point in baking a cake if nobody is going to eat it.

So I spun off a little reply, which is probably a bit harsh, but did set me thinking:

This is perhaps a controversial opinion, and I'm sorry if I'm being a little direct, but maybe Haskell isn't the language for you? I mean, why do you want to learn it? If you've been trying on and off for 9 years, perhaps your heart is not really in it, as it seems that you are not really that invested in learning it. You don't have to learn Haskell. Life is short; go do things that you really enjoy!

I feel there that there were some implicit ideas in the poster's post:

  1. That the language had to be learned,
  2. That the language is too hard to learn,
  3. That is was too elite-programmer orientated,
  4. That it was too big and complex,
  5. There's an implicit assumption that Haskell should change to accommodate the poster.

There are many more, but life is short, patience is shorter, and your likelihood of stopping reading more probable. But it's the 'hardness' bit that irritates me. Is "subject X" hard to learn, or is it merely unfamiliar?

I've had this mini-rant before. A language like French is not hard. After-all, millions of people of all levels of 'smartness' speak French all the time. It's not harder than English is for me; it's simply unfamiliar.

But there are 'harder' subjects than others. One's packed full of new concepts, that don't lie close to, or overlap, with the learner's existing known concepts are unavoidably harder than one's where the concepts are already 'close by'.

Of course, some things are hard. Climbing Everest is apparently no picnic, and, no matter how fit you are, an Ironman, particularly the Lanzarote one, is very challenging. There are branches of maths and physics - Quantum Mechanics springs to mind - that are very weird and thus difficult.

But actually none of that really matters. Regardless of whether Haskell is difficult, why should it change to accommodate the poster? You may argue that it would increase adoption, but most Haskeller's, in general, are fairly happy with the language (although it does need a bit of an update, standards-wize) and that it is a playground for esoteric features and experimental language and type approaches.

Personally, I think the poster simply hasn't engaged with the language and spent enough time on it. I suspect they like the idea of being able to write Haskell, but aren't really that interested in putting in the effort to actually learn it. Equally, I'm not a concert-level pianist nor a good tennis player.


I'm publishing this as part of 100 Days To Offload. You can join in yourself by visiting https://100daystooffload.com

Comments are disabled for this page.