Merely out of interrest: do you think Java would have been a better language if static variables would have been excluded, effectively replacing Singletons with singletons? Definition here.
If you think so: could you elaborate on what motivation there might have been for including it in the language?
The same article that you cite has the following statement:
… and then the article explains about logging. Another typical example is Printing. So that are arguments for Singletons even in the article that calls for “let’s-get-rid-of-all-singletons”.
The argument the author provides is interesting. He states that having global state is the real problem with Singletons, and as long as there is a one-way communication between your program and the Singleton you are in the clear.
And definitively Java would be a worse language if it had no static variables, as it is a feature that is required in several use cases. I mean, you could program in a procedural way in Java if you really wanted… and that is not evil per-se.
The abuse of static variables and Singletons doesn’t necessarily mean that we need to get rid of them.