There are quite some applications in LaTeX, that are based on
the possibility to redefine a primitive command, e.g.
\shipout is redefined in various packages (atbegshi, everyshi,
pdftex.def for background color, ...).
Another application is debugging, e.g. \special is a candidate,
that can be redefined to print its contents to the .log file
additionally.
All these wouldn't be possible, if \(pdf)primitive was used.
i assume that if the core engine uses \primitive\shipout that it doe
with a purpose; actually the core should provide a proper way to
overload its behaviour then; i woul dnot be surprised that when packages
overload primitives, that when users load several in (an arbitrary)
order, problems show up anyway
As example, you got lucky with \formatname: LaTeX uses \fmtname,
quite close already, I would say.
normally when choosing a new name, a scan on the tex live tree is done
The point is that there is software written at a time with
a known set of command names from the engines.
Now the engines evolve further and introduces new command names.
This can lead to name clashes, because the engine developer
cannot know all software that is based on the engine to avoid them.
Prefixing helps to reduce the probability of such name clashes.
With reserved prefixes they can even be avoided.
as said ... latex can start with a truckload of
\let\reservedlatexprefixsomethingnew=\somethingnew
or even \luatexprimitivesomethingnew=\somethingnew if it wants.
this can be done even for older ones; that keeps the engine clean and
puts the burden on the macro package (as it should)
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------