Why the library additions?
Why the library additions?
Posted Jul 8, 2024 13:20 UTC (Mon) by khim (subscriber, #9252)In reply to: Why the library additions? by tialaramex
Parent article: New features in C++26
Rust have very different culture around it. Pure vocabulary crates are created and used there.
C and C++ were created in an era where “what you get from vendor is what you get ever” approach was the norm. And this leads to “nothing non-standard can be used except A
, B
or C
” and additional of D
to the whitelist may take years.
Adding vocabulary types to the standard library is a good idea in that world. If they wouldn't be used by anyone (like auto_ptr
) they can be removed.
Posted Jul 8, 2024 13:29 UTC (Mon)
by quotemstr (subscriber, #45331)
[Link] (1 responses)
Yeah. And it's amazing how sticky the culture you describe is. You see otherwise-brilliant people, conversant in both C++ *and* Rust, declaring that best practice in Rust (using the ecosystem) is poor practice in C++, going so far as to ban even Boost. Both ideas exist in the mind of the same person at the same time but are logically inconsistent and stubborn about it.
Progress in the software world happens only when these people retire.
Posted Jul 8, 2024 13:49 UTC (Mon)
by khim (subscriber, #9252)
[Link]
Isn't that how “otherwise-brilliant people” have an ideas about how that using heavy fur coat is Ok on the polar station, but maybe not the best idea in the middle of day in Egypt? I couldn't see anything inconsistent there. Rust does have mechanisms that allow you to use two different versions of syn to build one binary, but try to link in two different versions of abseil or Boost… I don't think so. You, yourself, have said that they are fine with Rust. It's just an ossification at work: design decisions tend to quickly influence other design decisions and after a very short time you are stuck in a situation where adding something like modules becomes heroic decades long effort instead of “Hey, here's new Turbo Pascal 4.0, go and redo all your code” like that happened in other, more lucky, language. The tragedy of C/C++ world is that it painted itself into the corner because of the use of simple textual include as a modularization tool. Now, to fix that problem one needs to undo so many things that it's not clear whether this would actually happen or if C/C++ would die first. It's similar to introduction of IPv4 vs introduction of IPv6. Some of the same people were involved but what took one day for the former needs couple of decades for the latter.
Why the library additions?
> You see otherwise-brilliant people, conversant in both C++ *and* Rust, declaring that best practice in Rust (using the ecosystem) is poor practice in C++, going so far as to ban even Boost. Both ideas exist in the mind of the same person at the same time but are logically inconsistent and stubborn about it.
Why the library additions?