An engine that doesn't leak any fluids doesn't really need frequent cleaning. I have used a high pressure hose at a car wash under my hood judiously, I'm not aiming for anything on top of the motor; I'm rinsing off the mud splashed up from driving on gravel (muddy) roads to job sites in the middle of nowhere; and I've done this with the engine running.
What else I have done to the top of the motor is to use a pump type plastic garden sprayer with a strong solution of Dawn dish soap followed by a high pressure rinse at a car wash, but I'm not dumb enough to spray down the alternator, wiring terminals, PCM, air intake, belts & pulleys, etc...My main goal was to remove excess grease, oil & accumulated dirt prior to replacing gaskets or intake parts.
I also think it is a good idea to use a shop vac to pick up debris (leaves, dead bugs, loose gasket material, chunks of grease and dirt) on top of the engine prior to opening it up for any reason; the most common reason I can think of would be to replace leaking valve cover gaskets. Any debris removed by spray or vacuum is that much less to worry about falling into the engine once it is opened.
I like to keep my engine compartment clean enough to be able to spot leaks right away; but, without leaks, I think it has been close to a year since I've introduced liquid on top of the engine...And now that I'm writing about it, my purpose for cleaning was prior to replacing a leaking upper intake manifold gasket, which GM 3800's are notorious for.
Not meaning to sound arrogant, but if you don't know what a PCM is or what an alternator looks like, I agree with the article that a hose on your engine is not a good idea. “You have a kid with good intentions, a hose and a can of degreaser. And then cars won’t start.”