C++ 09 (Split aus Artikel)
-
Shade Of Mine schrieb:
C++ ist sehr komplex. Das ist der Sinn der Sprache: multiple Paradigmen zu unterstuetzen verlangt komplexitaet.
Unsinn, ich würde C++ eher als umfangreich denn als komplex bezeichnen. Vielleicht führt die Menge an Sprachfeatures dazu, daß es sich manche zu kompliziert [nicht komplex] machen. Man kann C++ auf jedem Level benutzen. Wenn das Problem nicht komplex ist, ist die Lösung mit C++ auch nicht komplex. Im Gegenteil: Selbst relativ komplexe Aufgaben können mit C++ einfacher lösbar sein, als mit einer anderen Sprache.
-
funky cat schrieb:
Shade Of Mine schrieb:
C++ ist sehr komplex. Das ist der Sinn der Sprache: multiple Paradigmen zu unterstuetzen verlangt komplexitaet.
Unsinn, ich würde C++ eher als umfangreich denn als komplex bezeichnen. Vielleicht führt die Menge an Sprachfeatures dazu, daß es sich manche zu kompliziert [nicht komplex] machen. Man kann C++ auf jedem Level benutzen. Wenn das Problem nicht komplex ist, ist die Lösung mit C++ auch nicht komplex. Im Gegenteil: Selbst relativ komplexe Aufgaben können mit C++ einfacher lösbar sein, als mit einer anderen Sprache.
Vielleicht kann man sich darauf einigen :D, dass C++ zwar demjenigen eine recht extreme Komplexität zeigt, der sich traut, tiefer einzusteigen. Die Mächtigkeit, die für diese Komplexität verantwortlich ist, erlaubt es andererseits aber auch, viel davon zu verstecken. (Solange man nicht über kryptische Template-Fehlermeldungen stolpert - aber das wird sich ja hoffentlich mit C++09 etwas bessern.)
Vielleicht sollte man auch unterscheiden zwischen der internen Komplexität einer Sprache (ja, multiple Paradigmen führen sicherlich unvermeidbar zu einer hohen Sprachkomplexität) und der auf der jeweiligen Ebene sichtbaren Komplexität. Es hört sich immer so an, als müsste man erst alle Features von C++ studieren, um damit produktiv arbeiten zu können, was ich bestreiten möchte. Sicherlich kann man unter Umständen noch produktiver arbeiten, wenn man tiefer einsteigt - man ist jedoch nicht gezwungen, sich von Anfang an der vollen Komplexität dieser Sprache auszusetzen.
Und ja, stimmt schon, eigentlich bezog sich das "you only pay for ..." auf die Kosten benutzter Ressourcen. Aber ich finde, diese Philosophie passt auch ganz gut auf die verschiedenen Komplexitätsebenen, auf denen man sich mit C++ beschäftigen kann. Man muss i.A. eben nicht darunter leiden, dass C++ eine so mächtige und komplexe Sprache darstellt. Ich vermute, es leiden viel mehr Anfänger unter Eigenheiten, die von C geerbt wurden (Schon mal ein Semikolon am Ende eines Headerfiles vergessen?
) als unter den tatsächlichen C++-Eigenheiten.
-
Wird hier wieder OT...

-
Obiwan2A schrieb:
Kann es gar nicht erwarten, bis alles in die Compiler integriert wurde. (Wie lange es diese Mal wohl dauern wird?)
Ich kann es auch kaum erwarten damit rumzuspielen und Bibliotheken zu sehen welche Concepts an ihre Grenzen bringen.
Die Implementierung glaub ich wird nicht so lange dauern. Es steht jetzt ja schon vieles fest von daher dürften die meisten Hersteller jetzt schon am werkeln sein. RValue Referenzen, Variadic Templates und ein paar kleinere Sachen sind zum Beispiel jetzt schon in aktuellen GCC Versionen implementiert. (Diese Features können mit -std=c++0x eingeschaltet werden.) Für Concepts gibt es mit dem ConceptGCC auch schon einen Prototypen und die GCC Entwickler werkeln auch schon an der Version welche mal in den produktiven Einsatz kommen wird. Was wahrscheinlich am längsten brauchen wird sind die Lambdausdrücke.
-
Artchi schrieb:
Wird hier wieder OT...

Jap, vllt könnte eine Moderator das splitten und nen eigenen Thread dafür erstellen.
-
Warum wurde denn versäumt einfache Stringvergleiche über switch-Blöcke einzubauen?
-
pffffffff schrieb:
Warum wurde denn versäumt einfache Stringvergleiche über switch-Blöcke einzubauen?
Was spricht gegen else-if-Kaskaden?
-
pffffffff schrieb:
Warum wurde denn versäumt einfache Stringvergleiche über switch-Blöcke einzubauen?
Was spricht gegen std::map?
-
pffffffff schrieb:
Warum wurde denn versäumt einfache Stringvergleiche über switch-Blöcke einzubauen?
Welchen Vorteil hätte man?
-
pffffffff schrieb:
Warum wurde denn versäumt einfache Stringvergleiche über switch-Blöcke einzubauen?
Ganz einfach: Dann müsste man das Typsystem ändern und wie z.B. in C# vielleicht alles von Basisobjekten ableiten. Den ein switch soll auch sinnvoll in der Ausführungsgeschwindigkeit bleiben. Also z.B. müsste jedes Objekt eine Hashwertfunktion bekommen.
Vielleicht fertigt dir ja jemand (falls es funktioniert) ein Templatemetaprogramm für Hashwerte von strings an, und liefert dir noch eine kompatible Hashfunktion zur Laufzeit mit, dann könntest du dies auch schon jetzt verwenden (Als Casemarken der vom Template gebildete Hashwert, als übergabe die Laufzeitberechnung...).
cu André