Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
672 Beiträge
 
FreePascal / Lazarus
 
#30

AW: Delphi langsam ersetzen

  Alt 2. Jan 2016, 16:26
Microsoft hingegen hat es geschafft, den Markt für Programmiersprachen richtig anzugehen .... Die haben ihren Job einfach gut gemacht und für die Zukunft ist mächtig viel Potential (Geld) da, um das erfolgreich fortzusetzen.
Das einzige, was Microsoft geschafft hat, ist es, in der Windows Fat Client Welt ein Quasi Monopol für Entwicklungswerkzeuge zu schaffen und alle anderen Anbieter zu verdrängen.

Ob man mit Mobilgeräten Geld verdienen kann lass ich mal im Raume stehen, aber Microsoft hat dafür keinerlei Tools, mit denen ernsthafte Android und iOS Entwickler arbeiten. Das Windows Phone interessiert weiterhin keine Sau, Windows Universal Apps sind ein weiterer Rohrkrepierer, den nur IT Journalisten toll finden.

Freunde von mir (pocketfms.com) entwickeln eine Moving Map/Flightmanagement Software für Piloten, die wirklich Multiplattform ist, über die Plattform Marmelade. Wenn man sich da alleine mal anschaut, wie viele Setups für die jeweiligen Plattformen existieren, ist das alleine schon heftig: http://docs.madewithmarmalade.com/di...latform+guides

Angefangen haben die mal von 12 Jahren mit VS und hatten einen Windows CE und einen Windows Client, die sich aber erheblich unterschieden. Alles war mit VS programmiert. Als dann irgendwann die Mobiltelefone und Tablets immer mehr iOS und Android waren und netterweise gleichzeitig Microsoft de facto den Support für Windows CE eingestellt hat, haben die sich entschlossen, eine neue Plattform zu evaluieren. Es hat ca. 2 Jahre gedauert, bis ein brauchbarer Client fertig war, den man auch zeigen konnte und der nicht auf jeder Plattform völlig neue Macken hat.
Die neue Basis war also diese Marmelade Lib, eigentlich eine Gaming Engine, passt aber gut zu den Anforderungen.

Die waren dadurch nicht die ersten Anbieter im Apple Appstore oder im Android Market und haben dadurch auch diverse Kunden verloren, aber im Moment sind wirklich alle Clients 100% identisch in der Funktionalität. Darunter sind auch native Clients für Windows, Max OS-X, Win8-10 mobile, Android, iOS. Für jede Plattform setzen die aber ein eigenes Compile Setup ein, um die Binaries nativ zu erzeugen.

Als Sprache wird C++ benutzt, aber ohne eine ähnliche Multiplattform Bibliothek bringt die die Auswahl der IDE nix.

Die 2 Jahre Arbeit an der neuen Version haben auch Spuren an den alten Version hinterlassen, die während dieser zeit kaum verbessert wurde. Wer die alte Software kannte und dann die ersten neuen Prototypen gesehen hat, schaute erst mal recht dämlich, nach der Devise: Das ist alles? kann ja nicht mal 10% von dem was ich kenne ..... Das Argument "aber funktioniert immerhin auf iOS und Android" interessierte erst mal kaum jemand.

Mittlerweile ist der Aufwand für die Umstellung auf die neue Plattform abgeschlossen, alle Entwickler haben die neue API mehr oder weniger gut verstanden und man baut regelmäßig neue Features ein, die immer ohne Einschränkung auf allen Plattformen laufen und in allen Appstpres sind. Was aber ganz klar ist zumindest für dieses Unternehmen: Wenn man sich auf die Plattformen beschränkt hätte, die VS unterstützt, wären die schon lange arbeitslos und der Laden Pleite.

