Ich habe versucht zu suchen, aber ich habe keine ähnliche Frage gesehen (entweder diese oder meine Suchterminologie war falsch - wenn ja, können Sie sie gerne schließen).
Ich bin ein begeisterter Benutzer von SO, und ich stelle fest, dass es in Diskussionen und Antworten viele Verweise auf den C ++ - Standard gibt - und ich muss zugeben, ich habe dieses spezielle Dokument nie gelesen, die Sprache macht meine Augen weh ... Also Die Frage ist, kann ein C ++ - Entwickler wirklich seinen Lebensunterhalt mit Code verdienen, ohne dieses Dokument jemals gelesen zu haben? Ist es wirklich wichtig für uns Sterbliche, die nicht in der Lage sind, Compiler zu schreiben?
Antworten:
Nein - ohne kommt man gut zurecht
Sie werden jedoch ein viel tieferes Verständnis haben, wenn Sie sich die Zeit nehmen, es zu lernen. Folgen Sie vielleicht den Referenzen aus diesen Fragen, die Sie beunruhigen, und lernen Sie jeweils einen kleinen Teil.
quelle
Wenn Sie über die Sprachsemantik und das Standardese streiten möchten, ist der Standard sehr wichtig. (Ich meine das nicht völlig abfällig.) Wenn Sie nur in der Sprache arbeiten wollen ( im Vergleich zur Sprache), dann ist es viel weniger.
Der Standard kann einen anständigen Verweis auf die Standardbibliothek enthalten (nicht so sehr für die Sprache selbst), wenn Sie sich ein wenig damit vertraut gemacht haben, aber ich zögere, die Verwendung auf diese Weise zu empfehlen. Die meisten Menschen scheinen mit anderen Materialien besser zurechtzukommen. Trotzdem wende ich mich meistens dem Standard zu, wenn ich etwas über die stdlib nachschlagen muss.
Das Lesen der Ausschussentwürfe und -papiere ist jedoch eine Möglichkeit, mit C ++ 0x Schritt zu halten - tatsächlich eine der wenigen Möglichkeiten, die derzeit zur Verfügung stehen.
Für SO und andere Foren zögere ich, den Standard zu zitieren, es sei denn, das Poster würde eindeutig und definitiv davon profitieren - vielleicht haben sie darum gebeten, oder ich denke, sie erwarten dies implizit. In den meisten Fällen und insbesondere bei Programmierern, die neu in C ++ sind, scheint das Zitieren normalerweise nicht viel zu helfen.
quelle
Sie sollten es als Referenz zur Verfügung haben, aber ich glaube, niemand außer seinen Autoren hat das Ganze gelesen ... wenn sie es überhaupt getan haben (sie arbeiten in Gruppen, die sich auf Bereiche konzentrieren, also bezweifle ich es irgendwie).
Der Grund, warum Sie es zur Verfügung haben sollten, ist, dass eine Frage zur Codekorrektheit manchmal nur unter Bezugnahme auf den Standard beantwortet werden kann.
quelle
Es ist wahrscheinlich wichtiger, dass Sie wissen, wo sich der Standard befindet und wann Sie nachschlagen müssen.
Wenn nichts anderes, sollten Sie regelmäßig überprüfen, ob Sie die neueste Version einhalten und Ihren Code nicht driften lassen.
quelle
In einem großen Team sollten Sie im Allgemeinen eine (aber normalerweise nicht mehr) Person haben, die den Standard zumindest einigermaßen gut kennt, damit sie beispielsweise Argumente / Fragen dazu klären kann, ob ein bestimmter Code den Anforderungen des Standards entspricht.
Realistisch gesehen müssen diese Antworten jedoch durch Urteilsvermögen und Erfahrung gemildert werden. Der (aktuelle) Standard sagt,
export
ist ein Schlüsselwort und sagt, was es tut. In Wirklichkeit funktioniert das bei den meisten Compilern einfach nicht so. In vielen Fällen kann dies auch ein Zeichen dafür sein, dass der Code möglicherweise neu geschrieben werden muss, um einfacher zu sein , wenn Sie drei Personen haben, die sich über einen bestimmten Code nicht einig sind und was der Standard dazu sagen könnte .Gleichzeitig werden die meisten Teams die meiste Arbeit auf einer Plattform erledigen, und ein Standard (und jemand, der zumindest einigermaßen damit vertraut ist) kann überprüfen, ob das, was Sie tun, nicht zu eng mit dieser Plattform verbunden ist nützlich sein.
quelle
Insgesamt verdiene ich mein Brot als C ++ - Entwickler seit ungefähr 4 Jahren, ohne den Standard gelesen zu haben. Tatsächlich habe ich in den ersten zwei Jahren nicht viel anderes als C ++ Primer von Stan Lippman und MSDN-Artikel gelesen . Es ist also möglich - tatsächlich befürchte ich, dass die meisten Leute, die C ++ - Code produzieren, nicht einmal so grundlegende Werke wie Effective C ++ et al. Gelesen haben . was ich selbst erst später entdeckte.
IMHO, um ein guter C ++ - Entwickler zu sein, muss man die innere Logik der Sprache (n) (wie Scott Meyers bemerkt, C ++ besteht aus 4 verschiedenen Sprachen) und die gängigen Redewendungen und Fallstricke verstehen und bereit sein, immer mehr zu lernen. Das Lesen von Threads auf SO kann viel über Eckfälle lehren, in denen es sich wiederum lohnt, relevante Teile des Standards zu lesen, wenn jemand wirklich tiefer graben möchte. Aber das Ganze zu lesen ist für die meisten von uns wahrscheinlich selten notwendig.
quelle
"Den Standard kennen" ist eine Frage des Grades und bedeutet nicht unbedingt, das Originaldokument auswendig zu lernen.
Ein Standarddokument soll maßgeblich sein - nicht unbedingt zugänglich. Es gibt viele in einem Schritt entfernte Quellen, die viel leichter zugänglich sind. Es stimmt, es gibt ein bisschen chinesisches Flüstern, aber es ist selten ein großes Problem - sicherlich auf der Ebene, die nur einen Schritt entfernt ist.
Vollständige Offenlegung - das muss ich sagen - ich habe den Standard nie gelesen. Obwohl ich mich wahrscheinlich bemühen werde, das vollständige C ++ 0x-Dokument zu erhalten, wenn es fertiggestellt ist.
BEARBEITEN natürlich, wenn Stroustrup eine neue Ausgabe von "The C ++ Programming Language" veröffentlicht, kann ich mich wieder damit zufrieden geben.
quelle
Bei der Programmierung in C ++ habe ich häufig auf den Sprachstandard verwiesen, um Informationen zu Standardbibliotheksfunktionen zu erhalten. Die C ++ - Standardbibliothek ist ziemlich groß, und ich fand, dass der Sprachstandard die bequemste Quelle ist.
quelle
Ich hätte schwören können, dass ich diese Frage schon einmal beantwortet habe, aber ich kann sie nicht finden. Grundsätzlich unterscheidet sich C ++ von Java darin, dass es Lücken in der Spezifikation haben soll , die andere Plattformspezifikationen füllen können (z. B. POSIX, die ABI-Spezifikation Ihrer Architektur oder Ihr Compiler). Wenn Sie also Fragen auf Websites wie StackOverflow beantworten, wird häufig die Spezifikation aufgerufen, um anzuzeigen, dass nur, weil etwas auf einem Compiler funktioniert, dies nicht bedeutet, dass es überall funktioniert. Mit anderen Worten, ein großer Grund für die Bezugnahme auf bestimmte Spezifikationen bei der Arbeit mit C ++ besteht darin, genau zu klären, wie portabel eine bestimmte Verwendung der Sprache ist.
quelle