9 ms·
I agree entirely that it can be misused. I'm not sure how often it's misused versus used properly. But I don't see why I should give up a useful logic tool just
by nickelcitymario 4y ago
I agree entirely that it can be misused. I'm not sure how often it's misused versus used properly. But I don't see why I should give up a useful logic tool just because others don't know how to use it well?
Let me put it this way: Are there _any_ programming paradigms that don't get poorly used? We need to learn how to use our tools well, not reduce them to banality.
- burke 4y agoOn this note: I’m sad ruby style guides generally ban “and” and “or”. raise(“a long error string”) unless valid This reads much worse, when the string pushes the line near max width, than: valid or raise(“.. Of course it’s another idiom to learn but it’s not a difficult one when used simply.
- klodolph 4y agoThat’s a very Perl idiom, did you previously write Perl?
- burke 4y agoNo, I just think for all ruby is bought into these guard clauses, it's sad that we generally reject the feature that allows putting either the condition or the consequence first, depending on which reads better.
- graywh 4y agothe 2nd form implicitly returns the value of valid if it's truthy and nil if it's falsey; the 1st form always returns nil
- burke 4y agoIndeed, but the return value of a guard clause shouldn't be important!
- micromacrofoot 4y agoI used to work at a garage, and while an impact wrench can be the fastest way to put a tire back on a car, I eventually banned it entirely. Everyone's lazy or overwhelmed at some point, and it made mistakes too easy to make (the problem is that it overtightens the lug nuts because the ease of use removes the proper physical feedback). In situations where you don't have the bandwidth to perfectly educate everyone and enforce rules, sometimes it's easier to limit the toolset. A tire iron can be misused too, but it's a little harder.