The same article that you cite has the following statement:
The other kind of Singletons, which are semi-acceptable are those which don't effect the execution of your code, They have no "side effects"
... 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.