These two statements seem odd. I believe an equally valid argument is that explicit error handling, in its explicitness, makes it easier for novice developers, as they no longer need to model their library function's behavior in their head. However, I believe the most reasonable approach is opt-in explicit error handling.
To use the lingo in the article.
- Should function signatures contain errors? (opt-in, lean yes)
- Should call sites explicitly handle errors? (opt-in)
- Should libraries opt-in to function signatures with errors? (probably yes)
As a client, almost every time, I want my error to bubble. If any step in my golden path fails, with the exception of transient http calls, the entire flow is probably done for. Do my top level functions need to explicitly state their errors? Probably not. Do I want library functions to do this? Probably.
I think this context is important for developer experience. And since I believe this varies on context, I believe function signature errors should be opt-in.