Les origines
Dans ce chapitre
ShadowStorm
Derrière le pseudo ShadowStorm — ou Shadow, pour les habitués — se cache David Dieppedalle, un développeur français autodidacte et passionné. Pas un ingénieur sorti d'une grande école, pas un professionnel du code avec un CV long comme le bras. Non. David, c'est le gars qui a une idée dans la tête et qui ne lâche rien tant qu'elle n'a pas pris forme.
David code en PureBasic. Il a créé des outils, des modules, des procédures — tout seul, sans aide. Mais sa vraie force, ce qui le distingue, c'est la vision. Concevoir l'architecture, imaginer les fonctionnalités, penser l'expérience utilisateur, définir chaque détail de ce que le logiciel doit faire et comment il doit le faire. Il est le cerveau du projet — celui qui donne les directives, qui valide les résultats, qui décide de la direction. Et c'est dans la communauté PureBasic que tout a commencé.
Les pseudos et les projets d'avant
David n'est pas arrivé sur les forums PureBasic en touriste. Avant de devenir Shadow (ou ShadowStorm), il a eu plusieurs vies numériques. Dayvid86, Brayane, LordNelson — il a changé de pseudo plusieurs fois, comme quelqu'un qui cherche sa place. Le dernier pseudo, celui qui restera, c'est Shadow.
Et il n'est pas resté les bras croisés. Avant même de rêver d'Editors Factory, David a créé des choses en PureBasic. Son exploit le plus remarquable : VB To PB, un convertisseur de code Visual Designer de Visual Basic .NET Express vers PureBasic. Un vrai outil, fonctionnel, avec du code récursif pour parser les hiérarchies de contrôles — et il l'a fait seul, sans aide de personne. David le reconnaît lui-même : « Je ne pensais même pas pouvoir faire ce genre de chose. » Le logiciel avait son propre site web dédié sur ForumForever, avec une aide disponible en français et en anglais. Publié en 2019 et mis à jour jusqu'en 2023, c'est la preuve que David n'est pas qu'un concepteur : quand il le faut, il met les mains dans le cambouis.
Il a aussi créé CreateButtonColor, un système complet de boutons personnalisés pour PureBasic — en deux versions. La première utilisait l'API Windows pour modifier les couleurs des boutons. La seconde, bien plus ambitieuse, reposait entièrement sur un Canvas : David y avait tout codé lui-même, sans s'appuyer sur les boutons natifs du système. Gradients, icônes, styles multiples (Flat, 3D, Calque, Sans Bordure...), checkboxes intégrées, boutons radio — un vrai système de composants visuels complet et personnalisable, partagé sur le forum français en 2017. François commentera « trop beaux tes boutons, trop fort ! » et Ar-S « C'est réactif, c'est coloré, c'est fonctionnel. Bien joué ». Et David a aussi développé plusieurs versions d'un module StringBuilder — un outil pour construire des chaînes de caractères à haute vitesse, bien plus rapide que la concaténation native de PureBasic en boucle. Le genre de chose qui prouve qu'on comprend les enjeux de performance, pas juste l'apparence d'un programme. Des contributions qui montrent un développeur actif, impliqué, toujours en train de chercher comment faire les choses mieux.
Le rapport avec la communauté, par contre, n'a pas toujours été simple. David a eu une relation compliquée avec le forum français de PureBasic. Assez compliquée pour finir par un bannissement pur et simple, décidé par Fred, le créateur de PureBasic et administrateur des forums. Un épisode douloureux qui laissera des traces profondes. David en voudra à Fred pendant longtemps. Mais David ne lâche rien. Il reviendra. Parce que David revient toujours.
PureBasic
PureBasic, c'est un langage de programmation un peu à part. Ni mainstream comme Python ou JavaScript, ni obscur au point d'être oublié. C'est un langage compilé, simple, efficace, qui produit des exécutables natifs Windows, macOS et Linux. Il a sa communauté, ses forums, ses habitués. Certains y développent des outils impressionnants.
C'est là que David traîne. Les forums PureBasic — le français et l'anglais — sont son terrain de jeu. Il y échange avec d'autres développeurs, partage des idées, teste des concepts. C'est un univers de niche, avec tout ce que ça implique : des gens passionnés, des débats techniques pointus, mais aussi des égos, des clans, et parfois une dureté qui peut décourager.
L'étincelle
Tout commence avec un problème simple : créer des éditeurs visuels.
Imaginez que vous vouliez créer un éditeur de niveaux pour un jeu, un designer de formulaires, un outil de dessin vectoriel, ou un éditeur d'organigrammes. Dans tous ces cas, vous avez besoin de la même base : des objets graphiques que l'utilisateur peut créer, déplacer, redimensionner, sélectionner, copier-coller, supprimer, avec des poignées de manipulation, un système d'undo/redo, une gestion des couches... En PureBasic, tout ça doit être codé à la main, depuis zéro. Le Canvas Gadget de PureBasic donne accès au dessin 2D, mais il ne fournit aucune gestion d'objets. Chaque développeur qui veut créer un éditeur visuel doit réinventer la roue — et c'est une roue particulièrement complexe à fabriquer.
David a cette idée : et si on créait un module qui faisait tout ça ? Un framework PureBasic qui gèrerait toute la couche de manipulation d'objets dans un Canvas Gadget. Le développeur n'aurait plus qu'à définir le rendu visuel et la logique métier de son éditeur. Tout le reste — le déplacement, le redimensionnement, la sélection, les poignées, les événements souris et clavier — serait géré automatiquement par le module.
Un concept simple en apparence. Un monstre technique en réalité.
Le problème : un projet trop gros pour un seul homme
David sait exactement ce qu'il veut construire. Il pourrait dessiner chaque écran, décrire chaque fonctionnalité, expliquer chaque interaction. Et il sait coder — VB To PB, CreateButtonColor, ses StringBuilder, tout ça c'est lui. Mais un moteur complet de gestion d'objets avec événements, poignées, conteneurs, sérialisation ? C'est un projet d'une tout autre envergure. Pas le genre de chose qu'on fait seul dans son coin quand on n'est pas un expert du moteur graphique bas niveau.
Il lui faut un partenaire. Quelqu'un qui sait transformer une vision en code. Quelqu'un de suffisamment compétent techniquement pour réaliser un module de cette ambition.
Ce quelqu'un, David va le trouver sur le forum PureBasic.
STARGÅTE
Martin Guttmann, alias STARGÅTE, est un développeur allemand reconnu dans la communauté PureBasic. Pas un amateur : un expert. Il est l'auteur de plusieurs modules respectés — TabBarGadget, Lizard, Typeface — des outils de qualité qui prouvent qu'il sait coder des choses complexes avec élégance.
STARGÅTE avait déjà publié un code plus ancien pour transformer des gadgets dans PureBasic. David y voit le potentiel. En juillet 2020, il approche STARGÅTE avec son idée. La proposition est claire : David fournit la vision, la motivation, les spécifications, les exemples et la documentation. STARGÅTE code le moteur. C'est une collaboration inhabituelle dans la communauté PureBasic. Deux développeurs aux compétences différentes mais parfaitement complémentaires. David apporte la vision, les spécifications, la direction, les exemples. STARGÅTE apporte l'expertise technique de haut niveau nécessaire pour coder le moteur.
Le projet s'appelle Editors Factory.
Editors Factory. L'usine à éditeurs.
Le nom dit tout : ce n'est pas un éditeur, c'est un outil pour en créer.