C, C++ oder Java??

Diskordia schrieb:
Dass Java langsamer als C/C++ sein soll ist nur ein Gerücht, schaut eucht doch mal Java2, das bald auf OSX portiert wird an!
GruZZ Diskordia

Von welchem Java redest du jetzt? 1.2? 1.3? 1.4? 1.5?

Achja. Im grafischen Bereich ist Java nunmal langsamer als C++ mit GUI. Sorry, aber da kann mir keiner erzählen "Java sei nicht langsamer".

Besonders SWING ist extrem lahm. AWT geht eigentlich. Aber bei komplexen GUIs geht es auch extrem runter. SWT kenne ich jetzt nur von Eclipse. Aber so schnell ist das auch nicht. Wie gesagt. C++ Programme mit separater GUI-Library ist merklich schneller.

Mag sein das es unter Windows schneller ist, aber unter OS X ist es nicht so der Hammer...

Im nicht-grafischen Bereich ist Java an sich schnell genug. Der Vorteil von C++ liegt aber an besseren Compilern. Also der Code kann besser an die CPU angepasst werden und so immer noch schneller als Java sein.

Wie gesagt. Die Vorteile von Java liegen wo anders. Aber garantiert nicht in der Geschwindigkeit...
 
Es ist wirklich war, dass die GUI - vor allem unter OSX - merkbar langsamer ist als eine QT-GUI (oder ähnliches).

Im nichtgrafischen Bereich ist Java an manchen Stellen sogar schneller als C++. Einzig das starten der JVM dauert am Anfang. Der Rest verhält (bei nicht direkter Hardwareprogrammierung) unterschiedlich. Manchmal ist C++ schneller und manchmal Java.

Bessere Compiler sind das nicht. Die JVM ist extra für jede Architektur kompiliert und bildet somit das System für die class-files recht schnell ab.

Es heißt nicht "Java ist nicht langsamer" sondern "C++ ist nicht unbedingt schneller"!
 
Diskordia schrieb:
Dass Java langsamer als C/C++ sein soll ist nur ein Gerücht, schaut eucht doch mal Java2, das bald auf OSX portiert wird an!
Und wenn ihr Java mit SWT programmiert, dann habt ihr au kein "hässliches" GUI mehr, denn SWT benutz die standart Systemoberfläche.
Ich persönlich habe zuerst C/C++ gelernt, würde jedoch jedem empfehlen mit Java zu beginnen, es ist einfach sauberer ausgearbeitet und dadurch entstehen auch weniger Fehler.
Falls man aber direkt auf den Speicherbereich zugreifen will gibt es keinen Weg an C/C++ vorbei!

GruZZ Diskordia
Sorry, aber programmierst Du unter Java professionel? Java 2 entspricht nämlich den Java-Versionen ab 1.2, weil dort so viel verändert wurde (was auch Performanz brachte) so dass Sun entschied, es Java 2 zu nennen.
Was meinst Du mit häßliches GUI? Bei mir sieht ein Swing-Programm wie ein native OSX-Programm aus.
 
Danke erstmal!
Hab mich aber immer noch nicht richtig entscheiden koennen.
Welche Sprache wuerdet ihr mir verordnen um z.b.: nen Karteikastensim. zu schreiben?
Muesste in der Lage sein eine Bibliothek zu verwalten. Richtig beantwortete Fragen ein Kasten weiter falsche einen Zurueck usw. solte es auch beherschen.
Vermutlich ist das soooooo simpel, dass man da alle Sprachen benutzen koennte. Aber welche waehre am besten geeignet?
 
Ich bleib dabei: Java ist eine sehr gute OO-Sprache zum Einsteigen, weil es da gar nicht möglich ist bestimmte Fehler zu machen. Auf jeden Fall besser Java --> C++ als umgekehrt.

Dass Du Dir gleich als erstes Programm schon den Spaß mit einer grafischen Oberfläche antun möchtest, naja ok ;-) Aber mit einem guten Buch ist auch das sicher kein Problem.
 
naja kommt ja drauf an was du machen willst.
wenn du gui´s entwickeln willst dann ist wohl c++ oder objectiv c besser.
ich entwickel mit java ausschließlich im J2EE web-umfeld.
also servlets, beans, struts usw.
da ist java halt das einzig wahre denke ich.

gruss
 
CapFuture schrieb:
Zu .Net:

....

Der Unterschied zwischen den beiden ist meißt, dass C# einige Methoden mit großbuchstaben schreibt und Java nicht...

Hehe, cool ,es ist also noch anderen Leuten aufgefallen :D
 
Zuletzt bearbeitet:
Hi,
hab mir mal das Buch "Absolute Geginner's Guide To C" ISBN 0-672-30510-0 durchgelesen:
Genial! Einfach geschrieben, aufgelockert und einfach zu verstehen.

