Java besser als C++?

Aber da gibt es doch sowas wieviel bits ode bytes ein Programm aushalten kann oder so. Irgendwas hab ich da mal aufgeschnappt aber ich glaub nicht das dass stimmt.
 
moin


Jain.
Früher war das mal so, früher war 1MB Ram extrem viel.
Heute muss man sich um sowas kaum noch gedanken machen, was aber nciht heisst das man anfangen kann zu fuschen.


mfg
umbrasaxum
 
Also ich kenne beiden Seiten (relativ) gut ...

Habe immer sehr gerne und viel Zuhause und privat in C/C++ programmiert.
Hab jetzt einen kleinen Nebenjob bei dem ich in Java (J2ME) Programme für Handys entwickle ... beschäftige mich zudem ein wenig mit Java allgemein Zuhause...

Der Umstieg ist nicht besonders schwer, da die Syntax so ziemlich die gleiche ist. Java ist nur halt komplett OOP basierend...
Was mich an Java stört ist, dass man kaum Referenzen und schon gar keine Pointer benutzen kann, was das Verändern von Objekten zur Laufzeit verhindert.
Allerdings sind die Standart-Klassen besser aufgebaut als bei C++ (meiner Meinung nach), sie lassen sich irgendwie netter "bedienen" ...

Das Tolle an Java ist halt die vollkommene Plattformunabhängigkeit.
So lässt sich Java halt in allen möglichen Bereichen sehr einfach einsetzen, wie z.B. bei Handys und anderen Mobilen Endgeräten ... wo C++ wohl kaum gegen an kommt ... da ist nur immer die Umsetzung der VM von Gerät zu Gerät / Hersteller zu Hersteller immer sehr nervig *g*

Allerdings finde ich für PCs (Windows) C++ besser, da ich die Programmiertechnischen Unterschiede zu Java (Pointer, Operatoren, Wahl ob OOP oder nicht, Präprozessor etc.) einfach gerne einsetzen mag ...

Zur Performance kann ich da nichts sagen, da ich wie gesagt Java nur für Handys benutze und die sind nunmal nicht mit PCs vergleichbar ...
Aber generell kann ich mich meinen Vorrednern nur anschließen ... mit jeder Sprache kann man gleich große Programme schreiben ...
Letztes Jahr im Informatik-Unterricht hat uns unser Lehrer mal einen Zettel gegeben mit der Größe einiger Programme ... und wenn ich mich nicht irre hatte Win2000 mehr als doppelt so viele Zeilen wie das Programm eines Stealth-Bombers (aber ohne Gwähr *g*) und die Windows-Versionen sind ja bekanntlich zum größten Teil in C programmiert ...

Gruß
Shai
 
Wow das war ja echt gut erklärt also jetzt weis ich einiges mehr. danke. Eine Frage noch. Kann man mit Delphi oder VB auch riesige Programme schreiben? Ich meine so richtig große! Ich habe erst vor ein paar wochen ein Betriebs-praktikum absolviert und da hieß es das es schon gut ist mit so etwas anzufangen aber für später wenn man größere Programme schreiben will, reicht das nicht mehr aus! Stimmt das?
 
Zu Delphi kann ich nur sagen - es ist möglich! Was mich als Java & C User abschreckt ist das man sich die Oberfläche zusammen klickt und dann mit "leben" füllt.
Anderseits hat es auch was. Ist halt Imho top down Entwicklung statt bottom up, jeder wie er es will.
Ein Kollege von mir hat aus Spass mal ne einfache 3D Engine in Delphi geschrieben und die sah schon nett aus und lief flüssig auf seinem 1 GHz Athlon.
Aber welche Höhere-Sprache nun die Beste ist - ist wohl so ergiebg wie welches Bier das Beste ist. Ich würde immer beim Bier sagen, dass das einem am besten schmeckt und wenns halt "nur" Karamalz ist. :p
 
Naja, wie schon mehrfach gesagt, nicht die Programmgroesse bestimmt die Programmiersprache, sondern der Zweck des Programms.
Es gibt halt Sachen die besser mit Java zu implementieren sind und Sachen die man besser mit C macht.
Um nochmal meine Vorredner und mich selbst aufzugreifen: Java ist eben platformunabhaengiger, besonders wenn es darum geht vom PC wegzugehen und fuer Handies, Kuehlschranke und Dosenoeffner programmiert.
Wenn es um zeitkritische, also Realtime, Anwendungen geht ist C/C++ vorzuziehen, da der Code schneller ausgefuehrt wird.
C/C++ sind natuerlich auch relativ platformunabhaengig, jedoch gibt es durch die vielen Hersteller von IDEs, ich denke da jetzt hauptsaechlich an Borland C++ Builder und den Microsoft-Kram, so viele Libraries die an Windows gebunden sind, dass das Portieren auf ein anderes System, wie z.B. Linux nicht einfach wird.
Wenn man jedoch lediglich mit Standard-Libraries arbeitet wird man das Programm wohl ohne Probleme auf beiden Systemen kompilieren koennen. Das Problem dabei ist dann eben der Befehlsumfang.
Wenn ich mehr mit C machen wuerde als den ATI-Treiber fuer Linux zu reparieren und schonmal im Source eines Programms mal eine Kleinigkeit anzupassen oder zu korrigieren wuerde ich wohl dazu tendieren Linux-Libraries zu nutzen die es auch fuer Windows gibt.
 
Ich habe mich zuerst mit Java beschäftigt und dann mit C++ und muss in diesem Fall für Java Partei ergreifen. Es ging ja zunächst um große Anwendungen. Meiner Meinung nach, ist das gänzlich Objektorientierte Konzept von Java besser dazu geeignet große Anwendungen zu entwickeln. Das heißt aber nicht, dass diese Anwendungen dann auch so effizient wie effektiv sind.

Folgende Sachen sind mir negativ aufgefallen in C++:
Zuerst Pointer: Pointer sind ein Verbrechen gegen die Datenkapselung. Dass eine Klasse einer anderen Klasse einen Pointer auf eines ihrer Objekte gibt, ist eine schreckliche Vorstellung, aber in C++ gang und gebe. In Java werden Pointer nur implizit benutzt. Man kann sie gar nicht in dieser Weise missbrauchen.

Kompiler-Kommandos: Dass man ganze Methoden durch Kompiler-Kommandos ersetzen kann ist zunächst praktisch. In späteren Stufen wird das jedoch sehr gefährlich bezüglich der Übersichtlichkeit. Scheinbar gut, aber eine wahre Plage sind Konstanten-Definitionen als Kompiler-Kommandos. Zumindest gibt es in C++ keine dynamische Includes wie in PHP.

Wenn man einige Weile in C++ programmiert und irgendwann wegen eines horrorhaften Speicherverbrauchs auf das Wort "Memory-Leak" trifft, so hat man einige Flüche vor sich...

Java hat auch seine schlechten Seiten. Und das ist vor allem die Performance. Man erhält ja nur Byte-Code, der nicht direkt auf dem System läuft.

Gruss
 
Zurück