Well, it seems that you answered your questions with your first list of reasons.
Is there a solid, logical reason to never use alert?
When debugging sites? Yes, never use alert()
.
Never, ever? Maybe too far. But, for most users alert()
brings about anger and frustration. I've never been to a site where I was glad they interrupted my visit with an alert dialog box.
Does the increased value of console.log()
truly reduce the value of alert()
so drastically that it goes from "useful in limited scenarios" to "bad".
In the context of debugging applications I agree, alert()
is bad. I can supply much more information in a console.log()
, an entire JavaScript object that details a lot of information. There simply isn't as much flexibility in messages displayed in an alert box.
What do you say to someone who wants to use alert() in a brief test where logging is not setup and any side effects are irrelevant (think tutorials or quick prototypes)?
It really isn't that much harder to type console.log()
as compared to alert()
. You get much, much more useful information and you're priming your coding "muscle memory" for good practices. If you use good practices all the time they will come naturally to you. If you use bad practices all the time they will come naturally to you too.
Ultimately though it depends on what you are doing. Are you debugging? Or are you trying to communicate to the user? These are two different things that require different approaches.