STL (C++)
La bibliothèque qui a prouvé que conteneurs et algorithmes pouvaient être entièrement séparés — et fait entrer la programmation générique dans le courant dominant.
Alexander Stepanov cherchait depuis vingt ans comment écrire un algorithme de tri une fois pour toutes et le faire tourner sur n'importe quoi. Avec Meng Lee chez HP, il a présenté la Standard Template Library au comité C++ en 1994, et elle a été adoptée dans la norme de 1998. L'idée porteuse : les algorithmes ne savent rien des conteneurs, les conteneurs ne savent rien des algorithmes, et les itérateurs forment la fine interface qui les relie.
C'est pourquoi std::sort fonctionne sur un vector, sur un tableau C et sur toute structure maison exposant la bonne catégorie d'itérateur — sans héritage, sans appels virtuels, tout étant résolu à la compilation. La facture est arrivée dans les messages d'erreur : une seule incohérence de types pouvait produire plusieurs pages d'instanciations de templates, un problème que seuls les concepts de C++20 ont vraiment atténué.