I understand this or that omission in given language — not enough resources, somebody was not bitten by specific error, but it is strange when you see on multiple occasions a guideline which goes against software safety. Consider such code:
def foo() Int if x > y then return 17; end return 44; end
Such code is legit in every language I know, what’s more it is advised way to write according to Mozilla guidelines and Go as well ¹. I admit it is more pleasing for the eye than version with added explicit `else
`, but when it is time to refactor the code it is way too easy to make a stupid mistake like this:
def foo() if x > y then my_flag = 17; end my_flag = 44; end
I noticed it because I was hit by it — you don‘t have clear mind all the time. And since Skila is designed to prevent exactly this kind of errors (“stupid mistakes”) I am about to add not even an opposite guideline, but simply a check — any flow interruption instruction has to be followed with `else
` branch. Safety first.
¹ Read more: “No-else-after-return” considered harmful, Effective Go.