Dear Ian,

A comment regarding the GCC-in-C++ idea. In slide 16 you merely answer

  "C++ is too complicated!"

with

  "Maintainers will ensure that gcc continues to be maintainable."

C++ has, for example, 12 different ways to represent or invoke a function.
It has no buikt-in typesafe "enum"s. Sooner or later developers will think
more about
  "should this better be a member function or a static inline function?"
  or "how do I make dynamic_cast work with my enum sets?"
than about the algorithm they want to implement.

How can maintainers ensure this does not happen?

You cannot pick a set of C++ features and say "we will only use these
elementary C++ features, not the complex ones". It won't work because

  1) The compiler forces the developers to use more and more advanced features.
     As soon as you want to use classes, you must learn about inline, const,
     constructors and destructors. People will request that you use namespaces.
     Multiple inheritance is not on your wishlist in the beginning, but you
     will likely use it sooner or later. You can be lucky if you avoid virtual
     inheritance...

  2) Year over year, advanced developers will start relying on even more fancy
     features: templates, exceptions, 'explicit' constructors, Koenig lookup,
     etc. Less advanced developers would like to say "no", but their voice
     doesn't count as much as the voice of advanced developers. So year after
     year, the full set of C++ features gets used.

Bruno

Reply via email to