Java besser als C++?

So jetz sag ich mal was zu Java und Plattformunabhängigkeit.
Wir (meine Firma) fangen so langsam an etwas Java in unserem Softwareprodukt zu verwenden.
Dabei wollen wir ein Java-Help-System verwenden.
Da wir für Unser Softwareprodukt meherer Plattformen anbieten (Windows, HP-UX, Solaris, AIX und IRIX) müssen wir natürlich Plattformübergreifend entwickeln.
So nun zum Problem:
Auf AIX (sehr wichtig bei uns) würd für AIX 4.3 leider nur Java 1.3 von IBM (danke IBM) angeboten und unterstützt.
Da unsere Applikationen Motif verwenden und AWT das auch tut und Motif auf AIX 4.3 nicht Threadsafe ist, fliegt uns hier alles um die Ohren.
Jetzt werden natülich viele Sagen, da kann JAVA nix dafür, das liegt an Motif und IBM will nicht Java 1.5 auf AIX 4.3 unterstüzen, aber durch diese missliche Lage wird Java auch bei uns im Oberflächenbereich keine Zukunft haben.
Dafür läuft Java 1.5 auf einem Kühlschrank (aber sorry mit Kühlschränken arbeiten unsere Kunden allenfalls in der Teeküche).

Es soll sich niemand hier Angegriffen fühlen, ich wollte nur mal eine Situation aus der Praxis aufzeigen.

Daniel
 
Hi,
möchte mich eigentlich nicht großartig bei der Diskussion beteiligen, da hier ziemlich viele Stammtischphrasen eingebracht werden, aber zu dem einen Punkt möchte ich doch was loswerden.
Shaijan hat gesagt.:
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.

Gruß
Shai

Für so eine Problemstellung gibt es Interfaces in Java.
Aber egal in welcher OO Sprache man arbeitet, gleichartige Objekte sollten über eine klar definierte Schnittstelle angesprochen werden, da brauch man keine Zeiger zu verbiegen.

Gruß Patrick

P.s. Wenn hier jetzt noch ein Wort von .NET fällt, schließe ich den Thread ;-]
 
Ich glaube, jetzt muß ich auch mal meinen Senf hier dazugeben.
Meiner Meinung nach ist Java für größere PC-Applikationen nicht geeignet, weil es als Interpretersprache zu langsam ist. Für Webanwendungen ist es ideal, vor Allem wegen der Plattformunabhängigkeit. Ich arbeite hier unter Anderem mit ein paar in Java geschriebenen Tools und es ist einfach nervig, wie lange die immer brauchen. Vor Allem größere Applikationen würde ich IMMER in C++ schreiben. Wenn ich Wert auf Portabilität lege, dann nehme ich eben die STL und qt als GUI. Dann kann ich das Prog jeweils für Linux oder windows kompilieren. NOTA BENE: Ich spreche von PC-Anwendungen!
Natürlich muß man beim Programmieren in C++ sehr diszipliniert sein und aufpassen, daß man keine Member-Variablen verändert, die man nicht verändern soll. Aber wenn die Klasse ordentlich implementiert ist, dann kann man das auch nicht. Was die Pointer angeht: Ich möchte nicht mehr ohne leben. Gerade wenn man mit größeren Datenmengen arbeitet, die durch mehrere Objekte unterschiedlicher Klassen geleitet werden müssen, ist es effektiver, nur einen Zeiger auf die Daten durchzureichen als immer den gesamten Datenblock kopieren zu müssen. Das kostet Zeit und Speicher, da dieselben Daten mehrfach im Speicher abgelegt werden. Wie schon gesagt, es erfordert mehr Disziplin, ist im Ergebnis aber effektiver und bietet mehr Möglichkeiten.
Obwohl ich damit keine Erfahrung habe, würde ich auch auf einem Palm immer C/C++ vorziehen, da vor Allem dort, wo Performance und Speicher noch nicht soo toll sind, Java zu langsam ist.
Ich möchte hier keinem auf die Füße treten, mit welcher Sprache jemand programmiert ist die Entscheidung jedes Einzelnen selber (sofern er nicht vom Chef was aufgedrückt bekommt ;-)). Jeder hat seine eigenen Präferenzen und jeder hat seine guten Gründe dafür. Meine habe ich hier dargelegt.
Hauptsache: Spaß daran haben!
 
Hallo!

