On Sun, 9 Jun 2013 11:00:45 -0400
Andrew Hoerter <amh at pobox.com> wrote:
The downside of this flexibility is that the language
ends up as an
unfocused, confused jumble of ideas and features. It's easy to build
a language by tossing in every capability someone asks for without
much thought to how they will interact or whether the end result will
be understandable, but much harder to design from the beginning with a
coherent, consistent set of organizing principles.
There is no single magic silver
bullet. Thats why C++ offers many
different bullets. But C++ itself is no magic silver bullet. It is a
tool with its uses and misuses. C++ is a big and complex power tool,
but a very capable tool for a programmer that knows to handle it.
Unfortunately many wanebes hack C++ and produce mediocre (at best)
code. Everyone can hit a pice of steel with a sledgehamer. But only a
few are capable to forge a double-edged sword.
The C++ standard is so massive
There is
something that adds to this: C++ wants to be as compatible
with C as it can. This is a double-edged sword. It is trivial to
interface C++ to old C code, but it encumbers C++ and sometimes adds
some awkwardness.
that the first thing many teams do is
decide on a subset to use and ignore the rest
Thats stupid in most cases. It is,
well, ignorant.
(also due to historically buggy implementations of
some features).
Implementations improve and once the bugs are shaken out it is time
to
remove any "don't use ..." policies. E.g. I use C++11. At work I still
have to use an old corss-gcc 4.5.something. It lacks some C++11
features, but most of it is there. There are some minor problems in our
old libstdc++, but thats close to cosmetic.
--
\end{Jochen}
\ref{http://www.unixag-kl.fh-kl.de/~jkunz/}