El "STL" fue escrito por Alexander Stepanov en los días previos a la estandarización de C ++. C ++ existió durante los años 80, pero lo que ahora llamamos " C ++ " es el lenguaje estandarizado en ISO / IEC 14882: 2014 (y versiones anteriores, como ISO / IEC 14882: 2011).
El STL ya se usaba ampliamente como una biblioteca para C ++, dando a los programadores acceso a contenedores, iteradores y algoritmos. Cuando ocurrió la estandarización, el comité lenguaje diseñado partes de la biblioteca estándar de C ++ (que es parte del estándar de la lengua) a muy asemejarse a la STL.
A lo largo de los años, muchas personas, incluidos autores de libros destacados y varios sitios web, han seguido refiriéndose a la Biblioteca estándar de C ++ como "el STL", a pesar de que las dos entidades están separadas y de que existen algunas diferencias. Estas diferencias son aún más pronunciadas en el próximo nuevo estándar C ++, que incluye varias características y altera significativamente algunas clases.
El STL original ahora a menudo se llama "una implementación de la Biblioteca de plantillas estándar de C ++" (¡bastante al revés al historial real!), De la misma manera que su Microsoft Visual Studio o GCC envía una implementación de la Biblioteca estándar de C ++. Pero la "Biblioteca de plantillas estándar" y la "Biblioteca estándar" no son lo mismo.
La batalla se trata de si la Biblioteca estándar actual debería llamarse "el STL" en su totalidad o en parte, y / o si importa cómo se llama.
Para "STL"
Hay una escuela de pensamiento que dice que todo el mundo sabe ahora que "STL" significa la biblioteca estándar, tal como todos saben que "C ++" es el lenguaje estandarizado por ISO.
También incluye a aquellos que creen que realmente no importa mientras todas las partes entiendan de qué se está hablando.
Es un término que se hace aún más frecuente por la naturaleza de la bestia, gran parte del cual hace un uso intensivo de la función C ++ conocida como "plantillas".
Para "Biblioteca estándar de C ++" (o stdlib)
Sin embargo, hay otra escuela de pensamiento, a la que me suscribo, que dice que esto es confuso. Las personas que aprenden C ++ por primera vez no conocen esta distinción y pueden no notar pequeñas diferencias de idioma.
El autor de ese artículo se ha encontrado en numerosas ocasiones con personas que creen que toda la Biblioteca estándar de C ++ es el STL, incluidas las características que nunca formaron parte del propio STL. La mayoría de los defensores vocales de "el STL", por el contrario, saben exactamente lo que quieren decir con él y se niegan a creer que no todos "lo entienden". Claramente, el uso del término no es uniforme.
Además, hay algunas bibliotecas similares a STL que de hecho son implementaciones del STL original, no la Biblioteca estándar de C ++. Hasta hace poco, STLPort era uno de ellos (¡e incluso allí, la confusión abunda!).
Además, el Estándar C ++ no contiene el texto "STL" en ninguna parte, y algunas personas habitualmente emplean frases como "el STL está incluido en la Biblioteca del Estándar C ++", lo cual es completamente incorrecto.
Creo que continuar propagando el uso del término de esta manera solo conducirá a que el malentendido continúe para siempre. Por desgracia, puede ser completamente contraproducente intentar cambiar las cosas, incluso si se supone que es para mejor. Podemos estar atrapados con doble sentido para siempre.
Conclusión
Aprecio que esta publicación haya sido un poco sesgada: escribí el artículo al que vinculaste. :) De todos modos, espero que esto ayude a explicar la batalla un poco mejor.
Actualización 13/04/2011
Aquí hay tres ejemplos perfectos de alguien que está usando "el STL" para referirse a toda la Biblioteca Estándar de C ++. Continúa desconcertando que tanta gente jure ciegamente que nadie hace esto, cuando es fácil verlo casi a diario.