Ich würde gar sagen, dass man größere Applikationen (dort wo es Sinn macht) auch in Java Schreiben sollte. Java ist gegenüber C++ einfach die einfachere Sprache (auch wenn das API immer komplexer wird) weiterhin ist das Konzept der automatischen Speicherverwaltung und der Virtuellen Maschine ein enormes Benefit, dass dazu beiträgt sicherere und fehlerfreiere Software zu schreiben. (Man schaue da auch mal kurz in Richtung Microsoft die mit ihrerer neuen .XXX Plattform die selben Konzepte wie Java implementieren und diese zu ihrer Standardplattform für die Entwickelung neuer Produkte gemacht haben). Weiterhin sollte man nicht verachten das immer mehr "richtig" große Anwendungen nach und nach in Java Umgeschrieben bzw. durch Java Komponenten ersetzt wurden / werden. Man schaue da einfach mal auf ebay die nur noch das Frontend hinter einer ISAPI.dll verstecken, der "Rest" mit der Geschäfts- und Transaktionslogik liegt komplett in Java vor. Anderes Beispiel wäre der ERP Riese SAP welcher dabei ist seine Systembasis nach und nach auf Java umzustellen. Seien wir doch mal ehrlich wenn wir uns über langsame Java Anwendungen Ärgern dann sind das doch eher "ältere" java Anwendungen wie etwa der Enterprise Manager von Oracle... diese älteren Anwendungen wurden auf einer älteren API entwickelt und nutzen natürlich die Möglichkeiten Moderner API's nicht aus. Weiterhin sind bei solchen Anwendungen u.U. (auf Grund mangelnder Erfahrung und oder Zeitdruck) Design Fehler gemacht worden die sich nun im Sinne von schlechter Performance äußern.... Moderne Produkte wie z.Bsp das UML Tool Magic Draw das auch komplett in Java geschrieben worden ist läuft angenehm schnell (und dass auch auf einem 800 MHz P3 und 512 MB Ram)... also kurz und knapp nutzt man das API "richtig" und macht keine Designfehler hat man keine Performance Probleme zu erwarten aber das gleiche gilt natürlich auch für C++ Anwendungen.

Gruß Tom
 
Hallo!

Jetzt werden natülich viele Sagen, da kann JAVA nix dafür, das liegt an Motif und IBM will nicht Java 1.5 auf AIX 4.3 unterstüzen, aber durch diese missliche Lage wird Java auch bei uns im Oberflächenbereich keine Zukunft haben.
Also ich würde sagen, dass das kein Java sondern ein IBM Problem ist ;-). Nur weil es bei euch im Einzelfall nicht verwendet werden kann muss ja nicht gleich die Sprache für unfähig Brandmarken ;-)

Gruß Tom
 
Also von "unfähig" hab ich nix geschrieben.
Wenn du etwas genauer meine Beiträge in diesem Thread gelesen hättest, dann hättest du gemerkt, daß ich Java gegenüber keinesfalls feindlich eingestellt bin. Im Gegenteil durch Java haben wir einen Teil unseres Produktes um plattformübergreifende Funktionalität bereichern können. (JDBC-Datenbank-Zugriffe)
Ich wollte nur mal ein Beispiel aus der Praxis aufzeigen, weil alle immer so groß rauschreien, daß Java ja "achsotoll" Plattformunabhäng sei..
Ich will Java damit nicht in ein schlechtes Licht rücken.

Daniel
 
Hallo!

Wenn du etwas genauer meine Beiträge in diesem Thread gelesen hättest, dann hättest du gemerkt, daß ich Java gegenüber keinesfalls feindlich eingestellt bin.
..und wenn du meine Beiträge genauer gelesen hättest, hättest du die ;-)-Smilies gesehen ;-)

Na ja, das Problem mit AIX kenne ich selbst.
Für die "5er" Version von AIX gibt es immerhin schon das J2SDK 1.4.2 :)
http://www-106.ibm.com/developerworks/java/jdk/aix/service.html

Das "Problem" mit AIX (iSeries) ist, dass wenn man einmal so eine Maschine (die gewiss nicht gerade billig sind) in der Firma stehen hat, man schön die Finger davon lässt und nur so viele Updates wie absolut nötig sind einspielt. Ich hab gehört, dass der Service bei den meisten Kisten dieser Art so teuer geworden ist, dass man besser gleich ne neue Maschine kauft...

Also nichts für ungut :)

Gruß Tom
 
Zurück