Title: On rock climbing and C pointers
Date: 2019-05-01 18:20

To do rock climbing, you usually need a couple of things:

- two people;
- two [harnesses](https://en.wikipedia.org/wiki/Climbing_harness);
- a couple of [quidraws](https://en.wikipedia.org/wiki/Quickdraw);
- a rope;
- a [belaying device]( https://en.wikipedia.org/wiki/Belay_device).

As a kid, I learned to belay with my uncle, with a [HMS](https://en.wikipedia.org/wiki/Munter_hitch)
and a [figure eight]( https://en.wikipedia.org/wiki/Belay_device#Figure_eight ):
those were the common solutions at that time, beside the super-ghetto hip-belaying.

Later, as I climbed with schoolmates, we belayed each other with 
[tubular/plates devices](https://en.wikipedia.org/wiki/Belay_device#Tubular_devices),
since they're super-lightweight, affordable, useable on two ropes (rappelling on two strands!),
fitting on large scale of ropes diameters…
I think that one of us had a
[grigri 2](https://en.wikipedia.org/wiki/Grigri_(climbing)), which, released in 2011, were pretty new
at that time. The auto-blocking feature didn't inspire a lot of confidence,
especially after [Petzl's recall](https://www.petzl.com/security/sport/recall-grigri-2)
of some devices. So we didn't rely on it very much, and the device was mostly used by
beginners to belay climbers who were [top-roping](https://en.wikipedia.org/wiki/Top_rope_climbing).

A couple of days ago, I went climbing with some coworkers of mine. We had only
one rope, so a single belaying device was required. I suggested to use my
*tubular* one, and was told that we were going to use a
[grigri](https://www.petzl.com/GB/en/Sport/Belay-devices-and-descenders/GRIGRI-PLUS)
instead.

A familiar conversation ensued:

- What is wrong with my tubular device?
- It doesn't autoblock, the grigri does.
- It does autoblocking when you're belaying from above. Moreover, I'm not sure
	I trust the autoblocking feature, last time I tried a grigri (a dozen years
	ago), it didn't work very well. Why do you need autoblocking anyway?
- Because people are doing mistakes.
- It's just a matter of using your device correctly and paying attention. Also,
  you can't do everything with a grigri: it can only be used on a single
	rope of two different diameters, and you can't easily do rappel with it,
	belaying someone from above is terrible, …
- We only have a single rope, and we won't belay from above today.
- But because of the autoblocking, it's tedious to give rope when the climber
	is cliping quickdraws.
- It's a simple matter of habit, and even if it wasn't, it's a small price to
	pay for automatic blocking.

It took me quite some time to actually trust the autoblocking feature, to
understand how I was supposed to give rope, to lose my tubular/eight figure
reflexes, and to quit mumbling grumpily on why the grigri isn't powerful enough
and that climbing with a playschool toy sucks the fun out of belaying.

How often has this conversation/thought process been witnessed in
the software development/security world? Those are almost the same *arguments*
usually used when it comes to C versus *safer* programming languages:

- I don't trust this new memory-safe language.
- I've always been using C and it's great.
- C isn't dangerous, you just have to use it carefully.
- Even if it's completely unneeded in this case, you can't do this and that in
	this memory-safe language, while in C you can.
- I'm used to C, and I don't know the ways of this new language that aren't looking
	like idiomatic C, so I will loudly complain about the differences and will try
	to write C-like code as much as possible.
- What about the performance impact? C might not be safe, but it's super fast,
  even if it would make perfect sense in the situation to trade a small amount
	of speed for a lot of safety.
- Those cool kids with their fancy languages are paying less attention to what
	they're doing: with C, you need to be always fully aware of what's happening,
	otherwise everything will explode, meaning that C code is written way more
	carefully.

For someone that is quick at yelling "Thou should'st better hast a good
reason for using the naughty-but-powerful C language for thy project" at people,
this was an enlightening revelation.
