Intenté buscar, pero no vi una pregunta similar (ya sea eso o mi terminología de búsqueda era incorrecta; si es así, no dude en cerrar).
Soy un usuario ávido de SO, y noto que hay muchas referencias al estándar C ++ en las discusiones y respuestas, y debo admitir que nunca he leído este documento en particular, el lenguaje me duele los ojos ... Entonces , la pregunta es, ¿puede un desarrollador de C ++ realmente codificar para ganarse la vida sin haber leído este documento? ¿Es realmente importante para nosotros los simples mortales que no estamos en el negocio de escribir compiladores?
Respuestas:
No, puedes llevarte bien sin eso
Sin embargo, tendrá una comprensión mucho más profunda si se toma el tiempo de aprenderlo. Tal vez siga las referencias de esas preguntas que le preocupan y aprenda una pequeña parte a la vez.
fuente
Si desea discutir sobre la semántica del lenguaje y el estándar, entonces el estándar es muy importante. (No me refiero a esto completamente despectivamente). Si solo quieres hacer el trabajo en el idioma (vs. en el idioma), entonces es mucho menos.
El estándar puede hacer una referencia decente a la biblioteca estándar (no tanto para el lenguaje en sí) una vez que se sienta un poco cómodo con él, pero dudo en recomendar que se use de esa manera. La mayoría de las personas parecen hacerlo mejor con otros materiales. Dicho esto, recurro al estándar la mayoría de las veces cuando necesito buscar algo sobre el stdlib.
Sin embargo, leer los borradores y documentos del comité es una forma de mantenerse al tanto de C ++ 0x; de hecho, actualmente es una de las pocas formas.
Para SO y otros foros, dudo en citar el estándar, excepto cuando parece que el póster se beneficiaría clara y definitivamente, tal vez lo pidieron o creo que lo esperan implícitamente. En la mayoría de los casos, y especialmente con los programadores nuevos en C ++, citarlo generalmente no parece ayudar mucho.
fuente
Debería tenerlo disponible como referencia, pero no creo que nadie más que sus autores hayan leído todo ... si es que lo hicieron (trabajan en grupos centrados en áreas, por lo que dudo).
La razón por la que debería tenerlo disponible es que a veces una pregunta sobre la corrección del código solo se puede responder haciendo referencia al estándar.
fuente
Probablemente sea más importante que sepa dónde está el estándar y saber cuándo buscar las cosas.
Por lo menos, debe verificar periódicamente para asegurarse de que se está adhiriendo a la última versión y no ha dejado que su código se desvíe.
fuente
En un equipo grande, generalmente debe tener una persona (pero generalmente no más) que conozca el estándar al menos razonablemente bien, para que puedan hacer cosas como resolver cualquier argumento / pregunta sobre cosas como si un código particular cumple con los requisitos del estándar.
Sin embargo, de manera realista, esas respuestas deben ser moderadas por el juicio y la experiencia. El estándar (actual) dice que
export
es una palabra clave y dice lo que hace. En realidad, simplemente no funciona de esa manera con la mayoría de los compiladores. Del mismo modo, en muchos casos, si tiene tres personas en desacuerdo sobre algún código en particular y lo que el estándar podría decir al respecto, puede ser una señal de que el código puede necesitar reescribirse para ser más sencillo.Al mismo tiempo, la mayoría de los equipos trabajarán más en una plataforma, y tener un estándar (y alguien que al menos esté razonablemente familiarizado con él) para verificar que lo que estás haciendo no está demasiado ligado a esa plataforma puede ciertamente sé útil.
fuente
He estado ganando mi pan como desarrollador de C ++ durante aproximadamente 4 años en total, sin haber leído el estándar. De hecho, durante los primeros dos años más o menos, ni siquiera he leído mucho más que C ++ Primer por Stan Lippman y artículos de MSDN. Por lo tanto, es posible; de hecho, me temo que la mayoría de las personas que producen código C ++ ni siquiera han leído trabajos tan fundamentales como Effective C ++ et al. que descubrí solo más tarde.
En mi humilde opinión, para ser un buen desarrollador de C ++, uno debe comprender la lógica interna del idioma (s) (como señala Scott Meyers, C ++ es sobre 4 idiomas diferentes) y los modismos y dificultades comunes, y estar preparado para aprender siempre más. Leer hilos en SO puede enseñar mucho sobre casos de esquina en los que, a su vez, puede valer la pena leer sobre partes relevantes de la norma, si alguien realmente quiere profundizar más. Pero leerlo todo probablemente rara vez sea necesario para la mayoría de nosotros.
fuente
"Conocer el estándar" es una cuestión de grado, y no necesariamente significa memorizar el documento original.
Un documento de estándares está diseñado para tener autoridad, no necesariamente accesible. Hay muchas fuentes eliminadas en un solo paso que son mucho más accesibles. Es cierto, hay un poco de susurros chinos en eso, pero rara vez es un gran problema, ciertamente en el nivel eliminado en un solo paso.
Revelación completa: estoy obligado a decir esto: nunca he leído el estándar. Aunque probablemente haré el esfuerzo de obtener el documento completo de C ++ 0x cuando esté finalizado.
EDITAR, por supuesto, si Stroustrup lanza una nueva edición de "El lenguaje de programación C ++", puedo conformarme con eso nuevamente.
fuente
Cuando programaba en C ++, a menudo me refería al estándar del lenguaje para obtener información sobre las funciones estándar de la biblioteca. La biblioteca estándar de C ++ es bastante grande, y encontré que el estándar de lenguaje es la fuente más conveniente.
fuente
Podría haber jurado que he respondido esta pregunta antes, pero no puedo encontrarla. Básicamente, C ++ es diferente a Java en que está destinado a tener agujeros en la especificación que otras especificaciones de plataforma pueden llenar (por ejemplo, POSIX, o la especificación ABI de su arquitectura, o su compilador). Por lo tanto, al responder preguntas en sitios como StackOverflow, es común que aparezca la especificación para indicar que solo porque algo funciona en un compilador no implica que funcione en todas partes. En otras palabras, muchas de las razones para hacer referencia a especificaciones particulares cuando se trabaja con C ++ es para aclarar exactamente qué tan portátil es un uso particular del lenguaje.
fuente