Quelques réflexions d'un débutant
Bonjour,
j'avais demandé quelques informations, il y a quelques semaines et je me suis astreint à utiliser une version personnelle complète de PureBasic pendant ce laps de temps en portant ou essayant de porter des projets personnels développés en Lazarus ou en Qt, le tout sous Windows 7 et 10, ubuntu-16.04.3-desktop-amd64 et macOS High Sierra 10.13.1 (64 bits).
- Installation : rien de particulier à signaler. Comparé à Qt ou Lazarus, c'est même plus simple. L'environnement est immédiatement fonctionnel.
- Recompilation de l'environnement : Impossible.... j'en reparlerai plus loin
- Facilité d'apprentissage. RAS : ce n'est pas du langage objet mais cela ne me dérange pas plus au niveau de l'apprentissage (J'ai commencé avec du fortran :D)
- Documentation : bien. La documentation intégrée est vraiment utile, exhaustive et efficace. Le forum que je suppose "officiel" est réactif même s'il est indisponible depuis peu (Server move in progress). Il est animé par quelques spécialistes dont le nombre est proportionnel à la notoriété du produit. L'accueil est sympathique, les réponses profitables. En tant que néophyte, j'ai reçu un soutien sans faille et patient. Merci.
- Ce qui me convient dans PureBasic : C'est un outil immédiatement utilisable, bien conçu et je reste fasciné par la petitesse des exécutables produits. Les sources des projets sont globalement portables même si j'ai ressenti rapidement que le développement du produit était d'abord Windows et porté ensuite dans les autres OS. C'est usuel... comme Lazarus. J'ai trouvé certaines approches très ingénieuses comme le GadgetIconList (l'équivalent d'une Grid). Le prix également est intéressant même pour une utilisation en entreprise mais je me demande avec un abonnement à vie comment le modèle économique peut être pérenne. J'en reparlerai en conclusion.
- Ce qui ne me convient pas dans PureBasic
- En entreprise, j'accueille des stagiaires ou des CDD. Il y a des objets, des méthodes que doivent utiliser ces programmeurs mais dont ils ne doivent pas lire les sources. C'est le "capital", le savoir-faire spécifique à la société. En Lazarus et en Qt, il est possible de recompiler l'environnement de telle manière que les utilisateurs puissent utiliser les objets, les méthodes sans qu'ils ne disposent des sources. Là, je serais obligé de compiler des bibliothèques externes pour les procédures et fonctions. "On" faisait cela autrefois. Mais c'est une régression.
- L'impossibilité de recompiler l'environnement et son code fermé rend également très difficile la création de certains Gadget. Par exemple, nous avons besoin de 2 gadgets gérant le HTML (un champ de saisie et une grille) : à mon avis, c'est très très difficile à réaliser; On peut théoriquement évidemment partir d'un Canvas ou réaliser un wrapper sur les objets de l'OS. Quand "on" a l'habitude des héritages de la POO, "on" n'arrive même pas à imaginer l'énormité du travail nécessaire.
- Le positionnement des objets visuels n'utilise pas la notion d'ancrage. J'ai ressenti un manque.
- L''utilisation importante d'API (Windows) rend parfois le portage énigmatique mais on peut rencontrer le même problème sous Lazarus et de manière plus rare sous Qt.
- C'est un langage événementiel. J'ai ressenti une impression de pauvreté au niveau des évènements traités. Par exemple, le survol d'un bouton ne peut pas être intercepté sauf à recréer son propre Gadget à partir d'un canvas.
- L'accès aux bases de données hormis PostgreSQL et SQLite est largement en dessous de ce que proposent Lazarus et Qt. Le chargement dans les Grids ressemble plus à celui de Qt qu'à celui de Lazarus.
En conclusion :
A la redécouverte de ce produit (je l'avais essayé il y a plusieurs années), ma perception a été équivalente à celle de Lazarus autrefois : une approche ingénieuse, "universitaire" mais également une sensation de manques, de limitations. Ce n'est pas un produit ouvert. C'est le choix de son auteur. Comme pour Lazarus, je pense qu'une approche à la Qt serait préférable : une version tout public (sans les sources) gratuite ou comme maintenant ("quelques euros à vie") et une version professionnelle, plus chère, payante à chaque évolution par abonnement ou non, avec le source et un soutien technique par abonnement également.
En attendant, j'ai bien l'intention d'utiliser ma version personnelle pour porter et créer certains de mes programmes personnels. Et chapeau l'artiste ! (Le développement de cet environnement n'est la réalisation que d'un seul développeur... Mais potentiellement, c'est également une faiblesse quant à la pérennité d'utilisation dans une entreprise pour des projets importants dans leur longévité d'autant que le code source de l'environnement est fermé.)
Cordialement. AD.