[..]
that's the Committee's task to ensure that whatever is *specified* is
/not/ *under*-specified, which usually means "left to the
implementation", and thus breeds incompatibility. So, banish the
thought, it doesn't do you (or anybody else) any good to worry about
things that don't yet exist.
Once they do exists, it will be too late, won't it?
Not really.
First off, the Standard is not set in stone, it's a document that can
and does change. If something in it is not to your liking, convince
enough people and a change can and will be made.
Second, the life is full of trade-offs (surprise!), so if something is
not up to your [personal] liking, you don't have to use it. If it is
your employer that insists on your using something you don't like,
change the employer, et cetera.
Third, let's take some alternatives that are still open to us in some
cases. Let's suppose nothing is standardized. Everything is specific
to the implementation or to the platform. No code is then portable
(unless by accident). Is that viable? I don't think so. Let's now
suppose everything is standardized to a minute detail. The code *you*
write is portable to no exception. You "write once, compile anywhere"
regardless of what you're programming (and I do mean *anywhere* where it
is *already, as of now*, not just on a few choice platforms, fewer every
year). Is it attainable? Probably not. Implementors will have really
hard time with it (harder and harder as we go along). Now, using the
mean value theorem essentially gives us that, if on both ends of the
continuum the values (in this case usability) are 0 (either from
uselessness from our POV or inability to implement a compiler/library
satisfactorily), then either the entire range is useless (no sense to
even attempt specifying anything), or there has to be at least *one
point* in the middle where the value (usability) is *maximized*. And
that is what the efforts are expended to attain. We're trying to find
the best of both worlds, so to speak; not too hard to implement, and not
impossible to use.
Now, with the changing technologies, with some elements of the computer
capabilities becoming more widespread, the target point keeps moving.
And that's why new elements come into view, and admitted to being
discussed. Dismissing them *before ever trying to specify them*, just
based on a notion that, if mistakes are made in the implementation (some
time after the specification has been created), or if when using the
implementations we (even later than the Standard) discover that
something still is not to our liking, is IMNSHO meritless. It's the
same as saying that we shouldn't start on a journey just because there
is a possibility the journey can lead us to our death! What kind of
philosophy is that?
V