Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Zitat:
Zitat:
|
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Hai ihr,
es ist ja schön das ihr über das Thema diskutiert. Aber bleibt dabei doch bitte höflich und sachlich ohne irgend ein anderes Mitglied der DP persönlich anzugreifen. Danke. |
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Zitat:
Klar, man kann seine Programme verifizieren und zeigen, was eine Methode genau macht. Aber wenn ich in der Verifikation oder viel schlimmer in der Spezifikation einen Fehler mache ist das natürlich auch wertlos. Wenn du nun für n Systeme dein Programm zur Verfügung stellen möchtest, dann hast du das Problem, dass jeder Compiler (für egal welche Sprache) für dieses System existieren muss (oder du musst ihn selber schreiben). Beide Fälle können nicht ausschließen dass dabei Fehler passieren. Genau so wenig kann dir jmd. garantieren, dass dein Compiler optimierten Code erzeugt (gerade hier liegen etliche Fehlerquellen). Also warum sollte Sun das für Java können? Gut, natürlich brauche ich bei Java noch ein JRE um das Programm zu starten, ich verdoppel also quasi die Fehlermöglichkeiten. Soweit so gut, nehmen wir mal an du hättest für n Plattformen funktionierende (o.B.d.A) C-Compiler die dir perfomanten Code erzeugen. Dummerweise haben die aber die Angewohnheit, Plattform spezifischen Code zu verlangen und du schreibst dass Programm n mal. Ja, die Wahrscheinlichkeit dass 1 der n Programme einen Fehler hat ist schon mal sehr groß. Wenn du jetzt mehr als ein Programm hast... Wenn es einen Fehler in einem JRE gibt, so wird er (durch die große Anzahl der Benutzer) sicherlich schnell entdeckt und hoffentlich auch behoben. Selbes gilt für javac. Natürlich bräuchtest du erst ein JRE für jede Plattform auf dem es laufen muss, aber wenn du eh für eine Plattform entwickelst, für die es ein solches gibt, hast du gratis eine Version für jede andere. Zudem musst du deinen Code nur einmal verifizieren und müsstest ihn nur an einer Stelle korrigieren, also ist die Idee von Plattformunabhägigkeit nicht so schlecht. Es bleibt aber eine Idee, es wird wahrscheinlich nie eine 100%tige Deckung für alle Plattformen geben (wozu auch). Was aber eigentlich wichtiger ist, niemand möchte eine Software unbedingt unter wirklich allen Plattformen anbieten. Das ist eine einfache Kosten/Nutzen Abschätzung und wenn du höchste Performance auf allen Plattformen garantieren möchtest, dann denke ich landest du schnell bei handoptimiertem Assembler (es lebe die PS One). Überhaupt ist wird Java ja gerne mit dem Wort Performance in Verbindung gebracht. Lustigerweise meinen Leute, dass es der große Nachteil von Java sei, dass es so langsam arbeitet. Wie langsam Java wirklich ist (oder eben nicht), dazu findet man genug. Was aber mal erwähnt werden sollte ist, dass es gar keinen Grund gibt Java aus Performancegründen einzusetzen. Ich glaube der eigentliche Grund für den Trend zu Java war es damals gewesen, dass diese Sprache eine extreme Codesicherheit bietet. So bietet Java sehr hohe Typsicherheit. Insbesondere gibt es keine Zeiger, die ich einfach mal auf den falschen Speicherbereich setzen kann. Ich kann auch nicht über die Länge eines Arrays hinaus lesen, schließlich ist es von fester Länge usw. Unter dem Aspekt betrachtet ist Java für Firmen sehr interessant und bei heutigen Rechnern (die in sehr wenigen Programmen wirklich 100% Last für mehr als ein paar Sek. haben) sind Java Programme damit für verschiedene Probleme geeigneter als anderes. Natürlich wird es wenig Videobearbeitungssoftware für Java geben, aber auch dass kann sich noch ändern. Viele Prozessoren haben schon heute Coprozessoren die direkt Java Befehle abarbeiten (und nebenbei bemerkt, .net verfolgt keinen anderen Ansatz. Zudem hat C# mehr Ähnlichkeit mit Java als mit C/C++). Es gibt einfach verschiedene Bereiche in der Softwareentwicklung mit ganz verschiedenen Anforderungen. Man braucht sich nur mal J2EE und die Firmen die darauf setzen anschauen (nicht wenige, nicht nur kleine..) Und auch in dem Bereich gibt es Perfomantere Lösungen, aber Geschäftsprozesse in Banken wollen lieber Sicherheit anstatt Performance (die auch nicht zu kurz kommt) sowie Skalierbarkeit. Als letztes möchte ich noch Anmerken, dass Microsoft bereits verkündet hat, dass sich auch an ihren Betriebssystemen eine Menge ändern wird. So arbeitet man heute noch mit Sprachen und Konstrukten, die super auf Rechenzeit und Speicherverbrauch optimiert sind (als beides noch knapp war), aber die heutigen Rechnerarchitekturen haben soviel mehr Performance als genutzt wird. Man möchte jetzt auf eine (auf C# basierende) Sprache wechseln, die einfach mehr Sicherheit. Damit sind dann Speicherüberläufe durch zu geringe Prüfung gemeint (u.a.) und dabei ist Microsoft gerne bereit etwas weniger perfomant daher zu kommen. Gruß Der Unwissende PS.: Sorry ist eigentlich alles total OT, aber die eigentlich Frage wurde ja schon erörtert |
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Zitat:
Ich nenne mal meine wichtigsten Gründe gegen Java: * 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. * Strings sind Objekte... LOL, schade das die Char's primitiv sind :zwinker: * Bei Methoden kann man in Java nicht bestimmen ob primitive Typen per Reference oder ByValue übergeben werden sollen, C# hat das, ja sogar "out". * 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. * Um Callback-Methoden übergeben zu können, muss erst ein Objekt erstellt und die Methode überschrieben werden. C# kann man auch Methoden per Parameter übergeben. * 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 :zwinker:. * Java "Programme" benötigen ja schon fast Großrechner, um mehr oder weniger anständig laufen zu können :wall:. 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... :wall: * 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 :lol:. Übrigens, zu Swing könnte man noch Bände schreiben, wie schlecht das ist. Wer sich schon mal die Swing Klassen angeguckt hat, wird schnell merken warum das so langsam ist. Einfach nur grottig programmiert! * Keine Pointer! Pointer sind sehr schöne Dinge, die jeder versierte Programmierer sicherlich nutzt. C# hat Pointer, ist zwar "unsafe", aber geht :cyclops:. * All die Vorteile von Java (Plattformunabhängigkeit, mehr kenn ich nicht :angel2:) werden eh schon durch die Geschwindigkeit und den Speicherverbrauch fast zu nichte gemacht. Will man schnellere Applikationen (siehe Eclipse) kommt man um die Verwendung von effizienten, nativen, Bibliotheken nicht drum herum. Um nur eine zu nennen: SWT. * .net ist vom Konzept her einfach besser... Nur schade das es von MS ist, und offiziel wohl immer nur Windows unterstüzt wird :oops: Programmierer die in Delphi bisher eh nur Fenster zusammengeklickt haben und kaum in die Tiefen eingestiegen sind :gruebel: werden eh all diese Macken von Java nicht erkennen. Ich bin mir sicher, das man die Liste noch länger machen kann... |
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Zitat:
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:
Es sei denn man übergibt es per var - aber das geht in Java doch auch, dass man Werte per Parameter zurückgibt! Zitat:
Zitat:
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:
Zitat:
Zitat:
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. |
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
Edit1: Quote-Tag korrigiert. Edit2: Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
@md_mse
Zitat:
getter/setter: zu zeiten von ide's (z.b. eclipse) kein thema. alles kann automatisch erstellt werden. gui: ja, man benötigt eine einarbeitungszeit. ist nicht ganz einfach, eine komplexe gui zu erstellen, wenn man es noch nie gemacht hat. aber es gibt auch gui-builder. die meisten haben den nachteil, daß man bei nachträglichen einfügen etwas auf den schlauch steht, wenn man die herkömmliche klasse schon geändert/angepaßt hat. wenn man nicht auf den gui builder verzichten will, kann man auch jbuilder oder netbeans (kostenlos) nehmen. und wenn dann einige rumjammern, jbuilder ist teuer, dann sollte man überlegen, daß der jbuilder in der gleichen preisklasse wie delphi spielt. pointer: java hat bewußt keine pointer. weitere vorteile von java (außer plattformunabhängigkeit) gegenüber anderen sprachen: -sicherheit -applets -schnell programmierbare rmi-anwendungen jede sprache hat seine vor- und nachteile bzw. ist für bestimmte einsatzgebiete prädestiniert. schließlich kann ich auch nicht daherkommen, und behaupten, alle anderen sprachen außer perl seien schlecht, weil man sich in perl um keinerlei typumwandlungen kümmern muß (nur um mal ein beispiel zu nennen). |
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Zitat:
|
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
Java fehlt gegenüber c#:
-Structs, manchmal will man keinen Referenztyp -Delegates -Events -Properties -Indexer -Partial Classes -Iteratoren mit yield -Nullable Types -Zeiger, nützlich zumindest die Möglichkeit zu haben -Trennung von logischer Struktur den Namespaces und Dateien -Operatorüberladung -Anonyme Methoden -Mehrdimensional Arrays -Einfache Einbindung von DLL's (gehört nicht direkt zur Sprache) Dann kommen zusätzlich noch die ganzen Vorteile des .Net Frameworks dazu. |
Re: Weg mit Delphi her mit Java, für die Zukunft sicher?
@Tubos:
Zitat:
Zitat:
weiss ich auch, das selbst Geschäftsanwendungen nicht so langsam sein sollte wie es nunmal von Java geboten wird. Und die performancekritischen Sachen laufen nun sicher nicht in der DB an, kommt natürlich auf das Programm an... Die Meisten werden da sicher nicht mehr als SELECT, INSERT, UPDATE und DELETE benutzen :zwinker:. Zitat:
Zitat:
Zitat:
@tommie-lie: Zitat:
Zitat:
Das macht das Objekt ja auch nicht kleiner :wink:. Zitat:
Zitat:
@Mikko: Zitat:
Lieber PerReference. Zitat:
Zitat:
Zitat:
Was mir auch noch einfällt, Java hat ja auch bewusst kein "SetLength" für Arrays, sehr böse:!: Da haben sich die Sun Leute gedacht, lieber den Programmierer alles machen lassen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz