Registriert: Do Jun 19, 2003 10:44 Beiträge: 991 Wohnort: Karlsfeld (nahe München)
LarsMiddendorf hat geschrieben:
Naja, wenn es schon nicht Pascal sein soll, dann doch lieber C#, denn bei Java muss man für die Vorteile auf einige Dinge verzichten, die man in Delphi gewohnt ist.
Records
Properties
Indexer
Operatorüberladung
Ereignisse
C# kombiniert dagegen die guten Eigenschaften von Delphi und Java (und C++).
Kleine Anmerkung dazu:
Records sind in Java einfach Klassen ohne Methoden.
Operaten Überladung (zu den der Index Operator und zum Teil auch die Ereignisse gehören) sind nicht möglich, statt dessen sind aussagekräftige Methodennamen zu verwenden.
Microsoft versucht .NET Entwickler mit vielen CShap Sprach Features zu locken. Java bekommt seltener neue Sprach Features , dafür sind diese dann aber sorgsam durch den Java Community Process ausgewählt.
MfG
Flo
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Nein, es geht mir nicht um die Methoden. Records in Delphi haben auch Methoden. Das Hauptproblem ist, dass man in Java keine benutzerdefinierten Wert-Typen erstellen kann, die bei Zuweisungen kopiert und immer auf dem Stack gespeichert werden. Die einzigen Wert-Typen sind die primitiven int,float,.... . Daher kann man z.B. auch keine brauchbare Vektor-Klasse programmieren und das ist für 3D Grafik ja nicht ganz unwichtig.
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
@Evil-Devil: Ich finde "Klicki-Bunti" auch überhaupt nicht schön, schaffe kaum noch damit, aber als anfänger ist das halt wirklich cool, weil man schnell mal viel machen kann und nicht bei einer konsolenanwendung alles kompliziert abfragen muss. Delphi ist wirklich super für anfänger. Konsolenanwendungen sind für anfänger einfach nicht so spannend. (Vor allem für uninteressierte)
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Hallo Evil,
ist dieses Java-Swing-Fenster plattformunabhängig?
OK ich bin ungeduldig und habe mir die Antwort aus der Wikipedia geholt:
Zitat:
Java-Programme werden in Bytecode übersetzt und dann in einer speziellen Umgebung ausgeführt, die als Java-Laufzeitumgebung oder Java-Plattform bezeichnet wird. Deren wichtigster Bestandteil ist die Java Virtual Machine (Java-VM), die die Programme ausführt, indem sie den Bytecode interpretiert.
Java-Programme laufen in aller Regel ohne weitere Anpassungen auf verschiedenen Computern und Betriebssystemen, für die eine Java-VM existiert. Sun selbst bietet Java-VMs für die Betriebssysteme Linux, Solaris und Windows an. Andere Hersteller lassen ihre Java-VM für ihre Plattform zertifizieren, zum Beispiel die Firma Apple für Mac OS X.
Was ist in C++ denn nicht klar geregelt ...(wenn man auch wirklich C++ macht und nicht C mit Klassen).
Na dann lass mal in ner If-Abfrage das zweite = weg oder schreib mal aus Versehen nach der For-Schleife (aber vor dem {) ein ; hin. Delphi meckert sowas an, aber in C wirds kommentarlos geschluckt.
Das wird deswegen kommentarlos geschluckt, weil es legaler Code ist^^ Zugegebener Maßen ist das = und == für Anfänger leicht verwechselbar, zu 99% wird man den Fehler ab recht schnell merken.
Sidorion hat geschrieben:
Ausserdem finde ich es sehr irritierend, wenn neue Variablen innerhalb eines Funktionskörpers neu definiert werden (wobei das im Prinzip ja der Regel vom kleinstmöglichen Sichtbarkeitsbereich entspricht).
Und das ist auch gut so! Du weist nicht wie mich das in Delphi nervt, jedesmal oben alles deklarieren zu müssen oO In C++ lege ich Variablen da an, wo ich sie brauche. Dadurch habe ich auch gleich einen Kontext zu den Variablen. Wohlgemerkt in C++, nicht in C. In C ist es wie in Delphi das alle Variablen am Anfang aufgeführt sein müssen.
Sidorion hat geschrieben:
Im Projekt meiner Firma werden ganze Klassendefinitionen aus Templates heraus erzeugt. Da gibt man z.B.: nur dan, dass man ne Listenklasse für Integer(oder einen beliebigen Klassentyp) brauch und schwupp! ist der gesamte Code für die Listenklasse incl. Getter- und Setter- Methoden erzeugt, und ne Instanz legt er gleich auch mit an.
Und was ist daran schlecht? In Delphi muss ich dauern casten(down cast!!), weils keine Templates gibt. In Java haben sie das casten durch die generics ja eleminiert.
Gaulker hat geschrieben:
Ich glaube, es geht darum, dass eben in C++ nicht alle Mechanismen so klar definiert sind. In Delphi muss man immer Typen konvertieren, man muss teilweise auch sachen konvertieren die ziemlich eklig sind.
In C++ musst du auch fast alles casten. Von alleine wird fast nix umgwandelt.
float in double -> ok
double in float -> gibts schon ne Warnung
Klasse in andere Klasse -> geht nur, wenn entweder ein cast für die KLasse geschrieben wurde oder wenn man hart einen reinterpret cast macht. In jedem Fall muss der Programmierer das aber auslösen, es geht nicht von alleine!!
Was an C++ für Anfänger schwer ist, sind die vielen Konzepte, die darin stecken. Das kann einen am Anfang schon ziemlich überollen.
Zweite große Hürde: viele programmieren halt C mit Klassen anstatt C++, und dann treten natürlich die Probleme auf, die hier schon beschrieben wurden.
Wobei das im kleineren Maßstab auch in Delphi gilt: auch hier kann ich ja fein OOP mit prozeduraler Programmierung vermischen.
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Das wird deswegen kommentarlos geschluckt, weil es legaler Code ist^^
Und genau da liegt das Problem. In Delphi sind Zuweisungen in If-Abfragen erst garincht erlaubt, da kann sowas nicht passieren. (das meinte ich mit klarer geregelt)
p.s.: Templates gibt es in Delphi.. siehe weiter oben, da habe ich geschrieben, dass jemand nen Präprozessor für Delphi geschrieben hat. Ich bin aber jetzt zu faul, danach zu suchen, sonst hätte ich nen Link gepostet
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Das wird deswegen kommentarlos geschluckt, weil es legaler Code ist^^
Und genau da liegt das Problem. In Delphi sind Zuweisungen in If-Abfragen erst garincht erlaubt, da kann sowas nicht passieren. (das meinte ich mit klarer geregelt) p.s.: Templates gibt es in Delphi.. siehe weiter oben, da habe ich geschrieben, dass jemand nen Präprozessor für Delphi geschrieben hat. Ich bin aber jetzt zu faul, danach zu suchen, sonst hätte ich nen Link gepostet
Was irgendwelche Leute in ihrer Freizeit gebaut haben, zähle ich eigentlich nicht direkt zu dem Spracheigenschaften^^
Und so ein Präprozessor-Mischmasch hat sicher nichts mit wirklichen Templates zu tun.
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Templates in C++ werden auch vorverarbeitet. Das ist eine eigenschaft von Templates. Ob man das nun in einen Compiler einbaut, oder manuell vorschaltet ist prinzipiell egal.
Aber die Diskussion wird schon wieder zunehmend kindisch.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: Google [Bot] und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.