I agree with the characterization of Scala's generics as complicated, but I disagree that that ends up making its static typing unpleasant or day-to-day programming difficult. Type inference is a big win, and other language features add enough that I find myself not reaching for generics for my own code anywhere near as often as I did with Java. Aside from the occasional container type missing from the standard API, I just pretty much don't use generics in Scala except as a consumer, and I don't miss them.