Chefentwickler Rob ist dabei schon ewig mit C++ unterwegs und musste keine neue Sprache lernen, sondern nur die Marmelade API und die Besonderheiten der anderen Plattformen bei Setup, Distribution etc. Ich hatte mich mit Ihm mal auf einer Luftfahrt Messe über Lazarus unterhalten und ihm ein paar Miniprojekte auf Android und iOS, die damit erzeugt wurden, gezeigt. Einen Quellcode zu schreiben, der über entsprechende Bibliotheken auf allen Plattformen mit der gleichen IDE debuggt werden kann, war ausgesprochen interessant aus seiner Sicht, aber aufgrund der von Ihm bevorzugten C++ Sprache und den bereits endlos vorhandenen Bibliotheken für seine Zwecke keine echte Alternative. So war das von mir aber auch gar nicht gedacht. Sicherlich hätte er sich schnell in die Pascalsprache einarbeiten können, aber er hätte für alles mögliche, was er als Syntax oder unter Nutzung siener Bibliotheken so in C++ runterschreibt, in Pascalsprache auch umsetzen können, aber dann wäre das sicherlich nicht in 2 jahren erledigt gewesen.

Mit geht das umgekehrt ziemlich ähnlich. Mittlerweile mehr 20 Jahre Pascalsprache/vcl/lcl in Delphi/Lazarus sorgen dafür, das ich nur in wenigen Fällen irgendein Verfahren suchen muss (meistens hier), um etwas umzusetzen. Schnick Schnack wie grüne Buttons oder sonstigen GUI Kram ersetze ich gerne durch Ownerdraw oder Konstuktionen mit TPanels o.ä., im gesunden Bewusstsein, das ich dieses Verfahren auch noch dann einsetzen kann, wenn irgendein Komponentenhersteller kein Bock mehr hat, weil er kein Geld mehr verdient und deswegen seine Komponenten nicht mehr weiterentwickelt werden. Da eh alles zur Laufzeit kommt, ist mir die Bedienbarkeit im Objektinspektor eh egal. Eine simple MakeButton(....) Funktion unterstützt dabei mittlerweile je nach globaler Config diverse icon libs, drag and drop auf favoriten toolbar, touch Bedienung, resizing, autoalign, u.v.m.

Sicherlich gibt es sowohl bei VS als auch für Delphi diverse Komponenten, die das alles besser und einfacher können, brauch ich aber trotzdem nicht, weil ich da einfach auch in 20 jahren zu viel kennengelernt hab, was es schon lange nicht mehr gibt.

Mein ganz entscheidener Vorteil ist aber auch, das ich als Chef in unserem Unternehmen selber entscheiden kann, womit wir arbeiten. Wer als Angestellter in seiner aktuellen Position das nehmen muss, was sein Chef sagt, hat da schon eine ganz andere Position. Und wer dazu eh kein Bock hat und sich daher eine neue Stelle sucht, der ist vielleicht mit der Pascalsprache nicht unbedingt extrem gefragt, aber man sollte nicht unterschätzen, das man durch auch bei entsprechender Kompetenz und Erfahrung sehr gute Gehälter fordern kann, denn in vielen Unternehmen erreichen die Delphi Programmierer mittlerweile ein Alter, das nicht merh weit von der Rente entfernt ist. Das sehe ich bei einigen Kunden und diverse Kunden suchen auch mehr oder weniger aktiv Nachfolger für solche Entwickler und würden gerne auch jemanden nehmen, der noch nicht 100% auf der Kappe hat, aber lernfähig ist und sich mit dem, was bereits vorhanden ist, aktiv auseinander setzen möchte, ohne immer nur zu hören, das man das alles besser neu schreiben sollte .....

Wer Delphi nach x Jahren also durch was anderes ersetzen möchte, muss sich immer überlegen, welches Know How man dabei neu lernen möchte. irgendwelche blöden Schleifekonstrukte und Variablen sind dabei noch geringste Problem. Das wahre Vokabular lernst du erst durch konkrete Anwendung. Die Bedienung der IDE gehört dazu. F5 oder F9 lernt man schnell, aber ein Delphi VCL Projekt mit den ganzen Units in eine standardkonforme VS Solution zu übertragen, ist da alleine schon ein wenig mehr Aufwand.

Und dadurch hast du noch keinerlei Vorteil, wenn deinen Kunden oder Chef nur die Funktionalität der Executable interessiert und von dir keine Ausreden anhören will, warum du zwar viel Geld kassierst oder zeit verballerst, aber seit 2-4 Jahren an der Portierung arbeitest, ohne das dadurch eine identisch bedienbare Software mit gleichem Funktionsumfang zu erstellen.
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