Bonjour,
J'avais décidé mi-mars dernier de quitter Lazarus pour prendre un petit peu de recul et essayer d'autres IDE et langages.
J'ai lancé mon dévolu sur C# avec Visual Studio et MonoDevelop d'une part et j'ai voulu également essayer le dernier Delphi XE, histoire de me refaire la main, puisqu'une "capacité" de cross-compilation est annoncée pour bientôt... et également dans la mesure où ancien utilisateur de ce produit que je trouvais remarquable, je pourfends fréquemment son évolution. Avec mon statut d'enseignant, j'ai obtenu le produit Microsoft en 48H00 et 2 mois après mon premier contact, j'ai renoncé à obtenir une licence Education de Delphi XE... Je n'ai pas dû avoir de chance ou je n'ai pas été capable de m'adapter au circuit de distribution et à sa procédure... J'avais pourtant réussi avec une Delphi 2007 Architecte... Dommage.
Donc pendant 2 mois pleins, j'ai travaillé avec VS de manière assidue. Evidemment en 2 mois, je ne prétends pas posséder un niveau de compétence suffisant pour émettre un jugement vraiment significatif. Pourtant je me suis fait une petite idée (plus qu'une impression) à partir de laquelle j'en ai dégagé une conclusion.
VS et C#, c'est impressionnant, aussi bien au niveau de la productivité que du résultat obtenu. Je mets entre parenthèses le LINQ que j'ai sans doute très imparfaitement assimilé. Reste qu'au niveau de la productivité sous Windows, on peut comprendre le succès de la plate-forme...
Par contre, le portage sous Mono -puisqu'il paraît que c'est possible- (je parle d'un projet d'envergure), cela me semble très délicat. D'abord l'IDE, c'est MonoDevelop sous Linux (ou sous Windows) et franchement même s'il n'a pas à rougir, ce n'est pas VS. Ensuite Mono lui-même présente un "retard de framework" même si on installe sa dernière version. Auquel s'ajoute sous Ubuntu par exemple, le fait que n'est pas fournie la dernière version de Mono... donc le retard est encore plus grand... et la mise à jour me m'a pas paru simple. D'autre part, les docs pour VS et C# sont légions et actualisées. Pour le portage, c'est beaucoup plus "confidentiel" et cela date souvent. Un peu à la Lazarus...
Je n'irai pas plus loin dans le CR de mon utilisation de C#. Ce n'est pas le bon forum. Par contre, pour les utilisateurs de Lazarus et éventuellement ses détracteurs, j'aimerais expliquer pourquoi, après l'avoir délaissé pendant 2 mois, j'y reviens non pas par "affection" (si un peu quand même) mais surtout de manière pragmatique.
Pour comparer, j'utilise une application de gestion déjà développée, un logiciel de notes faisant appel à 3 types de bases de données : mySQL distant (base principale -mes collègues mettent leurs notes de chez eux), PostgreSQL sur un serveur local de l'école (en cas de secours) et SQLite. J'ai implanté SQLite pour découvrir son fonctionnement, ses limites et réaliser quelques tests de lecture en réseau notamment. En plus, le logiciel doit pouvoir éditer "proprement" les bulletins, les synthèses et stocker les premiers en pdf. Initialement l'application avait été réalisée pour Windows en Windev 7.5 puis portée sous Delphi... avec l'espoir de l'utiliser sous Linux mais Kylix a été abandonné et enfin sous Lazarus (sous Windows et Linux... Je ne dispose pas de Mac).
J'ai fait 3 tests en 2 ans en me donnant suffisamment de moyens et de temps, à chaque fois pour me faire une idée de ce qui était faisable à mon niveau et surtout de ce qui posait ou poserait rapidement problème :
- La tentative la moins aboutie a été réalisée avec Java, il y a 2 ans. L'embryon que j'ai réalisé était portable. Par contre la latence d'un openfiledialog m'a interloqué tout autant que la plomberie nécessaire à la configuration et au paramétrage d'Eclipse. Je ne suis vraiment pas doué en plomberie. On m'a aidé mais j'en ai eu marre rapidement de ce manque d'autonomie à chaque pas au niveau de la "structuration" de l'IDE.
- L'année dernière, j'ai essayé C++/QT enfin je devrais plutôt dire QT/C++ car le premier impose très fortement ses méthodes (si je peux dire). Je suis tombé rapidement sur un problème d'installation en Linux. Sous Windows RAS (là aussi si je peux dire). Mais sous Nux, quand il a fallu construire C++/QT + client mySQL + client PostgreSQL... j'ai posté sur le Forum et n'ai jamais obtenu de réponse... De plus, les releases étaient également décalées... les "linuxiennes" étant en retard.
- Enfin dernier essai avec C#. Avec VS cela a pris rapidement de l'ampleur... jusqu'au moment où j'ai voulu le porter sous Mono... La productivité s'est alors effondrée... Le résultat aussi d'ailleurs.
En résumé, je n'ai pas réussi à produire cette application fonctionnant sous Windows et Linux... autrement qu'avec Lazarus. La perte de productivité causée par les quelques défaillances de Lazarus (dont certaines sont quelques fois sévères et pénalisantes, il faut le reconnaître) est cependant à mon avis au moins très partiellement rattrapée dans le portage d'un OS vers l'autre. Evidemment si on ne travaille que "pour" un seul OS, le rattrapage n'a pas lieu. Mais ce n'est pas mon cas : 80% de mes productions fonctionnent dans les 2 OS. L'IDE est facilement installable et configurable... et complet tout en restant simple. Quant au fonctionnement du logiciel fini, cela me semble solide et rapide. L'ergonomie notamment les GUI valent bien ceux d'autres...
Bref, j'ai réinstallé Lazarus sous Windows... et je prendrai des copies d'écran lors de l'installation d'une SVN sur une Ubuntu, histoire de rajouter de la Doc et de participer à nouveau à ce forum avec toujours autant de plaisir.
Cordialement. Gilles
Partager