The Compat package has its share of problems. One is that it is a direct dependency of some 200 packages, with a variety of compat on its four major versions, inviting to all sorts of issues with held back packages. Another problem is that it commits to type piracy.
Maybe not every feature that could use Compat support should go into a separate package, but for a feature that we want to see widespread use of, it does seem like a good idea.
That’s perfectly fine. Some packages that use it will stop being maintained and keep depending on it forever, without causing any issues at all. Compare that to Compat, which may need to make more breaking releases in the future, where those unmaintained packages may stop being installable together with newer packages due to incompatible compat on Compat.
The only lasting cost of a specialized compat package for @public
is the space of one entry in the General registry and a permanently occupied name. Which brings us to:
Agreed that using up such a general name as Public
for this purpose doesn’t seem great. I propose PublicMacro
.