Also ich hab 2 kleine Fehler ausgebessert.
Außerdem: Vielleicht sollte man bei der Lesbarkeit von C++ doch noch nen Punkt abziehen. "Fortgeschrittene Techniken", wie Templates, Namespaces, Verschachtelte Klassen, Operatorenüberladung lassen dinge zu, die für den Experten völlig klar sind - aber für einen Leien völlig unlesbar. Kleines Beispiel:
Code: Alles auswählen
template<class A>
typename sig<tuple<const non_lambda_functor, A&> >::type
operator()(A& a) const {
return lf.template call<typename sig<tuple<const non_lambda_functor, A&> >::type >(a, cnull_type(), cnull_type(), cnull_type());
}
Ich weiß ja nicht wie ihr das seht aber wenn ich kein C++ könnte, würde da nur mehr "WTF???" kommen.
Weiter im Text:
Xin hat geschrieben:C/C++ Compiler gibt es reichlich, auch für Nicht-(Mehr)-Mainstream-Plattformen, wie Amiga, Atari, Sun. Man kann davon ausgehen, dass es für jedes Betriebsystem und jeden Prozessor entsprechende C++-Compiler gibt. Am Bekanntesten ist der GNU C/C++ Compiler, auch Microsoft bietet mit Visual C++ einen Compiler an, der mitsamt des Visual Studio als Express-Version kostenlos verfügbar ist, für komerzielle Produkte jedoch pro Entwickler lizenziert werden muss. Auch Intel bietet einen effizienten C/C++-Compiler an.
Ändern in
fat-lobyte hat geschrieben:C/C++ Compiler gibt es reichlich, auch für Nicht-(Mehr)-Mainstream-Plattformen, wie Amiga, Atari, Sun. Man kann davon ausgehen, dass es für jedes Betriebsystem und jeden Prozessor entsprechende C-Compiler gibt. C++ ist theoretisch standardisiert, praktisch weisen aber vor allem ältere Compiler noch ziemlich große Unterschiede zueinander auf. Code zu schreiben, den wirklich alle Compiler schlucken und der auch richtig funktioniert ist in der Praxis allerdings nicht so einfach (ganz im gegensatz zu Java). Am Bekanntesten ist der GNU C/C++ Compiler, auch Microsoft bietet mit Visual C++ einen Compiler an, der mitsamt des Visual Studio als Express-Version kostenlos verfügbar ist, für komerzielle Produkte jedoch pro Entwickler lizenziert werden muss. Auch Intel bietet einen effizienten C/C++-Compiler an.
Xin hat geschrieben:Die schnellsten Programme liefert C++. Dennoch können Java und C# Progamme durch eine (geschwindigkeits-)optimierte Speicherverwaltung schneller ablaufen, wenn das Programm sehr häufig Speicher anfordert und freigibt. C++ ist aber so flexibel, dass die Speicherverwaltung von Hand nachoptimiert werden kann, so dass auch hier C++ Java wieder überholen kann. Ebenfalls ganz vorne dabei sind nativ kompilierte Sprachen, wie Pascal, Delphi, aber auch PureBasic. Hier wäre Purebasic nochmals hervorzuheben, da es den GNU-Codegenerator nutzt, der ebenfalls C++-Programme schreibt. Die höchste Geschwindigkeit ist vermutlich mit C++ und dem Intelcompiler zu erreichen.
Ich hab mal gehört dass man Java Programme auch kompilieren kann, vielleicht sollte man das einbauen. Außerdem sollte explizit erwähnt werden, dass C++ nicht langsamer als C ist, was ein weit verbreitetes Ammenmärchen ist.
Xin hat geschrieben:(Fortran (FORmel TRANslator) ist eine Sprache aus den 1950er Jahren, die früher für viele mathematische Berechnungen verwendet wurde, aber selbst in ihrer letzten Version aus den 90er Jahren weit entfernt von moderner Programmierung zurückbleibt).
Kleine anmerkung/schreckensmeldung: Die Physikstudenten an unserer Uni verwenden das immer noch
Xin hat geschrieben:Kriterium XI: Weitergabe
Java und C# wurden etwas ungerecht behandelt. Während man in C/C++ Für Jedes Betriebssystem und in der Praxis auch für jede Linux- Distribution neu kompilieren muss, kann man (zumindest in Java, von C# weiß ich nichts) (vor-) kompilierte Java programme auf jedem System gleich weitergeben.
So, das waren alle Punkte. Ansonsten echt guter Artikel! Hoffentlich liest den auch noch wer
ps.: Ich hoffe es ist kein Problem, dass ich den Thread verschoben habe, denn eigentlich sollte er ja hier rein oder sehe ich das falsch?