It's not because it's
unfamiliar that people are objecting; it's because it's suboptimal. Loops are harder to get right (try writing the loop to count down from 100 to 0 inclusive on unsigned ints), and they involve more boilerplate, obscuring the meaning of the code.
I don't think generics are an imperative/functional thing so much as an important feature of any statically typed system.