Bonjour,
J'ai décidé de quitter le développement en Lazarus sans regret ni amertume (et même satisfait) pour passer à autre chose. J'en profite pour faire un petit bilan et remercier les acteurs de ce forum que je ne pratiquerai plus.
J'ai découvert Lazarus dans sa version 0.9.24, appris à l'utiliser a peu près correctement depuis la version 0.9.26 et m'y suis réellement "impliqué" depuis la 0.9.28. En réalité, la frustration était devenue pénible à supporter en 0.9.26, et donc, le moyen de la surpasser a été de rentrer (modestement) dans le code de l'IDE et de ses composants (beaucoup plus rarement dans celui de fpc).
En ce qui concerne le langage lui-même, il y a deux contingences qui à mon avis freinent l'ensemble :
- A la poursuite de Delphi et sa pseudo compatibilité qui semble être un des objectifs de LA future version 1.0. C'est absurde ! Déjà Delphi n'est plus lui-même. Delphi Prism, le futur Delphi QT... Delphi a perdu sa boussole... Il y a longtemps. Si l'objectif est la compatibilité avec Delphi 7 (la version Historique), c'est tout aussi absurde. C'est l'Histoire... c'est du passé. De toute façon, Lazarus a déjà fait mieux car, lui, il est vraiment multi-OS... Delphi a jeté l'éponge il y a longtemps déjà sous Linux, et pour ce qu'on en connait de sa prochaine version "multi-OS", conceptuellement, il est loin derrière. Utiliser QT ? Une vraie VCL/LCL, là on pourrait comparer...
- Mais en faisant cela (une LCL), apparait immédiatement la deuxième contingence : La création d'une LCL Linux est très délicate parce que Linux présente une rétrocompatibilté très inférieure à Windows. Et évidemment les langages de programmation sur cette plateforme sont à la remorque des évolutions de l'OS... et les équipes de développements à la peine. Qt, ou le pseudo code permettent de résoudre ce problème d'une autre façon... enfin de le déporter sur une autre équipe. En ce qui concerne Lazarus, le slogan "write once compile everywhere" est parfois abusif. Utiliser diverses distributions Linux démontre qu'un portage/compilation "intra-linux" est parfois nécessaire.
Ceci dit, pour un Pascalien qui a beaucoup de temps, Lazarus et Free Pascal sont un outil "génial" même si je doute qu'un jour les objectifs soient atteints. Mais ce n'est pas grave si avec de tels objectifs ils arrivent à produire ce qui existe déjà (0.9.3x).
Pour le reste, mon dernier programme Lazarus traduit bien ses qualités et ses défauts. J'ai décidé de regrouper tous mes répertoires de sources écrits en Pascal avec Lazarus (serveurs Linux et Windows + serveur ftp distant), histoire de passer à autre chose et faire ainsi place nette proprement, puis de les Zipper, et enfin de les graver sur un DVD. Pour les déplacer, j'ai réalisé un petit composant lzProgressBarCopyFile (2H) et utilisé une petite bibliothèque récente que j'ai développée "en" synapse multitâche (4 threads de download ftp en parallèle avec ProgressBar). D'ailleurs, je me suis rappellé à cette occasion que les indirections (et réflections) sont impossibles en Lazarus. Quel dommage et quel code "spaghetti" à la place ! Pour le gravage, un petit TProcess appelant mkisofs aussi bien sous Win que sous Nux. Pour le zippage, j'ai utilisé fparchive (ex abbrevia), une bibliothèque compagnon de FPC... Et là j'ai rencontré un problème inexpliqué qui m'a pris beaucoup de temps à résoudre. En réalité, je m 'étais accordé 2 jours, il m'en a fallu 4... pour un problème qui n'aurait jamais dû exister. Comme d'habitude, et c'est un gros défaut de Lazarus/Free Pascal... une documentation quasi inutile (quand on arrive à la trouver). Mais le résultat est à la hauteur de ce que l'on peut produire avec Lazarus : efficace (rapide), et réellement multi OS avec un code quasiment commun (petite différence dans le TProcess), sympa au niveau du GUI même si j'aurais bien aimé apprendre à dropper les rép...
Ma conclusion sur Lazarus/Fpc est donc que c'est un "langage" attachant qui mérite le détour... mais qui nécessite un investissement "à la marge" très important (beaucoup plus qu'en a nécessité pour moi l'utilisation de Delphi 7 --excepté l'apprentissage de l'utilisation des API). Il faut souvent "fouiller" les arcanes de l'IDE. J'estime, peut-être à tort, que si le code de Lazarus n'était pas ouvert, il serait difficilement utilisable pour un projet de bonne envergure (ie utilisant plusieurs domaines de la programmation, GUI, accès BDD, multitâche, composants visuels...). Aussi, je me garderai bien d'exprimer un avis sur son utilisation en production commerciale... cela dépend finalement du niveau d'exigence de l'équipe de programmation, du niveau d'acceptation des solutions de contournement (et du temps nécessaire)...
Par contre, je tiens à signaler que pour tous mes développements depuis mes débuts en Lazarus, j'ai utilisé la bibliothèque Zeos pour l'accès à mes BDD sans jamais rencontrer un problème ni en développement, ni en exploitation. Elle était compatible Delphi. Elle l'est peut-être encore. Je ne sais pas car je suis l'actualité Delphi de très loin maintenant. J'ai également utilisé un fabuleux Forum -celui-ci-, je parle de celui consacré à Lazarus (Je ne pratique pas beaucoup les autres).
Encore un grand merci. Cordialement.
Gilles
Partager