Earlier quoted context omitted.
> I switched from scala to python and oh man what a relief. I did a bit of Python, then did a bit of Scala, and now do both at work. Oh what a pain Python is! And what a joy Scala is! > Way too many theoretical concepts, monads, monoids , isomorphisms ect that make you feel stupid. Concepts are theoretical in their nature, aren't they? Perhaps these concepts are useful and you just haven't yet found out why? Wrt feel…
> Perhaps these concepts are useful and you just haven't yet found out why? Or maybe they are not that useful? If they were really that useful we would see those concepts everywhere.
monads : stuff which kind of encapsulate other things, but you can still nicely manipulate both the thing and the stuff. Let's say, lists.
monoids : set of things where you kind of can add one to another. Let's say, numbers
isomorphisms : functions where there is exactly as many outputs possible than there are possible inputs. Let's say, adding 1 to a number. It's kind of useful knowing whether or not a function is an isomorphism (hello, hash collisions !).
Those concepts aren't specific to any programming language in fact, and are in fact everywhere. You just don't need to explicit them to use them, expliciting them is an option (even in Scala) which allows you to do meta manipulations on them (which Scala doesn't require, and doesn't even really suggest since none are part of the standard lib).