Comparing the C++ Standard and Boost
Nerval's Lobster writes "The one and only Jeff Cogswell is back with an article exploring an issue important to anyone who works with C++. It's been two years since the ISO C++ committee approved the final draft of the newest C++ standard; now that time has passed, he writes, 'we can go back and look at some issues that have affected the language (indeed, ever since the first international standard in 1998) and compare its final result and product to a popular C++ library called Boost.' A lot of development groups have adopted the use of Boost, and still others are considering whether to embrace it: that makes a discussion (and comparison) of its features worthwhile. 'The Standards Committee took some eight years to fight over what should be in the standard, and the compiler vendors had to wait for all that to get ironed out before they could publish an implementation of the Standard Library,' he writes. 'But meanwhile the actual C++ community was moving forward on its own, building better things such as Boost.'"
You are 100% correct Boost is bloated and over-engineered.
Take a look at the CRC mess in Boost. Over a 1,000 lines of crap. Oooh, you can generate it for any CRC polynomial. Big Freakin Deal ! I want code that is fast, easy to read, easy to write.
Meanwhile us C/C++ guys follow the KISS principle.
Ever Since 32-bit CPUs have become commonplace there is a tendency for programmers and designers to include everything AND the kitchen sink. This is the biggest tragedy in programming.
High-Level languages suck because they are a) verbose, b) Jack of all trades Master of none.
The root problem is that C++ is over engineered. I love a _pragmatic_ approach -- the balance between C's minimalism (and lack of type safety) and C++ bloated design.
Having worked on a popular professional C++ compiler it was interesting because I didn't have to deal with the clusterfuck of the C++ grammar.
There are many problems with C++ that the designers and committee continue to ignore. There is that old C++ joke.
There are two problems with C++:
* Its design, and
* Its implementation
The biggest problem C++ has is that the preprocessor doesn't understand types and templates are STILL have baked. Every year C++ moves closer to LISP while missing the _simplicity_ of LISP and adding the verbosity of Cobol.
Why do you think LLVM was started? Because the hundred-lines-long C++ error message spew is of the "If you can't dazzle them with your brilliance, baffle them with your bullshit" mentality.
a) Add a PROPER 'alias' and a PROPER 'type-def'
b) a darn STANDARD _Binary_ API so I don't have to worry about which _compiler_ AND _platform_ was used,
c) STANDARDIZE the pragmas
d) STANDARDIZE the error messages
e) Fix the macro language so it is type safe
f) Fix the fricken grammar so that function prototypes (forward declarations) with the end semi-colon can be just be copied / pasted as function definitions.
g) Deprecate and REMOVE that stupid 'short', 'long', 'double' crap from the language
h) Provide PROPER 16-bit, 24-bit, and 32-bit characters
i) Fix the darn grammar so that compilers accept UNICODE source
j) Fix the darn grammar so that compilers RECOGNIZE identifiers WITH Unicode characters
k) Add a proper exponent operator
l) Add a proper wedge operator, along with inner and outer product operators
m) Add proper multiple return types
n) Fix all the times the spec says "undefined" or "implementation dependent". The point of a spec is to SPECIFY what the operations do, NOT to be ambiguous because in some idiotic universe 'char' is not exactly 8-bits.
o) Stop doing automatic up-casts. Give me a _standardize
Please mod Pr0xY's reply up! Seems the OP doesn't really understand what he's talking about.