Wollt ich einfach mal sagen.
 
CapFuture schrieb:
Das ist "keine" Programmiersprache, sondern nur ein Vermurgstes Framework... MS versuch sich ums Sun's Java zu drücken...
Der Unterschied zwischen den beiden ist meißt, dass C# einige Methoden mit großbuchstaben schreibt und Java nicht...

Was ist an .NET vermurkst? Begruendung bitte.

C# hat Properties, Operator Overloading und Delegates! Und vor allem letzteres ist das, was Java haben sollte... aber kommt wohl noch. Sie kopieren ja jetzt eh alle Funktionalitaet von C#...
 
Zuletzt bearbeitet:
Also ich bin normalerweise absoluter M$ Gegener, aber das VS .NET und die Sprachen die man da dazugekommt, wie beispielsweise C# sind einfach nur geil!

Ich wuerde dir raten erst C zu lernen und dann dich mit der Obermenge C++ zu beschaeftigen. J2EE ist so langsam, das ist echt zum Kotzen, ich habe 2 Jahre lang JAVA-Programme entwickelt, was mir aber nicht wirklich Spasz gemacht, also die Entwicklung schon, aber das Resultat war nicht so toll - viel zu langsam und dadurch ist der Spasz-Faktor auch in den Keller gegangen.

C++ Programme laufen bis zu 10.000 mal schneller - also wenn, wuerde ich erstmal reines (pedantisches) ANSI C89 lernen - das macht einfach nur Spasz. :D :D :D :D

LG

Ricci007
 
ricci007 schrieb:
Ich wuerde dir raten erst C zu lernen und dann dich mit der Obermenge C++ zu beschaeftigen. J2EE ist so langsam, das ist echt zum Kotzen, ich habe 2 Jahre lang JAVA-Programme entwickelt, was mir aber nicht wirklich Spasz gemacht, also die Entwicklung schon, aber das Resultat war nicht so toll - viel zu langsam und dadurch ist der Spasz-Faktor auch in den Keller gegangen.

C++ Programme laufen bis zu 10.000 mal schneller - also wenn, wuerde ich erstmal reines (pedantisches) ANSI C89 lernen - das macht einfach nur Spasz. :D :D :D :D

LG

Ricci007
Das kann ich so nicht unterschreiben. Java ist zum ersten wesentlich bequemer und ist schon lange nicht mehr so langsam, wie es viele wollen. Ich entwickle derzeit mit Java 1.4.2 und teilweise ist es schneller als C++.

Ich würde auch nicht erst mit Ansi-C anfangen, da die Grundsätze verschieden sind und man heutzutage fast nur OOP für größere Projekte nutzt.

Und 'Spasz' bringt das ganze nicht unbedingt. Man kann viele Fehler einbauen, die schwer zu finden sind. Und dieser ganze Link-Quatsch nervt mich auch immer.
 
Hi

ricci007 schrieb:
J2EE ist so langsam, das ist echt zum Kotzen,

genau! ... und alles hat ein Ende nur die Wurst hat 2. ;)

ricci007 schrieb:
ich habe 2 Jahre lang JAVA-Programme entwickelt, was mir aber nicht wirklich Spasz gemacht, also die Entwicklung schon, aber das Resultat war nicht so toll - viel zu langsam und dadurch ist der Spasz-Faktor auch in den Keller gegangen.

vielleicht solltest du mal Refactoring betreiben ;)
was hast du denn geschrieben in Java? Applets?

ricci007 schrieb:
C++ Programme laufen bis zu 10.000 mal schneller - also wenn, wuerde ich erstmal reines (pedantisches) ANSI C89 lernen

also hast du C2ee am laufen ;), macht bestimmt viel mehr Spass :D

würdest du dein J2ee mal auf einer Sun-Maschine laufen lassen, würdest du vielleicht schnell feststellen das die Apps unter hoher Systemlast gut skalieren und nicht wie zB das Forum hier unter hoher Auslastung in die Knie geht und nichts mehr geht.
Aber wie schon chrizel festgestellt hat, ist Java nur Marketing und die Firma Sun eh zu nix zu gebrauchen.
Witzig finde ich das chrizel den Editor vi benutzt, wurde er doch vom gleichen Sun Entwickler wie Java angefertigt :D Stichwort Bill Joy.
http://www.daswillichwissen.de/Bill_Joy
 
Zuletzt bearbeitet von einem Moderator:
Sym schrieb:
Ich entwickle derzeit mit Java 1.4.2 und teilweise ist es schneller als C++.
Das wäre ja etwas ganz neues. Mit welchem wundersamen Java-Code schlägst du C++?
 
