As someone who likes his debugger, I am not sure this debate is cut and dried. I still use printing fairly often, printing predictably works every time and is built in to every language. It also typically has much less of an observer effect than attaching a debugger.