C++ vs. Java [Update]
-
erlauben die generics auch generische Funktionen?
Gibt es einen Grund warum primitive Datentypen verboten sind?
Wo ist der sinn eines generischen Containers in Java? Nur um sich das casten zu ersparen?
-
Original erstellt von Shade Of Mine:
Gibt es einen Grund warum primitive Datentypen verboten sind?Dass sie verboten sein sollen hast Du dir doch aus den Fingern gesaugt, oder? Da steht nur drin, dass es in der Design-Phase nicht berücksichtigt ist und nichts von einem Verbot. Vielleicht kommt das ja auch
-
Original erstellt von CengizS:
Dass sie verboten sein sollen hast Du dir doch aus den Fingern gesaugt, oder? Da steht nur drin, dass es in der Design-Phase nicht berücksichtigt ist und nichts von einem Verbot. Vielleicht kommt das ja auchdu hast vorher geschrieben die nutzung von primitiven datentypen ist nicht vor gesehen...
und warum ist das so?
-
Aus dem Text ...
----------------------------------/snip/---------------------------------------
It is explicitly not required that the systema) Provide downward binary compatibility: It is not necessary that class
files compiled under the generic compiler should run on previous releases, whether they use generics or not.b) Support the use of primitive types as type arguments: While allowing the use of primitive types (e.g., int, boolean) as type arguments would be nice, it should not be a goal of the design. The separation of primitive and reference types is a fundamental property of the Java programming language.
----------------------------------/snap/---------------------------------------Es ist also eine "Zuständigkeitsfrage". Erst wenn man sich über die Trennung von primitiven und Referenztypen in irgendeiner Form einigt würde es sinnvoll sein die Generics danach auszurichten.
[ Dieser Beitrag wurde am 29.11.2002 um 10:55 Uhr von CengizS editiert. ]
-
Was ist dann besser C++ oder Java?
Was ist besser ein Porsche oder ein dicker LKW?
Wenn man angeben will, sicherlich der Porsche, wenn man aber große gegenstände Transportieren will der LKW.
-
Was ist besser ein Porsche oder ein dicker LKW?
Und welche Sprache entspricht jetzt dem Porsche in deiner Analogie? Und welche dem LKW?
-
Porsche == C++
dicker LKW == Java
-
Jo, das hängt doch einzig und allein von der Problemstellun ab. Ich mein, niemand wird auf die Idee kommen, mit Java Fifa 2004 zu programmieren oder mit Javas BigInt ein PI-Programm.
-
Und wofür ist Java dann gut geeignet??
-
Wie schon gesagt wurde, für große Programme. Hinzu kommt, daß Java absolut plattformunabhängig ist, wenn für versch. Plattformen die VM implementiert ist. So sieht z.B. ein Klickibunti Swingprogramm unter Windows haargenau 1:1 exakt so aus wie unter Linux, weil die Komponenten von Java auch noch selber gezeichnet werden. Außerdem gefällt mir persönlich bei Java, daß man wirklcih alles unter einem Hut hat. Fensterbibliothek, Threads, Netzwerkprogrammierung, alles einfach. Man muss keine externen Libs nehmen.
-
((DefaultListModel)m_list.getModel()).addElement(((Unit)iter.next()).getName());
Aber wenn dann sowas dabei rauskommt würde ich echt von Java abraten :p
-
Original erstellt von Doktor Prokt:
Wie schon gesagt wurde, für große Programme. Hinzu kommt, daß Java absolut plattformunabhängig istzum hundertstenmal: java IST eine plattform.
-
Original erstellt von volkard:
zum hundertstenmal: java IST eine plattform.nö eine virtuelle maschine
-
Und was ist eine virtuelle Maschine? Eine Plattform!
-
Original erstellt von volkard:
[quote]Original erstellt von Doktor Prokt:
[qb]Wie schon gesagt wurde, für große Programme. Hinzu kommt, daß Java absolut plattformunabhängig istzum hundertstenmal: java IST eine plattform.[/QB][/QUOTE]
"ich hab so einen muskelkater" - "das heißt nicht muskelkater, sondern alphahydroxipropionsäuresepsis"
"ich nehme jetzt mein lindan und bekämpfe insekten" - "das heißt nicht lindan, sondern 1,2,3,4,5,6 hexacyclohexan"
Hier ist der Begriff doch uninteressant, bedeutend sind doch die Vorteile.
-
Original erstellt von Doktor Prokt:
[QB]"ich nehme jetzt mein lindan und bekämpfe insekten" - "das heißt nicht lindan, sondern 1,2,3,4,5,6 hexacyclohexan"γ-1,2,3,4,5,6-Hexachlorcyclohexan, soviel zeit muß sein!
ich sag ja auch nicht zu wasserstoff einfach wasser.
-
Original erstellt von volkard:
zum hundertstenmal: java IST eine plattform.Java IST eine Programmiersprache! :p ...was man aus seinem Java-Code letztendlich macht, das bleibt jedem selbst überlassen. Es gibt auch Möglichlkeiten, daraus eine ausführbare exe-Datei zu erstellen.
Du sagst IMHO zum hundertstenmal das Falsche! :p
[ Dieser Beitrag wurde am 01.12.2002 um 00:20 Uhr von Gregor editiert. ]
-
Ist eigentlich die java exe datei schneller als wenn man das mit dem java interpreter ausführt? wird das also richtig dabei compiliert. weil ich habe schonmal so einen compiler für perl gesehen. der machte einfach den interpreter und die module (dll) zusammen in ein exe packet. beim ausführen hat sich das ganze dann entpackt und einfach wieder den interpreter ausgeführt. ist das beim java compiler auch so, oder wird da richtig compiliert?
-
Original erstellt von Gregor:
**Java IST eine Programmiersprache! :p ...was man aus seinem Java-Code letztendlich macht, das bleibt jedem selbst überlassen. Es gibt auch Möglichlkeiten, daraus eine ausführbare exe-Datei zu erstellen.
Du sagst IMHO zum hundertstenmal das Falsche! :p
**vielleicht glaubstes dem ja:
http://www.research.att.com/~bs/bs_faq.html#JavaDu sagtes sowas wie
Hinzu kommt, daß Java absolut plattformunabhängig ist, wenn für versch. Plattformen die VM implementiert ist. So sieht z.B. ein Klickibunti Swingprogramm unter Windows haargenau 1:1 exakt so aus wie unter Linux, weil die Komponenten von Java auch noch selber gezeichnet werden. Außerdem gefällt mir persönlich bei Java, daß man wirklcih alles unter einem Hut hat. Fensterbibliothek, Threads, Netzwerkprogrammierung, alles einfach. Man muss keine externen Libs nehmen.
betrachte das mal unter der idee, daß die "absolute plattformunabhängigkeit" daher kommt, daß programme, die in der sprache java geschrieben wurden auf der plattform java laufen sollen. nur dann machts sinn. alles andere würde mir übrigens gestatten, so frei zu sein, die selbe "absolute plattformunabhängigkeit" für c++ zu postulieren, denn keiner hindert einen daran, ne vm und ne kleine lib für c++ zu bauen und die vm auf alle möglichen architekturen zu portieren. dann hättest du nur ein windargument erzeugt.
-
Diese "absolute" Plattformunabhängigkeit würde ich dann aber doch gerne mal sehen...
Wie kommt es dann, daß unter Linux die Prioritäten meiner Threads nicht beachtet werden. Unter Windows aber schon (so wie man's eigentlich erwarten könnte).
Dafür weckt Windows einen Thread, der mit sleep schlafen gelegt wurde erst wieder auf, wenn er wirklich dran ist. Linux gibt ihm Rechenzeit sobald wie möglich, also egal, wie viele Threads warten, der aufgewachte kriegt sofort Rechenzeit.Fazit: Exaktes Timing unter Windows mit Prioritäten, exaktes Timing unter Linux mit sleep, wenn ich beide haben will muß ichs über Prioritäten und sleep lösen. Ist das nicht umständlich?
Deswegen war es zum Beispiel (mir) nicht möglich einen Thread-Dispatcher in Java zu schreiben, der ohne Mitarbeit der Threads funktionierte.Wo ist sie denn nun, diese Plattformunabhängigkeit? (ich mein natürlich die "absolute")
[ Dieser Beitrag wurde am 01.12.2002 um 12:31 Uhr von Jester editiert. ]