Exceptions have been part of Nim from day one and since then have been tamed 
with `.raises` annotations and inference. There is no article justifying the 
design decision because back then it was state of the art. And it still is btw 
because the alternatives are worse.

Performance is not the reason why Nim has exceptions but it is true that a 
specialized language construct can give you some performance benefits because 
optimization is specialization.

> I've found exceptions to be problematic from a spooky-action at a 
> distance/coupling perspective, but I mostly write short-lived CLAs and server 
> apps, where perf tuning is a late-stage concern.

I've found the alternative solutions that people bring up to be much worse. 
Except for the "poison value" design pattern but that's currently not en vogue.

And I say this as somebody who _hates_ exceptions because they are annoying to 
implement and to support.

Reply via email to