moin,
ich geb da auch mal meinen Senf dazu, da ich seit ca. 3 Jahren eine Warenwirtschaft/ERP Software mit lazarus und Firebird für den Einsatz bei uns im Haus, aber auch und insbesondere für gut zahlende Kunden, deren Sonderwünsche gerade im Bereich Fertigung ich mt der Kombination laz/fb (auch mit Hilfe von ibexpert) gerne und schnell realisieren kann. Ich schätz mal das ich ca. 3000 Stunden mit Lazarus hinter mir hab und sehe im Moment auch keinerlei Grund, wieder freiwillig neue Projekte mit Delphi anzufangen, obwohl ich mit Delphi schon 1994 angefangen bin (war damals noch beta).
Wenn du eine vorhandene Delphi Applikation auf Lazarus umstellen willst, dann wäre ich dabei vorsichtig, da klingt vieles einfacher, als es nachher ist. Da du aber (genau wie ich vor 3 Jahren) mit einem neuen Projekt beginnst, halte ich die Kombination lazarus/Firebird für die perfekte Wahl für Projekte, die man eben auch in 5 oder 10 Jahren noch weiterentwickeln muß (das war auch bei uns der Grund, nach der Open Source Datenbank auch auf eine Open Source IDE umzusteigen, SQL und Pascal Sprache sind und bleiben meine Know How Schwerpunkte und ich hab damit noch nichts nicht machen können).
Wir setzen aktuell nur die Komponenten ein, die entweder bei Lazarus sowieso dabei sind oder halt im codetyphoon paket enthalten sind. Die Firebird DB ist UTF8 und der Zugriff darauf läuft über ein internes Schichtenmodell mit den SQL DB Komponenten (ich hatte die mal temporär gegen IBDAC ausgetauscht, hatte damit aber Probleme bei UTF8 Blobs, die ich mit SQLDB nicht hatte. Umstellung dauerte 10 minuten von SQLDB auf ibdac und 2 Minuten wieder zurück).
Am besten nicht den Fehler machen, mit den ganzen DBEdit etc. Controls zu arbeiten, das wirst du in x Jahren verfluchen (ist bei Delphi genauso). Damit hat man zwar schnell Formulare und Applikationen zusammengeklöppelt, muß dann aber jahrelang das Gerüst mitschleppen. Bei mir wird alles mögliche zur Laufzeit erzeugt, da kann ich mir schnell mal was neues überlegen und muß dann nicht in hunderten Formularen was anpassen. Ausdrucke laufen alle über Lazreport, Schnickschnack in Controls wird über ownerdraw selbst gebaut, etc. Das Selbstzeichnen bietet ungeahnte Möglichkeiten und braucht nicht mehr Zeit für Einarbeitung als die Einarbeitung in irgendwelche Komponentenmonster, öffnet dir dann aber relativ schnell die Augen, das du auf dem Wege alles machen kannst, was du woanders gesehen hast und du haben möchtest. Für einen Touchscrenn im Fertigungsbereich hab ich gerade Gestures selbst gebaut, damit die Listbox so wie auf dem Handy hoch und runter geschubst werden kann. Ist gar nicht so wild, wenn man das mal genau durchdenkt und mit mousedown, mousemove, mouseup umsetzt.
Das Projekt entstand zunächst im Kundenauftrag für win32, ließ sich aber schon immer auf win64 kompilieren. Irgendwann hatte ich mal Lust, das auf einer MAC OSX VM auszuprobieren, und ich brauchte ca. eine Stunde für diverse teilweise banale Änderungen, um das da zum Laufen zu bringen. Was ich noch wichtiger fand: es ließ sich nicht nur compilieren, sondern machte komplett genau das was auch die Windows Version gemacht hat. Einige wenige windowsspezifische Sachen müsste ich noch anpassen und nicht nur auskommentieren, aber das hindert mich nicht daran, der Port als voll funktionsfähig einzuschätzen, falls mich mal jemand für eine Mac Version bezahlen möchte
Der Multiplattform Reiz war geweckt, also Ubuntu als VM, lazarus und Firebird rein, und den Mac OSX Quellcode rein, und siehe da, ließ sich sofort compilieren und lief auch da ....
So viel zum Thema Multiplattform, die Delphi XEx IDE ist ja immer noch eine 32 Bit Software, warum wollen die was von Multiplattform erzählen, dieser ganze Remotedebugging Mumpitz oder per server auch mac übertragen, von da mit xcode auf ios .... usw. ist doch komplett weltfremd. Das finden zwar sicherlich im Moment viele Windows Programmierer ganz spannend, ist aber eine Sackgasse, ebenso wie der ganze Firemonkey Heckmeck, ich erinnere nur an CLX und Kylix und andere Abarten, die es mal gab und wo dann der Hersteller irgendwann kein Bock mehr drauf hatte. Da wird alle paar Jahre eine neue Sau durchs Dorf getrieben ....
Meine Meinung also: Mit der Kombination Lazarus/Firebird hast du schon heute eine sehr gute Entwicklungsplattform, die dir auch in den nächsten 10 Jahren sicherlich noch viel Spaß machen wird auf den relevanten Plattformen machen wird, wer weiß, ob Windows in 10 Jahren wirklich noch die Dominanz hat wie heute .... Das die ganz nebenbei kostenlos ist, bietet Freiraum im Geldbeutel für IBExpert oder Programmier-/Datenbankschulungen bei uns
Ich kenn Firebird Anwendungen im Enterprise Umfeld mit mehr als 2000 Usern auf einem Datenbankserver, Datenbanken mit 1TB sind nicht selten, da bleibt nach oben viel Luft für die üblichen Projekte bei KMU und kleinerem Mittelstand. Es kommt aber drauf an, schon von Anfang an sich nicht in die Fänge von Amok laufenden Komponenten zu begeben, deren Hersteller eventuell auch irgendwann mal kein Bock mehr hat. Im SQL auch nicht einfach nur alles einfach mal zusammenkloppenouter joins nur da wor die hingehören! Die Geister, die ich rief, werde ich selten wieder los.
Ich war heute erst wieder bei einem Kunden, wo u.a. ein Report durch einen fehlenden Index vorher 12 Minuten lief und 50 Millionen non indexed reads verursachte und nach dem Index anlegen weit weniger als eine Sekunde braucht und 2000 indexed reads hatte. Damit versaut man sich auch gutmütige Kunden, wenn man sich nicht auch auf der Datenbankebene ernsthaft mit der Materie beschäftigt.
Gruß
Holger
http://www.ibexpert.com