Insightful article on Java Generics from Ken Arnold. I like the idea of a "complexity budget". I have certainly been involved with projects where I wish the design complexity could have been quantified and budgeted. As far as generics go, my own view is that there are a limited number of use cases for writing generic code. Generics may possibly help simplify some complex design pattern implementations. I can only see, at least for now, a limited number of common patterns expressed generically. Trying too hard to leverage a "one size fits all" approach to programming will lead to the production of more complex and sloppier code. To developers who are considering using generics - please use sparingly!