I haven't heard this concept before, but it is an interesting one.
I immediately recognized that for me, Rust (which I am teaching myself) is a "puzzle language" centered around pleasing the borrow checker. Most of my time I find myself pleasantly enjoying the elegant design of the language and of the libraries written for it. But there is a solid chunk of my time spent knowing exactly what I want to happen and trying to figure out how to express that in a language that prohibits aliasing.
> A critical element of puzzle languages is providing an escape, a way to admit that the pretty solution is elusive, and it's time to get working code regardless of aesthetics.
and my mind immediately went to Rust and the "unsafe" keyword.
I immediately recognized that for me, Rust (which I am teaching myself) is a "puzzle language" centered around pleasing the borrow checker. Most of my time I find myself pleasantly enjoying the elegant design of the language and of the libraries written for it. But there is a solid chunk of my time spent knowing exactly what I want to happen and trying to figure out how to express that in a language that prohibits aliasing.