WoSoft schrieb:
Das wäre ja etwas ganz neues. Mit welchem wundersamen Java-Code schlägst du C++?
Manche Bildverarbeitungsalgorithmen sind schneller unter Java. Wir haben das bei Philips in der Forschung getestet. Die JavaMachine bremst das System nicht mehr, wie es am Anfang war. Nur der Start des jeweiligen Programms ist am Anfang nicht gerade unbedeutend langsamer. Die Speicherverwaltung ist aber ziemlich gut.
 
Ehm dann ist der Algorithmus besser, aber nicht Java!?

Schreibste das ganze in C++, so wird Java wieder alt aussehen.
Und mal ehrlich: Für echtzeitsysteme ist Java nicht wirklich zu gebrauchen. Stellt euch mal ABS mit Java vor. :eek:
 
CapFuture schrieb:
Ehm dann ist der Algorithmus besser, aber nicht Java!?

Schreibste das ganze in C++, so wird Java wieder alt aussehen.
Und mal ehrlich: Für echtzeitsysteme ist Java nicht wirklich zu gebrauchen. Stellt euch mal ABS mit Java vor. :eek:
Es waren einige Tests, die wir dort gemacht haben (naja, ich habe es nicht selber programmiert, da ich bei einem anderen Projekt dabei war). Sie wurden natürlich in beiden Sprachen umgesetzt.
Und manchmal war Java schneller. Es hat sich nunmal sehr viel bei Java getan.
 
Sobald das Java Programm akzeptabel läuft ziehe ich es dem C/C++ vor, denn das Entwickeln geht mir einfach leichter von der Hand.

Grüße Sebastian
 
Sym schrieb:
Manche Bildverarbeitungsalgorithmen sind schneller unter Java. Wir haben das bei Philips in der Forschung getestet. Die JavaMachine bremst das System nicht mehr, wie es am Anfang war.

Ich kann es nicht fassen, wie leicht du dieses Testergebnis den Sprachen selbst zuordnest, nur weil eine Implementierung eines Algorithmus diesen Performanceunterschied zeigte. Es ist schade, dass sich diese Ansicht so hartnäckig hält.

Sym schrieb:
Die Speicherverwaltung ist aber ziemlich gut.

In C++ (z.B.) kann man die Speicherverwaltung von Java (eine Garbage Collection) ja nachprogrammieren, wenn sie denn in diesem speziellen Fall Vorteile bringt. Wenn man auf die Behandlung einiger Spezialfälle verzichtet (zirkuläre Referenzierungen etc.), ist das gar nicht mal so aufwendig.

Es gibt nur sehr wenige Fälle, in denen Java überhaupt schneller sein kann, nämlich dann, wenn der (auf beiden Seiten unoptimierte) Code von einer Laufzeitoptimierung profitieren kann. Aber auch das lässt sich immer aushebeln, indem man den Algorithmus auf Seiten von C++ nicht mehr wie den Java-Code aussehen lässt, sondern aggressiver auf die Maschine und das Laufzeitverhalten anpasst. Wie gesagt, zur Not programmiert man auch hier die Laufzeitoptimierungen nach. Natürlich stiege damit der Entwicklungsaufwand, aber das ist hier nicht der Punkt.

Dass optimierte Java-Implementationen schneller sein sollen als optimierte C++-Implementationen ist ausgemachter Unsinn.

Wenn wir den Spieß rumdrehen, kann es brutal schlecht aussehen für Java. Es ist leicht, Probleme anzugeben, in denen es für ein Java-Programm unmöglich ist, auch nur wenige Prozent der Performance eines äquivalenten (bezüglich äußeren Anforderungen) C++-Programmes zu erreichen. Sollte es jemanden interessieren, ich könnte mir z.B. mal ein Sortierproblem ausdenken und würde einen Kasten Bier drauf wetten.

Oder es biete doch bitte mal einer eine Java-Implementation hiervon:
https://www.macuser.de/forum/showthread.php?t=43182
(siehe Beiträge 13 bzw. 55)
 
Zuletzt bearbeitet:
snady schrieb:
Sobald das Java Programm akzeptabel läuft ziehe ich es dem C/C++ vor, denn das Entwickeln geht mir einfach leichter von der Hand.

Grüße Sebastian
Diese freie Wahl habe ich nur privat, um mich dann i.d.R. für Cocoa/Objective-C zu entscheiden. Dienstlich gibt der Projektleiter vor, welche Klassen mit welchen Methoden ich in welcher Sprache zu schreiben habe.
 
blutfink schrieb:
In C++ (z.B.) kann man die Speicherverwaltung von Java (eine Garbage Collection) ja nachprogrammieren, wenn sie denn in diesem speziellen Fall Vorteile bringt. Wenn man auf die Behandlung einiger Spezialfälle verzichtet (zirkuläre Referenzierungen etc.), ist das gar nicht mal so aufwendig.

Wenn du zirkulare Referenzierung bei dei der Implementierung vom GC draußen lässt, kannste gleich Reference Counting machen. ;)
 
Zurück
Oben Unten