Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
646 Beiträge
 
FreePascal / Lazarus
 
#39

AW: Plattformübergreifend - Augenauswischerei ...?

  Alt 12. Jan 2024, 08:11
Noch bin ich mir immer noch nicht ganz sicher, ob es Lazarus oder Delphi 12 wird - auch wenn von vielen Lazarus als Hobbytool gesehen wird. Die Tendenz, mal abzustürzen kommt mir bei Lazarus tatsächlich etwas größer vor.
Aus meiner Sicht: Ich arbeite in einem Kundenprojekt seit ca 11 Jahren mit Lazarus, der Lazarus Code hat zwar relativ wenig statische Formulare, weil ich mir schon sehr lange auch in alle Delphi Projekten angewöhnt hatte, alles was geht per code zur Laufzeit zu erzeugen und würde das auch nie wieder anders machen wollen. Das Hauptprojekt hat ca 30000 Zeilen quellcode, den ich selber geschrieben hab.

dbcontrols gibt es bei mir nicht sondern eine über lange jahre selber gebaute Klassenarchitektur, die alles relevante von der db in den Speicher holt, wenn es nicht eh gleich in der db weiterverarbeitet werden soll und wenn was angezeigt werden soll, dann eben ohne den datasource kram damit controls auf dem Bildschirm füllt, damit der anwender das sieht und je nach control auch bearbeiten kann.

Speichern geht dann umgekehrt genau so. Ich hab einige Ideeen in der GUI, die ich früher immer zwangsweise mit Fremdkomponenten gemacht hätte, mittlerweile komplett selber in vorhandene Komponenten integriert oder teilweise auch ganz simple code routine erstellt, die das da auf den screen in scrollboxen komponentenweise erzeugt, was sich aus den daten der datenbank ergibt.

Da eh alles zur laufzeit erzeugt wird, braucht mein code den ganzen overhead nicht, das ich irgendwo in der GUI mir dann zur Entwicklungszeit hinklicken kann und mit pseudodaten wie in treeviews oder sogar mit echtdaten in grids anschauen kann, das interessiert mich nicht. Beim debuggen hoppelt der nicht ständig durch irgendwelche mir unbekannten und unwichtigen Komponentenevents, sondern geht zeile für zeile durch meinen eigenen code.

Mir reicht zu wissen, an der position x ist eine scrollbox, wo der ganze kram dann hinkommt, den ich brauche. Das sind dadurch bei mir zum beispiel panels, labels, edits, checkboxen oder sonstwas für ein kram ich da haben will und die zusammenstellung übernimmmt dann eine sehr einfache beschreibungssprache, die meine stored procedures dann in der datenbank dafür zusammenbaut.
ab 10000 Komponenten musst du ein wenig vorsichtiger werden, aber das lernt man dann schnell, zu optimieren.

Das wird zum Beispiel auch für industrielle Kapazitätsplanung benutzt, bei der horizontal die werktage spalten abbilden, vertikal gruppiert maschine/arbeitsgang usw in teilweise extra spalten kommen, je nach sicht (bzw je nach implementation der sp) und je nach daten kommen dann noch zeilweise extra spalten mit details, die man nur bei bestimmten abrufaufträgen sehen muss, aber nicht immer.

Ich hatte mir aus tradition den wolf gesucht nach brauchbaren Grids oder treeview ähnlichen Komponenten und alleine um zu bewerten, ob die meinen Vorstellungen entsprechen können, diverse stunden oder gar Tage meines Lebens damit verplempert. Am Ende ist es sogar so, das teilweise mein Kunde sich die mühe macht, eine Sicht was er gerne sehen möchte, in excel manuell zusammenklöppelt und ich mir das anschau, um das direkt umzusetzen.

war nie ein Problem, hier und da mal extra neuer code weil auf bestimmten komponenten extra hints anzeigen zeigen, klicks darauf bestimmte aktionen oder redirects machen sollte, farben zellenweise passend sein müssen, auslastungen mit mini extra linie dargestellt werden usw. Manchmal zeigte er mir Funktionen, die er aus anderer Software kannte und gut fand und wenn ich die dann auch gut fand, oft schneller als ich selber dachte in meinen code integrierte, ohne irgendjemand fragen zu müssen, ob der das irgendwie in seine eh schon zu komplizierten Komponenten einzubauen.

Das Projekt lief ca 3-4 Jahre als reine win32 Anwendung und anfänglich war lazarus schon wirklich einigermaßen instabil, hat aber bis heute den vorteil, das es im vergleich zu Delphi sauschnell startet. Seit mindestens 5 Jahren ist die lazarus IDE aber sehr stabil und lass dich nicht abschrecken von irgendwelchen "Oppa erzählt vom Krieg ...." Berichten von Leuten, die vor x Jahren das mal 10 minuten probiert hatten und scheisse finden, weil instabil. stimmt nicht!

Ich hatte dann mal aus neugier den Crosscompile auf win64 gemacht und das ganz in der win64 IDE geladen (die es bis heute von delphi ja nicht gibt) und das lief ohne jede sourcecode Änderung. Ein Mac hatte ich eh noch rumliegen, lazarus installiert und auch da dann den Quellcode ausprobiert, dabei ergaben sich ein paar visuelle dinge, die aber schnell beidseitig für win und mac in den code gingen und schon lief das auch da ohne Einschränkung. Nun stand noch Linux auf dem Plan und siehe da, lazarus IDE auf Ubuntu lief der Quellcode dann auch sofort. Es gab damals auch crosscompile varianten für mobiles, das halte ich aber bis heute für begrenzt relevant, weil auf mobile devices mach ich immer alles als Webapplikation (und zwar mit pas2js oder komplexeren kram mit tms webcore, was beides mit lazarus funktioniert) und hab keine Lust warum man binaries an die appstores verteilen sollte um die dann irgendwann aufgrund von deren Restriktionen nicht mehr einsetzbar zu haben oder von vornherein abgelehnt werden, was man aber erst einige tage nach upload erfährt.

Und ganz nebenbei: versuch mal mit jemand der Ahnung von der Materie Delphi IDE Sourcecode hat, im Delphi Umfeld in Kontakt zu kommen, der 1. deinen reproduzierbaren Fehler versteht und 2. diesen dann auch noch selber vor deinen Augen im Debug Modus mit der IDE nachzuvollziehen kann , um dann relativ schnell einen möglichen Bugfix zu diskutieren, der dann oft schon am selben abend im trunc umgesetzt ist. Passierte mir mit Michael von Canneyt und Mathias Gärtner schon auf diversen Lazarus Konferenzen.

Früher gab es solche Namen auch im Delphi Umfeld, die man in USA auf Konferenzen treffen konnte, das war aber im letzten Jahretausend. Mir ist da kein einziger mehr bekannt, der da nicht nur als Tempeltänzer wie Jim McKeeth auf seinen sessions irgendwie scheinbar selber keinen Zugriff auf die IDE Sourcen hat. Nun denn, er ist ja auch schon geschichte bei emba, wie so viele ...

Ich für mein Teil betrachte Lazarus definitiv nicht als "Hobbytool", weil ich damit sicherlich schon einige tausend stunden selber gearbeitet habe und da zu sehr guten Stundenlöhnen. Und wenn du in anderen Foren fragst ist ja auch Delphi nur Hobbykram ... Ist beides de fakto mumpitz aus meiner sicht ...
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat