Great answer on why to prefer generic programming over pure OOP.