Standards For C++

Eric S. Raymond eric at snark.UUCP
Fri Sep 23 13:23:24 AEST 1988


In article <6590064 at hplsla.hp.com>, jima at hplsla.HP.COM (Jim Adcock) writes:
> Alternately [or in addition to], it might be nice if the 
> various compiler camps could come up with agreed upon definitions
> of various "levels" of the C++ language so that we could 
> know what major features of the "C++ language" are going to
> be available to us when we buy a particular vendor's
> compiler.  

Aaaargh! Back! Back! <raising silver crucifix>

Some bad ideas there are that refuse to die, that rise out of unquiet graves
to trouble us long after we had thought them dead and gone. This particular
revenant had its gory fingers deep in the self-destruction of PL/1 and the
petrification and slow death of Pascal, and even as we speak menaces the
IEEE POSIX standard.

Yea, I myself bore a torch and pitchfork against it the last time it threatened
net.humanity; it possessed an otherwise estimable gentleman named Rahul Desi
and attempted to worm its grisly way into the C standards process.

Hear now the grisly tale of its depredations. In PL/1, there was this idea
of 'subsetting'; the standard allowed lots of orthogonal binary choices about
the semantics and implementation (or non-implementation) of various constructs
and (especially) data types.

The result? At first, a chaotic mess that drove strong programmers to fits of
madness and their managers to despair. Later, least-common-denominator
compilers that didn't support *any* of the competing options -- because it had
been learned, at the cost of the Gods alone know how many man-hours, that
nonportable 'features' amounted in the end to little more than a snare and a 
delusion even in single-vendor (IBM) environments. And for this among many
other reasons, PL/1's dominion has dwindled to a ragged and remnant few.

During the Pascal standardization push of the early '80s this fell creature
re-manifested in a subtler and more insidious form -- as the idea of ISO Pascal
'levels' 0 and 1. Once again evil bestrode the earth; no attempt was made to
exorcise ISO-incompatible versions of the 'Level 1' features, so portability
was never obtained for the semantics ISO had blessed. After a time, all the
old limitations of Level 0 became once again the lot of weary programmers. And
all know how Pascal has since been brought low from its once-mighty repute,
reduced indeed to a toy for weekend PC hackers.

Even as we speak, the necromancy of lazy vendors has once again conjured this
fearsome lich into the demesne of the IEEE P1006.1 committee. A righteous
few persevere in opposing it, crying "One standard! No options! No crippling!".
It is by no means certain that they will prevail; and if they do not, POSIX
will surely become but a twisted and shrunken grotesque of what it might have
been.

Therefore: as you value your very soul, call not upon the "levels and subsets"
monster, but seek to slay it with all the strength of your wit.

Let's kill it *dead* dead this time, huh guys?



-- 
      Eric S. Raymond                     (the mad mastermind of TMN-Netnews)
      UUCP: ...!{uunet,att,rutgers}!snark!eric = eric at snark.UUCP
      Post: 22 S. Warren Avenue, Malvern, PA 19355      Phone: (215)-296-5718



More information about the Comp.lang.c mailing list