Es ist nichts unbedingt überwältigendes aber jede Verbessrung ist gut oder :-)
Aber nach etwas Google, Newgroups durchgrabben und Forensuchen habe ich en bissl was gefunden....ka mehr wo ich des damals alles gelesen hab.
http://gcc.gnu.org/gcc-3.5/changes.html hier findet sich natürlich ein bissl dazu
und ab hier ist es quer durch die Bank zitiert: nun, der 3.5er ist immer noch in Stage 1 des Developmentzykluses ( http://gcc.gnu.org/develop.html#stage1 ), d.h. noch ca. 0,5 bis 1 Jahr von der Veröffentlichung entfernt ( siehe http://gcc.gnu.org/develop.html weiter unten ). Ansonsten sind auch beim "normalen" gcc3.5 die ersten Schritte Richtung Auto-Vektorisierung (nicht nur gut für AltiVec sondern auch für SSE) zurückgelegt wurden: Ein wichtiger Meilenstein dazu war SSA for Trees:
Habe ich das damals richtig verstanden, dass die 3.4 GCC viele Veränderungen mit sich brachte, die darauf hinauslaufen, dass die meiste GNU-Software nicht übersetzt werden könnte?
Ich weis nicht mehr genau, ob hier oder bei Heise: Da war mal so etwas (oder ähnliches in der Richtung) zu lesen.
Wäre für jede Erleuchtung dankbar! ;-) euer Illuminatus
Nicht gerade die meiste GNU Software, aber gcc 3.4 hat wie auch schon gcc 3.3 einige Veränderung gehabt die verschiedene Programme nicht mehr kompilierbar gemacht haben, die meisten davon haben aber inzwischen neue Releases die funktionieren.
Naja, der G++ 3.4 hält sich verschärft an Standards, wodurch viel schwarze Magie ungültig wird. Außerdem fehlt die (seit ner Ewigkeit obsolete) varargs.h
Die Fehler die ja anscheinend alle im C++ Frontend liegen zeigen deutlich das C++ unbeherrschbar komplex geworden ist. In DJJ gabs mal einen Artikel wo es 8 Experten in 3 Ausgaben es nicht geschaft haben einen allgemeingültigen Copy-Construktor zu schreiben wenn man die Internals der Basisklasse nicht kennt.
Dann lieber D oder Eiffel oder irgendeine andere Sprache - wären da nicht die existierenden Bibliotheken, ausser .NET und Delphi gibts doch keine komplexe GUI die nicht auf C/C++ oder aber Object-C basiert, wobei letzteres noch annehmbarer ist.
"... einen allgemeingültigen Copy-Construktor zu schreiben wenn man die Internals der Basisklasse nicht kennt."
Erstens vermischt du hier zwei Komplexitaeten: die eine ist die der Compilerbauer und die andere die der anwender der sprache. Das sind zwei verschiedene dinge. Das eine kann ganz einfach sein waehrend das andere bei gleicher Sprache komplex ist. Beisp.: Assembler (benutzung komplex -- uebersetzung pippi einfach), script sprachen ( benutzung einfach -- uebersetzung u.U. komplex).
Zu dem konkreten Problem: Naja.. ohne eine Klasse zu kennen kannst du sie auch nicht kopieren (wenn du das umbedingt selber machen willst --oft ist das gar nicht notwendig). Sicher C++ ist komplex dafuer aber auch unglaublich leistungsfaehig. So etwas wie SystemsC (aus dem EDA bereich) waere ohne C++ in dieser form gar nicht moeglich.
GUI? C++ und Qt sind da eine geniale kombi. Dazu noch www.boost.org und da hast ne umgebung in der du sehr gut arbeiten kannst. Das geht auch ohne .NET bzw. Java.
Möchtest du uns damit etwas bestimmtes sagen? Ich denke, als Closed Source ist C++ vielleicht daher nicht geeigent, aber es ist und bleibt meiner Ansicht nach die beste Programmiersprache.
In DJJ gabs mal einen Artikel wo es 8 Experten in 3 Ausgaben es nicht geschaft haben einen allgemeingültigen Copy-Construktor zu schreiben wenn man die Internals der Basisklasse nicht kennt.
Die Basisklasse kümmert sich selbst darum, korrekt kopiert werden zu können, oder sie verbietet kopiert zu werden. Alles andere ist selten sauber programmiert.
Und wenn die Basisklasse nicht selber eine geignete Kopieroperation bereitstellt, dann ist man in der Tat auf das Wissen um die Interna angewiesen. Das ist in jeder vergleichbaren Programmiersprache so, nicht nur in C++.
Das C++ Kommittee macht sich übrigens explizit Gedanken, wie man die Programmierung mit C++ vereinfachen kann. Es ist zu erwarten, das das einige Früchte in der nächsten Version des Standards tragen wird.
Noch schöne würde es sein wenn Gcc 3.5.x schon stable genug für nen kompletten Gentoo-Build sein würde :-)
Aber erstmal abwarten das Gcc 3.4.x soweit kommt was ja auch schon wieder einige Vorteile mit sich bringt.
Aber nach etwas Google, Newgroups durchgrabben und Forensuchen habe ich en bissl was gefunden....ka mehr wo ich des damals alles gelesen hab.
http://gcc.gnu.org/gcc-3.5/changes.html hier findet sich natürlich ein bissl dazu
und ab hier ist es quer durch die Bank zitiert:
nun, der 3.5er ist immer noch in Stage 1 des Developmentzykluses (
http://gcc.gnu.org/develop.html#stage1 ), d.h. noch ca. 0,5 bis 1
Jahr von der Veröffentlichung entfernt ( siehe
http://gcc.gnu.org/develop.html weiter unten ). Ansonsten sind auch
beim "normalen" gcc3.5 die ersten Schritte Richtung
Auto-Vektorisierung (nicht nur gut für AltiVec sondern auch für SSE)
zurückgelegt wurden: Ein wichtiger Meilenstein dazu war SSA for
Trees:
> http://gcc.gnu.org/projects/tree-ssa/
worauf dann z.B. die Loop Optimization
> http://gcc.gnu.org/projects/#loop_optimization
> http://gcc.gnu.org/projects/tree-ssa/lno.html
> http://gcc.gnu.org/projects/tree-ssa/vectorization.html
aufbaut.
dass die 3.4 GCC viele Veränderungen mit sich brachte, die darauf hinauslaufen,
dass die meiste GNU-Software nicht übersetzt werden könnte?
Ich weis nicht mehr genau, ob hier oder bei Heise: Da war mal so etwas (oder ähnliches in der Richtung) zu lesen.
Wäre für jede Erleuchtung dankbar! ;-)
euer
Illuminatus
Dann lieber D oder Eiffel oder irgendeine andere Sprache - wären da nicht die existierenden Bibliotheken, ausser .NET und Delphi gibts doch keine komplexe GUI die nicht auf C/C++ oder aber Object-C basiert, wobei letzteres noch annehmbarer ist.
Erstens vermischt du hier zwei Komplexitaeten: die eine ist die der Compilerbauer und die
andere die der anwender der sprache. Das sind zwei verschiedene dinge. Das eine kann
ganz einfach sein waehrend das andere bei gleicher Sprache komplex ist. Beisp.: Assembler (benutzung komplex -- uebersetzung pippi einfach), script sprachen ( benutzung einfach
-- uebersetzung u.U. komplex).
Zu dem konkreten Problem:
Naja.. ohne eine Klasse zu kennen kannst du sie auch nicht kopieren (wenn du das umbedingt
selber machen willst --oft ist das gar nicht notwendig).
Sicher C++ ist komplex dafuer aber auch unglaublich leistungsfaehig. So etwas wie
SystemsC (aus dem EDA bereich) waere ohne C++ in dieser form gar nicht moeglich.
GUI? C++ und Qt sind da eine geniale kombi. Dazu noch www.boost.org und da
hast ne umgebung in der du sehr gut arbeiten kannst. Das geht auch ohne .NET bzw. Java.
AC
Ich denke, als Closed Source ist C++ vielleicht daher nicht geeigent, aber es ist und bleibt meiner Ansicht nach die beste Programmiersprache.
In DJJ gabs mal einen Artikel wo es 8 Experten in 3 Ausgaben es nicht geschaft haben einen allgemeingültigen Copy-Construktor zu schreiben wenn man die Internals der Basisklasse nicht kennt.
Die Basisklasse kümmert sich selbst darum, korrekt kopiert werden zu können, oder sie verbietet kopiert zu werden. Alles andere ist selten sauber programmiert.
Und wenn die Basisklasse nicht selber eine geignete Kopieroperation bereitstellt, dann ist man in der Tat auf das Wissen um die Interna angewiesen. Das ist in jeder vergleichbaren Programmiersprache so, nicht nur in C++.
Das C++ Kommittee macht sich übrigens explizit Gedanken, wie man die Programmierung mit C++ vereinfachen kann. Es ist zu erwarten, das das einige Früchte in der nächsten Version des Standards tragen wird.