@davetron5000 The answer really is “it depends” 😅
I usually always try to answer these 2 questions first:
1. What's the abstraction? What I actually try to encapsulate and simplify?
2. What would be the best API for that abstraction?
If the abstraction is just a command: do the thing -> report the result, then yeah the 1st option is better imo. But if the abstraction should actually disallow multiple calls, then this option will simply not work. That state has to be somewhere.
@davetron5000 Every new release I try to use Safari as my main browser and every time there’s some bug that annoys me to no end, so I switch back to using Chrome.
The latest bug for me was related to automatic AirPods switching between the phone and Mac. I love this feature and it works for me 99% of the time flawlessly. The 1% percent is when AirPods are connected to the phone and you press Cmd-T to open a new tab in Safari… And no audio is playing… like WHAT???