My favorite is still the Dualshock 3. Works mostly out of the box in Linux (you need to tweak a setting in the bluez config as of somewhat recently). I haven’t tried making them work on Windows in well over 10 years but from what I can see Steam has special support for them, otherwise you need a standalone driver. Can’t say anything to how comfortable they’d be with your hands however :P
They made that and it’s called pure functional programming. Take a look at Haskell