I'll admit, it's easy in a weak moment to drop a ! and run away. 😅 I think that's one of the main problems; they made it too easy to do just that, without thinking.
Escape hatches are such a funny element of computer programming in general. So terrible yet fairly awesome in some senses. All in all it’s “better” that you “can” ship a quick and dirty solution, but you just shouldn’t do it.
Yeah, re: the discussion with Theodore below, IB outlets are one place where the escape hatch is useful, because the contract that this value will be set when you use it is being fulfilled another way. It probably shouldn't be an absolute 100% never do it, but training a strong bias against it is wise. And maybe some additional guardrails and mindfulness for when you do need to use it (code comments asserting why you believe it's safe, for example).
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.