[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: GCC



On Thu, Feb 19, 2004 at 05:16:53PM -0600, Alan Shutko wrote:
> Mike M <linux-support@earthlink.net> writes:
> 
> > C++ seems to be steaming away in this direction. I've got my doubts
> > that the .h is going away in C however.
> 
> As far as I know, nobody has proposed that the C header files change
> in this way.

I was unaware too until someone in this thread posted that stdlib.h is out
and cstdlib is in.  
> 
> > It seems that this is going to cause more portability problems than
> > it solves.  Code written for advanced compilers will be incompatible
> > with older compilers.
> 
> This has been a problem of C++ for at least a decade.  But at least
> it looks like it's finally getting better now that the standard is
> standardized and compilers catch up.

A decade of C++ becomes deprecated?  How can this be?  I
argue that it cannot from a practical point of view. The body of
existing work is too large to allow drastic change. 

On the one hand we have a
standards committee and eager-to-please compiler maintainers creating
features and requiring us to change existing code to adapt
to the new features. On the other hand we have consumers that require
our code to compile with their compiler that may not support the new
feature.  As a result, code is filled with #ifdef statements.  

Ironically, I've just been introduced to a client's coding standard that
takes a dim view of #ifdef statements.  They think such statements make
the code too difficult to maintain.  I think they just don't have
many portability issues to deal with.

I am not opposed to new features in C++ as long as they are not mandatory.
If the new features are mandatory, then rename the language to C+++ so 
there'll be no confusion.

Back to the case in point - header files.  Why the change?  To support
the namespace feature?  A project as well-known as Mozilla says to not
use namespace because it's not portable.  This is in direct conflict
with the advice that adhereing to standards makes you portable.  Rather,
it seems, what makes you portable is knowledge of how the world really works
and copious testing.  

I've worked in telecom for many years and from that I know that when a 
system becomes very large, you can no longer change the standards on
which it is based.  The costs are too great.  The new must adapt to the
old.

-- 
Mike

Two hundred years ago, we note mischievously, the average American or 
European had a standard of living not very much superior to that of the
average man in India or China. -- dailyreckoning.com



Reply to: