bluGill 5 days ago

We will never be past that is there are tradeoffs in implementing things. Safety was brought out in other comments, but there are others. In some cases a slower algorithm will be faster in the real world because it is more CPU cache friendly (depending of course on what N is, but often N is small enough). In some cases you can accept a less precise answer - thus making your algorithms faster.

For most of us, in most problem spaces, the above doesn't matter and so the standard library is good enough. There will always be those who correctly have a need that is strong enough to be worth building their own standard library though.

1
ryandrake 5 days ago

Whenever I've worked for a company that decided to re-implement all their own strings and containers, I'd always try to suss out whether they actually did it for one of those actual good reasons, or if they were just cargo culting someone long ago who once said "STL BAD IT'S SLOW" and that was all it took to convince them to write 20K lines of unmaintainable and unnecessary OurString OurVector, and OurList crap. So far, I've never found one place who knew why they reimplemented all that stuff. I do know one person who works in games whose company actually had a good reason to do their own containers, but these cases are rare.