Zitat:
Java hat keine Strukturen (Records), C# hat sie jedoch. Ich finde es fast "pervers" für jeden sche*ß Objekte erstellen zu müssen... Kein Wunder das dann ein Java "Programm" je nach Komplexität schon an die Grenzen eines jeden normalen Rechners kommt.
Da sind zwei Aspekte zu beachten.
Zunächst, die reine Ausführungsgeschwindigeit von Java Programmen: Die hat durch JIT-Compiling und Optimierung stark zugenommen, ich habe es zuerst selbst nicht glauben können - aber viele Benchmarks bestätigen das.
Auf der anderen Seite stehen diese vielen Objekte. In einem Schulprojekt möchte ich beispielsweise ein Objekt serialisieren (also in einen Byte-Strom umwandeln) und übers Netzwerk verschicken. Ich muss (nur für dieses Serialisieren, da ist das Netzwerkzeugs noch nicht mitgerechnet) 3 Objekte anlegen und anstatt einfach ein Bytearray anzulegen muss ich die Bytes 3 mal hin- und herkopieren. Ich weiß, das ist jetzt ein Manko der Java-Bibliothek und hat wenig mit der Sprache an sich zu tun, aber es ist ein gutes Beispiel dafür dass man ständig am Objekte anlegen ist und ich bin der Meinung dass dadurch die Performance von Java zwangsläufig eingeschränkt ist. Da kann der JIT-Compiler noch so gut optimieren - wenn viele Sachen so umständlich zu lösen ind, wird Java immer langsamer als native Sprachen sein.
Ich weiß nicht wie das in C# aussieht - vielleicht muss man da nicht so viele Objekte anlegen?
Zitat:
Wie will man bei Java mehr als nur ein Resultat von einer Methode zurückgeben? Geht nicht, außer man erstellt wieder mal ein Objekt.
In Delphi kann man doch auch nur ein Resultat zurückgeben.
Es sei denn man übergibt es per var - aber das geht in Java doch auch, dass man Werte per Parameter zurückgibt!
Zitat:
Das schreiben der Getter und Setter ist vollkommen überflüssig. Hätten die Sun Männchen sich mal an Delphi orientiert. Gar C# hat die Codewörter "get" und "set", also bitte hier nix von ähnlichkeit zu Java erzählen .
Das ist wieder etwas subjektives. Ich habe in Delphi nie objektorientiert programmiert, erst in C++. Und in C++ gibts keine Properties - ich vermisse sie jetzt auch nicht. Hätte ich
OOP in Delphi gemacht, würde ich Properties in Java wahrscheinlich vermissen
Zitat:
Java "Programme" benötigen ja schon fast Großrechner, um mehr oder weniger anständig laufen zu können . Da könnte man sagen: "Wenn man effizient programmiert, ist auch Java schnell"... Naja, spätestens bei einem größeren Projekt merkt man, das man auch da an Grenzen kommt. Ich weiss das aus Erfahrung, ich durfte für meinen Arbeitgeber über ein Jahr lang mit Java programmieren...
Es ist nunmal ein Faktum dass es bei Geschäftsanwendungen fast immer völlig egal ist wie es mit der Performance aussieht. Denn die performancekritischen Sachen laufen in der Datenbank ab, und die ist meist in C++ oder einer anderen nativen Sprache geschrieben.
Spiele sind ein Beispiel für Anwendungen, die wirklich performant sein müssen damit man eine möglichst hohe Qualität erzielt. Es gibt bereits 3D-Spiele die in Java geschrieben wurden - ein Beispiel ist Chrome. (ich habe es noch nie gespielt)
Zitat:
GUI Entwicklung mit Java ist ein Albtraum. Wer mit Swing anfängt zu arbeiten, wird sich bald wünschen doch lieber zu C# zu wächseln oder zu Delphi
Stimmt.
Zitat:
Keine Pointer! Pointer sind sehr schöne Dinge, die jeder versierte Programmierer sicherlich nutzt. C# hat Pointer, ist zwar "unsafe", aber geht .
Achso? Ich brauche in Java keine Pointer. Kannst du ein Beispiel in einer Sprache deiner Wahl posten wo man ohne Pointer nicht oder nicht so einfach auskommt?
Zitat:
Programmierer die in Delphi bisher eh nur Fenster zusammengeklickt haben und kaum in die Tiefen eingestiegen sind
Das eine hat mit dem anderen doch nichts zu tun. In Netbeans kann man auch Java-Oberflächen zusammmenklicken, Netbeans erzeugt dann automatisch Swing-Code dafür.
Abschließend möchte ich noch erwähnen dass Firmen wie Sun oder Microsoft sich natürlich auf ihre neuen Technologien konzentrieren und Sprachen wie C++ oder Delphi als veraltet abstempeln.
Da aber Windows Vista wie Windows XP noch immer auf
Win32 basiert und unter Linux sowieso C++ der Standard ist (das war jetzt einfach geraten *gg*) glaube ich dass man auch heute noch mit C++ und Delphi gut fährt. Vor allem im Hobby-Bereich, wo sich Entwickler nicht nach betriebswirtschaftlichen Überlegungen richten müssen.