Bonjour à tous.
J'ai commencé à développer une librairie de composants graphiques calquée sur la VCL de Borland. Bien qu'elle soit actuellement utilisable (et utilisée par moi), l'ampleur de la tâche me font envisager de la mettre en open-source pour pouvoir partager la charge de développement (et bien évidemment partager également le bénéfice de son utilisation). L'objet de ce post est de savoir si ce projet intéresse du monde.
L'origine du projet :
Au départ, mon but était de développer des petits programmes freewares. Qui dit freeware dit budget zéro. J'ai donc programmé uniquement avec des programmes gratuits (Dev CPP et code-block). Et comme j'avais l'habitude de programmer avec Borland C++ builder, j'ai commencé à créer des classes reproduisant la VCL pour faire mes premières interfaces. Au départ, ces classes permettaient de créer des interfaces simples (TForm, TLabel, TButton, TEdit, TListBox). Puis, au fur et à mesure, ces classes se sont étoffées et se sont multipliées. Aujourd'hui, j'ai plus de 80 classes reproduisant une bonne partie des composants Borland (les plus essentiels), et contenant de nombreuses propriétés des composants d'origine (à vue de nez, une bonne moitié), et même des propriétés qui ne sont pas dans Borland.
Pourquoi continuer ?
Je pense que ce projet pourrait avoir de nombreux avantages s'il arrivait dans une phase quasi-complète:
- Il est gratuit.
- Il permet de faire des choses que la VCL, de par son historique issu du PASCAL, ne permet pas: l'héritage multiple de classes, par exemple.
- Les classes elles-mêmes peuvent être améliorées. Ceux qui ont essayé de dessiner dans un TCanvas me comprendront: dans la classe Borland, impossible de dessiner des textes orientés, il est très dur de gérer la couleur de fond et le point d'origine des textes. Autre exemple, il manque un événement OnPaint pour les TButton, l'objet TRichEdit n'a pas la moitié des possibilités pourtant prévues dans le contrôle Windows sous-jacent (texte en indice ou en élévation, espacement des caractères, ...).
- Il permet de faire des programmes autonomes beaucoup plus compacts (un programme Borland compilé sans les paquets d'exécution fait minimum 1 méga-octet).
- Il existe déjà un projet Free-CLX sous linux. La réunion des deux permettrait d'avoir un système de développement multi-plateformes.
Faut-il continuer ?
D'autre part, le projet a aussi quelques inconvénients qu'il va falloir surmonter:
- Le projet demande encore une grosse charge de travail avant d'être une alternative crédible au "vrai" Borland.
- Je ne suis pas très sûr qu'au niveau juridique, il ne puisse pas y avoir des problèmes: même si tout est entièrement réécrit, les noms et les héritages de classes sont les mêmes (forcément, sinon c'est plus compatible). Mais ça revient un peu quelque part à utiliser l'analyse de Borland. En même temps, quand on sait comment ils ont piraté le MSDN de Windows pour l'intégrer à leur aide, ils seraient mals venus de donner des leçons d'éthique...
- J'ai reproduit le principe des propriétés et des événements avec un template, mais qui ne donne pas entière satisfaction (dans certains cas, le code Borland n'est pas compatible).
Pourquoi ne pas utiliser wxWidget ?
Je ne veux pas me positionner en concurrent de wxWidget, qui est aussi une librairie très bien faite et ègalement gratuite. Ce projet est juste complémentaire, il pourrait être plus utile dans certains cas:
- Reprise de projets C Builder existants.
- Possibilité de bénéficier de nombreux composants open-sources gratuits qui devraient pouvoir être adaptés sans trop de difficultés.
Les objectifs :
- Avoir une compatibilité la plus complète possible avec les classes Borland.
- Etre plus complet et plus performant que la VCL lorsque c'est possible.
- Diffuser le tout en licence LGPL.
Voilà. J'attends vos réactions et vos critiques, et j'espère qu'il y aura des personnes motivées pour m'accompagner dans ce projet.
Partager