Many articles in Internet say that singleton is an anti-pattern, because it makes debugging more difficult.
However I don't understand why debugging a program with a singleton object is difficult. Please explain.
I think that singletons are inevitable, when we need (usually for performance reasons) lazy initialization of a controller object. Or are there any other alternatives?