Qu'est-ce qu'un type brut et pourquoi ne devrions-nous pas l'utiliser?

Des questions: Quels sont les types bruts en Java et pourquoi j'entends souvent dire qu'ils ne devraient pas être utilisés dans le nouveau code? Quelle est l'alternative si nous ne pouvons pas utiliser de types bruts, et comment est-ce mieux?