Thread C/C++ vs Clojure vs Perl (20 answers)
Opened by tonewheel at 2014-05-26 21:49

murphy
 2014-05-27 20:26
#175782 #175782
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
2014-05-27T17:55:19 Raubtier
Klar, denn man kann Strings ja ändern.
[...]

Und hundert Punkte bekommt der Kandidat, der auf Anhieb weiß, welche Methoden eines Strings diesen verändern und welche nicht, das ist nämlich alles andere als intuitiv und offensichtlich.

Quote
[...]
Daher also entweder einen lock_guard auf einen Mutex nehmen oder - vielleicht noch einfacher: nimm halt einfach einen const std::string
[...]

Klar, man kann mit C++ korrekt programmieren, aber man muss eben genau wissen, was man tut, das ist es gerade, worauf ich hinaus wollte.

Quote
[...]
(ab C++11 folgt aus const thread-safe).

Alleine die Tatsache, dass man erwähnen muss, dass das erst ab einer bestimmten Sprachversion gilt, lässt schon wieder tief blicken, wie schlecht designt C++ tatsächlich ist und wie verwirrend für Anfänger.

Mal abgesehen davon gilt die Aussage natürlich nur für const Instanzen, aber nicht uneingeschränkt für Referenzen und Zeiger auf const Instanzen, womit wir schon wieder so einen für Anfänger schwer verständlichen Punkt erreicht hätten. Außerdem lässt sich die Aussage, auch wenn sie für const Instanzen von std::string in bestimmten Versionen der STL gelten mag, nicht auf const Instanzen anderer Klassen übertragen.

So können wir den ganzen Tag weitermachen und all die Stolperfallen in C++ und die Wege um sie herum aufzeigen. Bewiesen ist damit nur eines: Diese Sprache ist mächtig, aber kompliziert richtig zu benutzen.
When C++ is your hammer, every problem looks like your thumb.

View full thread C/C++ vs Clojure vs Perl