Hey,
Well they're utility functions meant to be used from near anywhere, which
I've always considered an acceptable usage of static functions.
One of the few places where static does not hurt is in leaf methods. For instance Math::abs. It is still somewhat dangerous to create such methods, since it is quite possible a leaf stops being a leaf. And Html::element certainly is not a leaf method. It is invoking other methods that on their turn invoke more methods, some of which with quite high complexity. And some of which are using global variables or static fields in the Html class. Using this nearly everywhere means that nearly everything is quite dependent on this specific code and its state. The principle that generally components with a lot of incoming dependencies should be more abstract then concrete is also violated here.
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. --