Although it is generally considered good practice to declare variables
with interfaces, not classes, evidence we have collected
suggests that this advice is not thoroughly followed by developers,
not even for large and broadly (re)used code bases. We speculate
that this disinclination is due to two major reasons