Thema: Delphi Vorteile von Delphi

Einzelnen Beitrag anzeigen

Hubble

Registriert seit: 13. Dez 2005
13 Beiträge
 
#55

Re: Vorteile von Delphi

  Alt 14. Dez 2005, 21:13
Zitat von Hubble:
Und die VCL ist nur für procedurale Vorgehensweise aus dem letzten Jahrhundert geeignet.
Ziehe diesen Satz von mir vollständig zurück!

Zitat von tommie-lie:
Zitat von Hubble:
Was ich in den letzten Jahren lernen mußte:
In Delphi wird man zum schlampigen Programmieren verleitet.
Mit dieser Aussage hast du dir in diesem Forum jetzt circa 16310 Feinde geschaffen
Ich habe nicht bahauptet, daß jeder in Delphi schlampig programmiert sondern das man nur verleitet wird schlecht zu programmieren. In C++ fällt es mir wesentlich leichter Ordnung zu halten.
Die Delphi Projekte an denen ich mirarbeite oder mitgearbeitet habe waren allesamt schlecht durchdacht und unsauber implementiert. Weils eben so einfach ist mal nen neuen Grid mit Schnickschack in den Dialog reinzuhängen der dann auch die Daten darin speichert.
In C++ schreib ich mir immer erst ein Objekt welches die Daten hält und schau dann weiter.
In Delphi kommt erst die Graphik. Ich gebe unverholen zu, daß Delphi VC++ in Sachen Graphik weit überlegen ist, aber das ist auch oft das Problem. Der Chef sieht nen Dilaog und denkt "Ah is ja schon fertig" und schon wird noch mehr gepfuscht.


Zitat von tommie-lie:
Zitat von Hubble:
Soweit OK aber dann:In delphi muß ich erst mal var schreiben dann die Instanz erzeugen,
initialiseiren dann wieder löschen und zu allem Überfluß hockt das
blöde Teil nicht auf dem schnellen Stack sondern auf dem lahmen heap
Schnell/Lahm? Wenn der Speicher einmal allokiert ist, ist mir das auch egal.
Außerdem ist die Geschichte mit "var" nur eine Syntaxeigenschaft von Pascal. Du legst da übrigens eine lokale Variable an, soviel zu globalen Variablen.
Ich versuche immer möglichst viel im Stack abzulegen, der is schneller als der heap ist einfacher zu Verwalten vom Betriebssystem.


Zitat von tommie-lie:
Zitat von Hubble:
das wars? Nein denn was is wenn ne Exception ausgelöst wird
Was, wenn in deinem C++-Beispiel eine Exception ausgelöst wird?
In C++ wird bei allen auf dem Stack erzeugten Objekten der Destruktor ausgelöst und die Exception automatisch weitergeworfen. (Wie in diesem Beispiel)
Macht man das gleiche in Delphi ohne try except , dann würde das Objekt nicht gelöscht und immer mehr Speicherlöscher entstehen.


Zitat von tommie-lie:
Zitat von Hubble:
Damit hätten wir 7 unübersichtliche Zeilen in Delphi und 1 Zeile in C++.
Und falls die Exception weiter geworfen werden muß, dann kommen noch ein paar Zeilen dazu.
In Delphi muß man einfach in jeder Routine Exceptions fangen, falls auch nur ein
Objekt benutzt wird, und diese Exception weiterschmeißen.
Exceptions werden auch in Delphi bis zur nächstinnersten Exception-Behandlung weitergereicht.
Ja das stimmt, aber in Delphi werden alle mit create erzeugten Objekt dann nicht automatisch gelöscht sondern schwirren weiterhin irgendwo im Speicher rum.
Hatte bisher nie Probleme mit Exceptions. Erst seit dem in Delphi code hab ich Probs mit Expetions.

Zitat von tommie-lie:
Zitat von Hubble:
Also: Man drückt auf Button 1 und bevor dieser fertig ist auf Button 2. Grande Problema in VCL.
Natürlich gibt es da einen Workaround, ist aber sehr umständlich und man muß fast alles umstellen.
Ja, ziemlich eklig, ist aber in C++ prinzipiell nicht anders, wenn du eine Bibliothek zum Anzeigen von grafischen Controls benutzt, die nicht multi-threaded ist. Oder du spaltest dir gleich beim Drücken von Button1 ein ganz sauber einen Thread ab und lässt den werkeln, dann sollte auch Button2 reagieren, und wenn du dort selbiges machst, laufen am Ende zwei Threads. Dabei sind selbstveränstlich die üblichen Vorkehrungen gegen Race Conditions und anderweitige Synchronisierungprobleme zu treffen.
Korrekt

Zitat von tommie-lie:
Zitat von Hubble:
Habt Ihr schon mal mit Komponenten in Delphi geschafft. Is echt supi. Alles schnell und schön.
Aber wehe es gibt ein Update und die Entwickler müssen mit verschiedenen Versionen arbeiten.
Ist schlicht nicht möglich.
Inwiefern? Wenn sich die ABI ändert, bist du unter C++ genauso verloren, wenn deine Bibliothek lediglich als binary-only vorliegt.
Kein Ahnung was eine ABI ist, auf jeden Fall gibts hier immer Ärger wenn mal wieder neue Versionen von den ganzen Komponenten gibt. Will man dann eine alte Version des Programms damit erstellen dann knallts.
Natürlich gibt's in VC weniger Möglichkeiten und ich habe damals weniger Komponenten in dieser Art verwendet, aber die Thematik ist mit Delpho 6 nicht gut gelöst. Ich hoffe die Neuen Versionen beheben solche Probleme.
Außerdem dauerts Stunden oder Tage bis man einen neuen Entwicklerrechner mit allen Komponenten zu laufen gebracht hat.

Hubble
  Mit Zitat antworten Zitat