4 ms·
Sure it's clever but adding language features just to say "look what I wrote, it's clever is no excuse for building a language that's become a train wreck. Act
by rualca 6y ago
Sure it's clever but adding language features just to say "look what I wrote, it's clever is no excuse for building a language that's become a train wreck.
Actually, the rationale behind the language features you're criticizing is that people in the real world were already using some techniques in C++ in a needlessly complex and convoluted way, and these new additions not only simplify these implementations but also allow the compilers to output helpful, user-friendlier messages.
Take concepts, for example. You may not like template metaprogramming, but like it or not they are used extensively in the real-world, in the very least in the form of STL and Eigen. Template metaprogramming is a central feature of C++ consumed by practically each and every single C++ developer, in spite of rarely producing code them. Does it make any sense at all to criticize work to improve a key feature that benefits each and every C++ programmer, in spite of not having to write code with it?
And no one of sane mind would argue in favour of shoehorning #include and #ifndef/#define in detriment to a proper module system.
Just because you aren't familiar or well-versed with some C++ features, or aware of how extensively they are used, it doesn't mean they are not used or that the stuff you don't know automatically qualifies as a trainwreck.
- mianos 6y agoUsed have used C++ templates every day of the week for at least 15 years.
- rualca 6y agoIf you really did any serious work writing template metaprogramming code, or were aware of what happens under the hood with libraries that were developed with it, you wouldn't be criticizing recent contributions to improve it's UX, for both developers and library/module consumers, as a trainwreck.