How/why exactly was it hard? AFAICT it was not the least bit. An operator was defined with a superset of the semantics of try!()
(which, being a superset, was just the same initially), then it got stabilized, then people learnt to write new code with ?
instead of try!
and hopefully they gradually rewrote / are rewriting old code. Of course discussion happened around ?
, but not because it wasn't there from the beginning.
There's not much burden in "supporting" the try!
macro either: it's simply not changed and… pretty much that's it. It still works and there's no reason why it would break out of the blue.