Weil es so irrsinnig schwer zu debuggen ist.
Jeder Programmierer verwendet ein anderes Subset irgendwelcher obskuren features, die man eigentlich nicht brĂ€uchte und fĂŒrs debuggen muss man sie dann alle kennen.
Gnah.
Zum Beispiel das hier: Aus Performance-GrĂŒnden wird der Speicher fĂŒr Objekte beim initialisieren nicht auf einen neutralen Wert (0/NULL/whatever) gesetzt, sondern (!!!) uninitialisiert gelassen. (Nein, das ist kein Opt-In fĂŒr die stellen wo man die Performance wirklich braucht, sondern tatsĂ€chlich der Standard)
Das geile daran: Vergisst man im Konstruktor dann eine Variable zu initialisieren, dann gibt es auch keine Warning...
Also habe ich jetzt Tageweise hinter her debugged, weil an einer Stelle halt eine Variable nicht in der Konstruktor-Initializer-Liste aufgefĂŒhrt - und dieser Wert dann an das System weitergereicht wurde. Tja, schade eigentlich. Dadurch wurde dann der TCP-Sendspace eben auf einen zufĂ€lligen Wert (18 Millionen) konfiguriert und verstĂ€ndlicherweise reichten dafĂŒr die Buffer nicht mehr aus...
Und das alles weil C++ so hardcore Performance-Orientiert ist. Wo doch heute jedes Kind lernt, das man etwas erst zum funktionieren und dann schnell kriegen muss.
Gnah.