¿Por qué los genéricos a menudo usan T?

¿Hay alguna razón para el uso de 'T' en genéricos? ¿Es algún tipo de abreviatura? Que yo sepa, todo funciona. Por ejemplo

public G Say<G>(){ ... }

o incluso

public Hello Say<Hello>(){ ... }