C++ ist Müll!
-
Bashar schrieb:
MaSTaH schrieb:
Ich sag ja nicht dass es toll ist oder irgendwelche Vorteile bringt.
Du hast es als Alternative für Leute angeführt, die die Trennung in Header und Implementation angeführt, oder? Jedenfalls lese ich das in dein Posting hinein.
Es sollte eher trotzig rüber kommen
.
Bashar schrieb:
Mich würde jedenfalls mal interessieren, warum die dese Trennung für vorteilhaft hältst.
- Wenn es um Bibilotheken geht ist die Trennung unverzichtbar, es sei denn es gäbe eine Möglichkeit eine Schnittstellendatei generieren zu lassen.
- Wenn man (noch) keine Doku generiert hat sieht man schnell welche Funktionen in der Klasse implementiert sind.
- Vielleicht bin ich es einfach gewohnt... <- scheiß Argument, ich weiß
Das alles ließe sich auch mit einer intelligenteren IDE lösen. VisualStudio.NET macht IMHO einen Schritt in die richtige Richtung, da die Navigation im Code komfortabler geworden ist (im Vergleich zu VC++ <= ver 6) und es die Möglichkeit gibt Klammerblöcke wie in einem TreeCtrl auszublenden.
-
MaSTaH schrieb:
- Wenn es um Bibilotheken geht ist die Trennung unverzichtbar, es sei denn es gäbe eine Möglichkeit eine Schnittstellendatei generieren zu lassen.
Stimmt. Wie macht das Java?
- Wenn man (noch) keine Doku generiert hat sieht man schnell welche Funktionen in der Klasse implementiert sind.
Wär irgendwo ähnlich zu 1.
- Vielleicht bin ich es einfach gewohnt... <- scheiß Argument, ich weiß
Vielleicht bin ich es auch gewohnt. Vielleicht würde es mir fehlen, weiß ich nicht. Aber es geht mir regelmäßig extrem auf die Nüsse, dass sich Deklaration und Definition um ein const oder so unterscheiden (und dass ich im Editor doppelt soviele Buffer aufhaben muss sowieso).
-
Bashar schrieb:
MaSTaH schrieb:
- Wenn es um Bibilotheken geht ist die Trennung unverzichtbar, es sei denn es gäbe eine Möglichkeit eine Schnittstellendatei generieren zu lassen.
Stimmt. Wie macht das Java?
- Wenn man (noch) keine Doku generiert hat sieht man schnell welche Funktionen in der Klasse implementiert sind.
Wär irgendwo ähnlich zu 1.
In Java ist es üblich, eine Javadoc-Doku zu haben. Die ist ja auch ganz schnell generiert, wenn mal keine vorhanden ist. So eine Dokumentation ist deutlich komfortabler und besser nutzbar als irgendwelche Headerdateien. Auch die meisten IDEs zeigen mit Code-Completion gleich an, welche Methoden etc. eine Klasse besitzt. Wo ist also das Problem?
-
Es ging primär um die Schnittstelleninformationen in einer compilierten Library. Wenn Java keine Header hat, muss es diese ja irgendwie aus den .class-Files ziehen können. Darum gings eigentlich, nicht um Javadoc.
-
Bashar schrieb:
Es ging primär um die Schnittstelleninformationen in einer compilierten Library. Wenn Java keine Header hat, muss es diese ja irgendwie aus den .class-Files ziehen können. Darum gings eigentlich, nicht um Javadoc.
Ach so. Ja, die kannst du aus den class-Dateien ziehen. Klassennamen, Methodennamen, Konstantennamen, Methodensignaturen etc. bleiben in class-Dateien erhalten. Man kann die via Reflection herausfinden. Allerdings gehen die Parameternamen verloren.
-
allerdings benötigt die ja auch nicht, wenn man ne compilierte Lib gekauft hat.
-
Abbadon schrieb:
C++ ist Müll!
stimmt.
Abbadon schrieb:
gibts da nicht was besseres?
ja. je nach anwendungsgebiet. so würde ich lieber in lisp symbolsich differenzieren, lieber in php die webseite machen, lieber in perl den bot, lieber in vb makros für den msvc, lieber in asm den bootsektor und für 100 weitere fälle gibts auch 100 sprachen, die besser als c++ passen.
Abbadon schrieb:
Ein paar dinge fangen mich langsam wirklich an zu Nerven.
mir auch.
aber es ist breit und weit noch keine sprache in sicht, die so allgemein gut ist. in der man zur not sogar differenzieren, bots bauen und webseiten machen könnte. und noch dazu mit viel sicher und viel schnell.
-
aber es ist breit und weit noch keine sprache in sicht, die so allgemein gut ist. in der man zur not sogar differenzieren, bots bauen und webseiten machen könnte. und noch dazu mit viel sicher und viel schnell.
*a*a?
-
Bashar schrieb:
Vielleicht bin ich es auch gewohnt. Vielleicht würde es mir fehlen, weiß ich nicht. Aber es geht mir regelmäßig extrem auf die Nüsse, dass sich Deklaration und Definition um ein const oder so unterscheiden (und dass ich im Editor doppelt soviele Buffer aufhaben muss sowieso).
Na gut, es nervt schon deutlich mehr in zwei Dateien aufzusplitten seit MS in der 5er Version vom Developer-Studio den schönen H-Schalter rausgenommen hat mit dem man sofort in den Header springen konnte ;-).
-
Delphi vereint interface und implementation in einer Datei...
-
volkard schrieb:
Abbadon schrieb:
Ein paar dinge fangen mich langsam wirklich an zu Nerven.
mir auch.
Mich nerven bei Java inzwischen auch ein paar Dinge.
-
Gergor schrieb:
*a*a?
hab mich noch nicht vollständig mit j*v* anfreunden können. hier ein neues argument (sicher nicht neu, aber endlich mal von mir alleine aufgedröselt):
warf da der leere stack nicht ne exception, wenn man ihn poppt? halte ich für verschwendung, denn es gibt da zweierlei pops:
a) benutzerfehler:switch(eingabe) { case 'p': s.pop();break; ...
und wenn der benutzer mist eingibt, soll ruhig ne exception fliegen und er darf klartext lesen, was er falsch machte.
b) programmierefehler:while(toDo.isEmpty()) { process(toDo()); toDo.pop(); }
ups, hap ein ! vergessen. hier soll keine fliegen, sondern was wie assert passieren. und im release-code nix getestet werden. ich mag nicht in echt sauberem code lauter checks auf gültige verwendung zahlen müssen.
-
Naja, ihr solltet die paar runtime-checks nicht überbewerten, wirklich nicht. Deshalb geht die Performance auch nicht gleich gnadenlos in den Keller.
Ein checked Arrayzugriff, der 1.4 mal langsamer ist, tut mir nicht wirklich weh.
-
Optimizer schrieb:
Naja, ihr solltet die paar runtime-checks nicht überbewerten, wirklich nicht.
Ist Dir eigentlich schonmal der Gedanke gekommen(zum Beispiel auf Basis der Tatsache, daß es viele Leute wohl für wichtig halten), daß Du die Bedeutung unterschätzt?
-
Die Bedeutung von runtime-checks für die Performance? Nein, die unterschätze ich nicht, weil ich sowohl in C++ als auch in Java dazu in der Lage bin, performante Programme zu schreiben.
Wie du selber sicher weisst, ist das entscheidenste immer der verwendete Algorithmus. Du kannst in C++ niemals einen so schnellen BubbleSort schreiben wie ich in Java einen qsort, weil die beiden Algorithmen eine völlig unterschiedliche Ordnung haben.
Aber das weisst du, warum erzähl ich dir das eigentlich? Natürlich wirst du mir jetzt sagen, dass dein BubbleSort in C++ schneller als mein BubbleSort in Java, ist es aber leider auch kaum - ich habe auch mehrere Tests durchgeführt und geschaut, was an den Gerüchten dran ist.Ich lade jeden dazu ein, sich selber ein Bild zu machen, aber was mir echt auf den Sack geht, sind Vorurteile wie "Java/C# sind voll lahm, die prüfen ständig tausend Sachen mit".
-
Optimizer schrieb:
aber was mir echt auf den Sack geht, sind Vorurteile wie "Java/C# sind voll lahm, die prüfen ständig tausend Sachen mit".
das wollte ich nicht gesagt haben.
java/c# sind ein klitzebißchen lahm, die prüfen ständig ein paar sachen mit. und ein klitzbißchen lahmheit ist sicher kein grund, ne sprache abzulehnen.
-
Hallo,
warum philosophieren eigentlich immer die Leute am Lautesten und Intensivsten über Performance die am wenigsten Ahnung haben (Achtung: Diese rhetorische Frage ist Reaktion auf den Beitrag von Optimizer)?Welcher ernsthafte Mensch auf dieser Welt schreibt denn sein Programm in Java, wechselt dann aber zu C++ weil er von nem Freund einer Bekannten gehört hat, dass Bubblesort in C++ schneller ist?
Ich habe auf jeden Fall jetzt für mich beschlossen, dass ich von diesem komischen "ich programmiere in C++, weil mir Java zu lahm ist" und von dem ebenso albernen Konter "Java ist gar nicht langsamer als C++. Mein Bubblesort-Programm beweist das", definitiv irgendwann mal Magengeschwüre bekomme.
-
Ich habe auf jeden Fall jetzt für mich beschlossen, dass ich von diesem komischen "ich programmiere in C++, weil mir Java zu lahm ist" und von dem ebenso albernen Konter "Java ist gar nicht langsamer als C++. Mein Bubblesort-Programm beweist das", definitiv irgendwann mal Magengeschwüre bekomme.
(gegen Java Sprechen ganz andere Dinge ;))
-
Gregor schrieb:
Mich nerven bei Java inzwischen auch ein paar Dinge.
Sobald man ein gewisses Level in einer Sprache erreicht hat, entdeckt man wohl zwangslaeufig die Unzulaenglichkeiten. Denn wenn nicht, dann ist man entweder blind oder hat die perfekte Sprache gefunden (wobei ich letzteres ausschliesse).
-
Dann muss sich eben doch jeder seine eigene Sprache schreiben.