Windowsprogramm mit C++ oder Java?
-
der von weiter oben schrieb:
sososo schrieb:
zeus du hast doch recht ich hab mich fertan
das war übrigens nich ich
das war übrigens nich ich
-
der von weiter oben schrieb:
der von weiter oben schrieb:
sososo schrieb:
zeus du hast doch recht ich hab mich fertan
das war übrigens nich ich
das war übrigens nich ich
das war übrigens nich ich
-
Der Clue ist doch, dass j übergeben wird und in java ist es so, das die Referenz auf das Objekt kopiert wird. Damit hassu eine Lokale kopie, die du änderst und nach verlassen der Methode vonn doit nicht mehr existiert.
Aber Call-by-Value kann das auch nicht sein, weil ich doch über die Referenz die gleichen Objekte manipulieren kannst.
-
r0nny schrieb:
gehts noch ??
dafür gibts seit ewigkeiten Integer
Integer is immutable. posten hier alle bevor sie denken?
-
hääää schrieb:
r0nny schrieb:
gehts noch ??
dafür gibts seit ewigkeiten Integer
Integer is immutable. posten hier alle bevor sie denken?
hääää?
-
Apollon schrieb:
Zeus schrieb:
Ich glaub den call-by-reference und value streit hatten wir schon.
Ja. Und der ist gar nicht mal so lange her. Ich glaube mich auch erinnern zu koennen, dass keine Fraktion nachgegeben hat. Koennte also ein langer Thread werden.
BTW: call-by-value
Stimmt ! Und schon damals stellte sich ziemlich schnell raus, dass Javaisten den "call by value von Referenzen" als "call by value" und C++er den als "call by reference" bezeichnen.
Für die Javaisten ist das auch einfacher, weil es damit nur eine Call-Art gibt - was der Tatsache Rechnung trägt, dass der Javaist sich das sowieso nicht aussuchen kann (er bekommt ja immer nur eine Referenz der einen primitiven Typen in de Hand).
Gleichzeitig hat er es etwas schwerer, weil er eine Sonderregel für primitive Typen hat.Schon erstaunlich, wie lange man über sowas streiten kann.
Gruß,
Simon2.
-
Simon2 schrieb:
Schon erstaunlich, wie lange man über sowas streiten kann.
Nein. Erstaunlich wie Du ueber sowas streiten kannst.
-
Apollon schrieb:
Simon2 schrieb:
Schon erstaunlich, wie lange man über sowas streiten kann.
Nein. Erstaunlich wie Du ueber sowas streiten kannst.
Muss ich nicht verstehen, oder ?
Versuchst Du jetzt, mich irgendwie zu provozieren, damit Du weiter was zum Streiten hast ?
Mein statement zu dem Thema kannst Du oben nachlesen.
Mag sein, dass Dir langweilig isr, mir nicht - ich genieße jetzt Samstag, Sonne und Erdeeren mit meiner Frau.Schönen Tag noch,
Simon2.
-
Für den monatlichen C++ vs. Java Thread nooch nicht ausreichend.
Was es noch zu klären gibt. Braucht man einen Garbagecollector für Windowsanwendungen? Ist mit Java nicht alles zu langsam?...
-
Steht die Frage schon in den FAQ?
-
tfa schrieb:
pale dog schrieb:
DEvent schrieb:
Fasst man alles zusammen, bietet sich C# als modernste Sprache an.
Du meinst die aufgblähste Sprache. Siehe mein Posting oben. Was bietet es aber im gegensatz zu Java zusätzlich an?
zusätzliche komplexität.
Und das ist eher negativ.
Eine kritische Betrachtung der zusätzlichen C#-Features: http://www.geocities.com/csharpfaq/tfa
Danke tfa, diese Seite kannte ich noch nicht.
Das ist ja ziemlich heftig, welche Designsschwächen C# hat, vor allem der Teil mit den Exceptions.Was es noch zu klären gibt. Braucht man einen Garbagecollector für Windowsanwendungen? Ist mit Java nicht alles zu langsam?...
Ich schütt mal noch weiter Benzin rein: Java ist wesentlich moderner als C++, da muss man wenigstens nicht jedesmal alles neu kompilieren.
-
Deswegen muss auch jeder C# lernen, weil's die modernste ist!
-
opqr schrieb:
Für den monatlichen C++ vs. Java Thread nooch nicht ausreichend.
es wundert mich auch immer wieder, warum geht's immer Java gegen c++?
Java vs. C# wäre ja noch zu verstehen, weil sie sich sehr ähnlich sind,
aber warum C++?
-
pale dog schrieb:
opqr schrieb:
Für den monatlichen C++ vs. Java Thread nooch nicht ausreichend.
es wundert mich auch immer wieder, warum geht's immer Java gegen c++?
Java vs. C# wäre ja noch zu verstehen, weil sie sich sehr ähnlich sind,
aber warum C++?wo hat hier denn jemand java gegen c++ oder andersrum geflamet??? hab ich was verpasst? ich seh hier nix...
-
pale dog schrieb:
es wundert mich auch immer wieder, warum geht's immer Java gegen c++?
Java vs. C# wäre ja noch zu verstehen, weil sie sich sehr ähnlich sind,
aber warum C++?Java ist in der Wirtschaft und Industrie sehr erfolgreich. C++ hat technisch hingegen einiges zu bieten, was Java so nicht kann. C++ ist somit im Allgemeinen ausdrucksstärker. Beide Sprachen haben also etwas, was die andere gerne hätte. ...C# hat hingegen gar nichts.
-
Gregor schrieb:
C++ hat technisch hingegen einiges zu bieten, was Java so nicht kann.
naja, aber sind das nicht alles dinge, die in Java absichtlich weggelassen wurden, wie pointer, präprozessor, überladene operatoren und mehrfachvererbung, weil sie zu fehlerträchtigem und schwer lesbarem code führen?
bis auf templates vielleicht, die würden Java auch gut stehen.
-
pale dog schrieb:
Gregor schrieb:
C++ hat technisch hingegen einiges zu bieten, was Java so nicht kann.
naja, aber sind das nicht alles dinge, die in Java absichtlich weggelassen wurden, wie pointer, präprozessor, überladene operatoren und mehrfachvererbung, weil sie zu fehlerträchtigem und schwer lesbarem code führen?
bis auf templates vielleicht, die würden Java auch gut stehen.
Darüber lässt sich streiten. Mehrfachvererbung wird in Java durch andere Features ersetzt. Es wird also nicht benötigt (wie es in C++ der Fall ist). Den Präprozessor braucht C++ auch, aber Java hat ein anderes Modul-System wodurch es keinen benötigt (falls man Textersetzungen braucht, oder bedingte Kompilation kann man jederzeit einen Präprozessor vorschalten).
Über Pointer lässt sich definitiv nur streiten, weshalb ich die außen vor lasse.Überladene Operatoren finde ich sehr sinnvoll, da sie das Lesen von Code deutlich vereinfachen können, da man mehrere Methodenaufrufe leserlich hintereinander hängen kann.
a1 = a2 + a3 + a4 + a5 + a6; //vs a1.assign( a2.add( a3.add( a4.add( a5.add( a6 ) ) ) ) );
Genauso wie hinter dem + oder = Operator etwas ganz anderes stecken könnte, als man erwartet kann ich Methoden mit den Namen assign oder add benutzen die etwas völlig anderes machen.
Daher ist dieses Argument imho quatsch.Ebenso das Argument, dass komplexe Operationen sich nicht hinter einfach aussehenden Dingen verstecken sollten.
vector v1, v2; //v2 hat viele tausend elemente v1 = v2; //aufwendige kopieroperation hinter op= //vs v1.assign( v2 ); //aufwendinge Kopieroperation hinter assign
Ein vector ist jetzt nicht gerade das Hammerbeispiel, aber ich hoffe euch wird klar was ich meine.
Als (gesunder) Programmierer gehe ich davon aus, dass eine Zuweisung eines großen (komplexen) Objekts aufwändiger ist als das Zuweisen eines ints. Ob da jetzt op= oder assign steht ändert nichts daran, dass ich in die Doku schauen muss um zu sehen wie das Kopieren genau aussieht.
-
@lolz,
schon klar, der eine findet das gut, der andere jenes. es gibt keine universelle wahrheit und wenn wir damit weitermachen, haben wir genau diesen C++ vs. Java flamewar wieder hervorgekramt.
ich finde jedenfalls, dass Java und C++ sich sehr fremd sind (bis auf die C-style syntax ist doch vieles extrem anders), deshalb wundert es mich eben, weshalb so oft Java mit C++ verglichen wird.
-
Simon2 schrieb:
Apollon schrieb:
Simon2 schrieb:
Schon erstaunlich, wie lange man über sowas streiten kann.
Nein. Erstaunlich wie Du ueber sowas streiten kannst.
Muss ich nicht verstehen, oder ?
Versuchst Du jetzt, mich irgendwie zu provozieren, damit Du weiter was zum Streiten hast ?
Mein statement zu dem Thema kannst Du oben nachlesen.
Mag sein, dass Dir langweilig isr, mir nicht - ich genieße jetzt Samstag, Sonne und Erdeeren mit meiner Frau.Schönen Tag noch,
Simon2.
Nein. Um Gottes Willen! Ich kann mich nur gut erinnern, dass Du damals ordentlich mitgemischt hast. Das ist alles. Ich geniesse jetzt den Abend mit meinen Freunden beim Grillen
Wuensche dir ebenso einen schoenen Tag!
-- Waldemar
-
Genauso wie hinter dem + oder = Operator etwas ganz anderes stecken könnte, als man erwartet kann ich Methoden mit den Namen assign oder add benutzen die etwas völlig anderes machen.
Daher ist dieses Argument imho quatsch.Das erinnert mich an das was ich eben über C# und Delegates gelesen habe.
A: Quick, can you spot the inefficiency in this code? public void Calc(int[] foo)
{
Sum = 0;
for (int i = 0; i < foo.Length; i++)
Sum += foo[i];
}What you may have missed is that every += involves two function calls. The only indication of this fact is the uppercase 'S' in Sum (which by the way is a convention that is frequently not followed), so the inefficiency is not easy to spot
Bei C++ und C# muss man halt bei jedem Operator bangen das er überladen wurde und das hinter einem simplem + sich etliche Methodenaufrufe verstecken könnten.