When it comes to my day job building software I choose opinionated languages and libraries because they limit the choices I have to make which makes me more productive.
But when I'm playing around in my off time I employee alternative ways of doing things with unusual or niche languages so I can explore details in more depth.
Same here. But I find code reuse problematic: people tend to build large libraries with complex APIs and too many options (typically also lacking sane defaults) instead of small, focused code "blocks" that can be well understood and tested and do one single thing very well. It's like having to fasten a nut and being offered 3 types of swiss army knives as your available tools. Same with operating systems, web development frameworks etc. ... Too many options, too little thorough understanding, stable interfaces.
But when I'm playing around in my off time I employee alternative ways of doing things with unusual or niche languages so I can explore details in more depth.