Part of the reason that Result
was kept out of the standard library so long is because it's duplicative of throws
, which causes confusion. Result
was also primarily motivated by asynchronous code patterns that we knew could be subsumed by an async
analogue to throws
in time. But we also knew that "in time" was going to be several years, and having numerous Result
re-implementations in the ecosystem.
async
/await
may only have come up for formal review two weeks ago, but this approach to solving the problem has been around in the Swift community for ~4 years.
Doug