Impresionante pregunta! Siempre he deseado que hubiera un Premio Pulitzer para software, o un Premio Nobel para Literatura de Software. Puede animar a las personas a escribir software que sea más legible y más funcional.
Nomino la Biblioteca de plantillas estándar (C ++) de Alexander Stepanov, un poema de software épico si alguna vez hubo uno.
El STL es un conjunto de clases de plantillas que proporcionan estructura de datos eficiente y reutilizable, y funciones de plantilla que proporcionan algoritmos que se ejecutan sobre estas estructuras de datos. Los punteros STL generalizados en el concepto de iterador, y dedicaron los algoritmos para trabajar sobre iteradores que tenían propiedades específicas, no en las estructuras de datos directamente. Cuando Stepanov diseñó el STL, los lenguajes de programación no venían con una biblioteca de algoritmos y estructuras de datos preconstruidos. Cada gran proyecto tenía su propio árbol a medida y estructuras de datos de listas vinculadas, y algoritmos codificados directamente en la fuente. Cuando Stepanov escribió el STL, ni siquiera había compiladores de C ++ que pudieran construirlo. Tuvo que trabajar en seco todo el diseño. La escritura fue, por lo tanto, también una hazaña heroica mental.
- ¿Cuál es el mejor software CAD gratuito para diseñar un intercambiador de calor para un newb completo?
- Quiero desarrollar una aplicación en C # y Visual Studio 2010. ¿Dónde empiezo?
- ¿Cómo funciona un software de edición no lineal?
- ¿Qué aplicación te gustaría ver disponible?
- Soy pasante de contabilidad en una escuela. Me pregunto si hay un software de contabilidad que pueda usar que pueda integrar con una base de datos de estudiantes.
Pero lo mejor de STL es que cada algoritmo tiene solo unas pocas líneas de longitud. Aunque las implementaciones posteriores lograron enturbiarlas como una mala traducción, los originales fueron hermosos.
Desde la introducción de la STL hace más de 2 años, toda una generación de desarrolladores de C ++ ha podido olvidar en gran medida su clase de Algoritmos y Estructuras de Datos, y trabajar exclusivamente con la STL.
[editar]
No estoy de acuerdo con la respuesta del señor Fidelman en la mayoría de los aspectos. Un martillo tiene utilidad y es popular, pero podría decirse que no es una obra maestra. Existen miles de variaciones en el diseño básico del martillo, ninguna destaca por su extraordinaria concepción y ejecución. También hay muchas novelas, pinturas, esculturas, etc., pero reconocemos que ciertas piezas están por encima de todas las demás. Apache es una herramienta útil, pero ¿es hermosa? WordPress es popular, pero ¿es especial? No conozco Erlang lo suficiente como para saber si es especial, pero hay muchos lenguajes de programación funcionales. Para seleccionar uno, tendría que destacarse de su tipo. ¿Lo hace? ¿En qué manera? De manera similar con CouchDB; ¿De qué manera se destaca de todas las demás bases de datos? ¿De qué manera es elegante?
Si queremos utilizar la utilidad o la popularidad para medir obras maestras, podríamos dejar que una máquina haga la clasificación. Entonces podríamos discutir sin cesar sobre la metodología de medición, pero ¿el resultado sería satisfactorio de alguna manera? Un concurso para los “más populares” tiene parámetros muy diferentes que una búsqueda de obras maestras.