This document summarizes the past, present, and future of generics in Java and other languages. In the past, generics were added to Java to provide compile-time type safety. Presently, Java generics are commonly used with collections but wildcards are used less. Future areas of exploration include intersection types, declaration-site variance, value types, and unbounded wildcards. The document concludes that generics usage increases in complexity over time as new language features are added.