Red-black trees are pretty much terrible for performance as well. I spend most of my work days trying to eradicate std::map and std::set for performance reasons.
Academics are always concerned about bounds, but practitioners are always concerned about cache misses.
Academics are always concerned about bounds, but practitioners are always concerned about cache misses.