Path: utzoo!utgpu!attcan!uunet!husc6!cmcl2!rutgers!bellcore!faline!thumper!ulysses!andante!alice!bs
From: bs@alice.UUCP (Bjarne Stroustrup)
Newsgroups: comp.lang.c++
Subject: Re: Standards For C++
Summary: ``levels'' is a truly bad idea
Message-ID: <8233@alice.UUCP>
Date: 23 Sep 88 12:59:14 GMT
References: <255@itivax.UUCP> <6590064@hplsla.HP.COM> <275@itivax.UUCP>
Organization: AT&T Bell Laboratories, Murray Hill NJ
Lines: 26



I think that having several ``levels'' of C++ language features is a
truly bad idea. Essentially, all the features added to C++ since the
book or under consideration (e.g. multiple inheritance, parameterized
types, and exception handling) are there to help build better and more
general libraries.

For economic reasons library providers would feel oblidged to produce
libraries for the lowest level of the language (to reach the greatest
number of users) and such library interfaces would have to be expressed
in the lowest ``level'' features. This would be a great disservice to
all users, not least the novice and casual users.

We already have this problem because you could consider C as ``level -2 C++''
so there is a great insentive to provide libraries that are common to
C and C++. This implies that no classes, no overloaded functions, etc.
may appear in the interfaces to those libraries. Yuck! Alternatively,
there can be different interfaces from C and C++ but even this can
seriously compromise the elegance of the C++ interface and bias the
design and programming style.

We will also get the problem repeatedly as we ramp up to the total set
of facilities from the set available now. However, I think this will be
manageable.