Si tu veux parler d'une séparation frontend/backend, ou client/serveur, ça existe quand même depuis très très longtemps sous une diversité de formes impressionnate. D'une manière générale, je pense que peu de gens contestent l'utilité de séparer les algorithmes du logiciel et l'interface utilisateur.
La séparation frontend/backend, je l'avais implémenté à l'époque parce que ça me semblait une bonne idée. Vu tous les avantages que cela apporte, je me doute bien que je ne sois pas le seul à mettre en œuvre ce mécanisme, sans toutefois chercher à en savoir davantage à ce sujet. Je l'ai simplement mentionné à titre informatif, sans vouloir impliquer que cela soit une exclusivité de mon framework.
Après, qu'il faille recompiler la partie UI ou modifier le code pour modifier l'interface, ça dépend un peu du type de logiciel, mais ça ne me semble pas forcément primordial. J'ai du mal à voir ce que ça change en termes de maintenabilité du code, par exemple. Si tu as un code super-complexe qui te génème une interface graphqiue à partir de fichiers XML super complexes, tu vas avoir des bugs de partout, et il est très improbable de motiver les gens à apprendre le "framework". Typiquement, pour un logiciel libre, ça veut dire que tu te coupes de la possibilité de recevoir des patches ; un utilisateur ne va pas passer plusieurs mois à se former sur ton framework pour corriger un bug.
Le code pour générer l'interface n'est pas complexe en soi ; ce qui peut être complexe, c'est le code HTML/CSS, et éventuellement JS (sachant que l'on peut mettre du XHTML/CSS/JS directement dans le fichier XSL), mais cela dépend uniquement de ce que veut l'utilisateur. Les fichiers XSL fournis avec l'application ne contiennent que des instructions XSL relativement basiques. Quand au XML, il n'est pas complexe non plus, car il ne contient que les données, et quelques informations associées, destinées à être affichées.
L'isolement technologie a un coût, spécialement pour du logiciel libre. Si tu utilises un binding gtk pour perl, tu as de grandes chances que beaucoup de bricoleurs puissent en un coup d'œil comprendre ce que tu fais. Par ailleurs, être capable de faire tourner ton soft sans passer 3 jours à installer l'environnement de travail peut aussi aider. Au contraire, si le saut technologique est important, cette première étape est rédibitoire. Par exemple, j'ai été faire un tour sur ton github, juste pour cliquer sur quelques fichiers C++ au hasard. Clairement, ton code C++ n'est pas du C++, c'est une sorte de dialecte du C++ qui repose sur des appels de macro dans tous les sens. C'est peut-être justifié, mais ma réaction, c'est "qu'est-ce que c'est que ce bordel, c'est même pas du C++ ce truc". Entre ça et le code généré, j'ai l'impression que comprendre la logique de ton framework nécessite plusieurs semaines de travail. Si en plus tu n'arrives pas à expliquer l'intérêt d'utiliser ce type de technologie, tu vas galérer pour trouver une base d'utilisateurs à mon avis.
Je n'essaye pas de mettre l'accent sur mon framework, d'autant plus qu'il n'est pas documenté (pas dans le sens 'documentation pas rendue publique', mais dans le sens 'documentation réellement inexistante'). Il se trouve que j'ai développé, et que je compte encore développer, quelques logiciels que j'ai placé sous licence libre, et qui me semblent donc parfaitement qualifiés pour faire l'objet de quelques journaux sur ce site. Maintenant, que les gens ne s'y intéresse pas, ou ne s’intéresse qu'au logiciel, ou bien s'intéresse au framework sur lequel ces logiciels s'appuient, c'est leur affaire, tout en étant bien conscient que mes lacunes en matière de communication ne facilite pas les choses, sachant néanmoins qu'il y a plus de chance que les gens s'y intéresse en communiquant mal sur le sujet, qu'en ne communiquant pas du tout. Si, malgré cela, des personnes sont intéressées par ce que je fais, je leur apporterais volontiers tout éclaircissement qui leur paraîtrait nécessaire.
Pour ce qui est de l'installation du logiciel, je suis parfaitement d'accord qu'elle est, dans sa forme actuelle, quelque peu rédhibitoire. Mais ce n'est pas dû à mes logiciels proprement dit, mais à CEF, sur lequel mes logiciels s'appuient dans leur version native. Pour Windows, j'ai essayé de simplifier l'installation en fournissant un package auto-suffisant. Pour les autre environnements, je voudrais pouvoir faire la même chose, mais je ne sais pas faire (ce qui ne veut pas dire que ce n'est pas possible). Tous les autres logiciels que j'ai publié et qui ne dépendent pas de CEF sont installés après décompression de l'archive en lançant simplement un make à la racine de l’archive. Je suis en train d'essayer de mettre en place la même procédure pour ce logiciel-ci, mais ça nécessite de se plonger dans les arcanes de CEF, ce qui prend du temps...
Répondre de manière semi-agressive aux commentaires ne risque pas forcément d'aider non plus, d'ailleurs. Tu t'attendais peut-être à ce que les gens te répondent "c'est génial ton truc, comment personne n'y a jamais pensé avant", mais visiblement, s'ils te disent qu'ils n'ont pas compris et que ça ne leur paraissait pas spécialement nouveau ni même intéressant, ça n'est pas dans le but de te blesser. Si tu es dans l'état d'esprit de répondre "vous êtes tous des cons qui n'y connaissez rien", ça ne va pas être très constructif. Il ne faut pas non plus que ça bride ton entousiasme, si tu penses que ton truc vaut le coup, fonce. Mais n'oublie pas "eat your own dog food": Si ta techno permet de développer sans effort des logiciels super facilement, alors le mieux est de fournir ces logiciels toi-même, jusqu'à ce que les gens se demandent "mais comment ce type peut-il maintenir autant de softs de qualité?", ce qui les amènera sur le côté technique. L'approche inverse me semble au contraire très risquée, pusiqu'il est normal pour quelqu'un de sain mentalement de rejeter une nouvelle technologie sans avoir une bonne raison de s'y intéresser.
Il ne me semble pas avoir répondu de manière semi-aggressive. Par contre, j'ai l'impression que mon refus de me plier à certains dogmes auxquels quelques personnes semblent attachées est vécu par ces dernières comme un affront... Comme je l'ai écrit plus haut, je ne m'attends à rien du tout en publiant ce genre de journal. Je suis développeur freelance, j'adore ça, et j’utilise mon framework pour développer les applications demandées par mes clients, qui en sont d'ailleurs très satisfait. En outre, j'utilise quotidiennement avec délice, professionnellement et à titre privé, plusieurs applications, dont certaines disponibles sur mon site, que j'ai développées et qui sont basées sur mon framework (donc, le dogfooding, je connais). Quelques soient les réactions à mes journaux, elles ne changeront rien à cela, ni d'ailleurs, rassure-toi, à mon intention de continuer à développer ce logiciel et d'autres, dont les évolutions feront l'objet de journaux ici même.
Zelbinium: pour la génération qui crée, pas celle qui scrolle...
[^] # Re: Troll
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : le commencement. Évalué à 2.
La séparation frontend/backend, je l'avais implémenté à l'époque parce que ça me semblait une bonne idée. Vu tous les avantages que cela apporte, je me doute bien que je ne sois pas le seul à mettre en œuvre ce mécanisme, sans toutefois chercher à en savoir davantage à ce sujet. Je l'ai simplement mentionné à titre informatif, sans vouloir impliquer que cela soit une exclusivité de mon framework.
Le code pour générer l'interface n'est pas complexe en soi ; ce qui peut être complexe, c'est le code HTML/CSS, et éventuellement JS (sachant que l'on peut mettre du XHTML/CSS/JS directement dans le fichier XSL), mais cela dépend uniquement de ce que veut l'utilisateur. Les fichiers XSL fournis avec l'application ne contiennent que des instructions XSL relativement basiques. Quand au XML, il n'est pas complexe non plus, car il ne contient que les données, et quelques informations associées, destinées à être affichées.
Je n'essaye pas de mettre l'accent sur mon framework, d'autant plus qu'il n'est pas documenté (pas dans le sens 'documentation pas rendue publique', mais dans le sens 'documentation réellement inexistante'). Il se trouve que j'ai développé, et que je compte encore développer, quelques logiciels que j'ai placé sous licence libre, et qui me semblent donc parfaitement qualifiés pour faire l'objet de quelques journaux sur ce site. Maintenant, que les gens ne s'y intéresse pas, ou ne s’intéresse qu'au logiciel, ou bien s'intéresse au framework sur lequel ces logiciels s'appuient, c'est leur affaire, tout en étant bien conscient que mes lacunes en matière de communication ne facilite pas les choses, sachant néanmoins qu'il y a plus de chance que les gens s'y intéresse en communiquant mal sur le sujet, qu'en ne communiquant pas du tout. Si, malgré cela, des personnes sont intéressées par ce que je fais, je leur apporterais volontiers tout éclaircissement qui leur paraîtrait nécessaire.
Pour ce qui est de l'installation du logiciel, je suis parfaitement d'accord qu'elle est, dans sa forme actuelle, quelque peu rédhibitoire. Mais ce n'est pas dû à mes logiciels proprement dit, mais à CEF, sur lequel mes logiciels s'appuient dans leur version native. Pour Windows, j'ai essayé de simplifier l'installation en fournissant un package auto-suffisant. Pour les autre environnements, je voudrais pouvoir faire la même chose, mais je ne sais pas faire (ce qui ne veut pas dire que ce n'est pas possible). Tous les autres logiciels que j'ai publié et qui ne dépendent pas de CEF sont installés après décompression de l'archive en lançant simplement un
makeà la racine de l’archive. Je suis en train d'essayer de mettre en place la même procédure pour ce logiciel-ci, mais ça nécessite de se plonger dans les arcanes de CEF, ce qui prend du temps...Il ne me semble pas avoir répondu de manière semi-aggressive. Par contre, j'ai l'impression que mon refus de me plier à certains dogmes auxquels quelques personnes semblent attachées est vécu par ces dernières comme un affront... Comme je l'ai écrit plus haut, je ne m'attends à rien du tout en publiant ce genre de journal. Je suis développeur freelance, j'adore ça, et j’utilise mon framework pour développer les applications demandées par mes clients, qui en sont d'ailleurs très satisfait. En outre, j'utilise quotidiennement avec délice, professionnellement et à titre privé, plusieurs applications, dont certaines disponibles sur mon site, que j'ai développées et qui sont basées sur mon framework (donc, le dogfooding, je connais). Quelques soient les réactions à mes journaux, elles ne changeront rien à cela, ni d'ailleurs, rassure-toi, à mon intention de continuer à développer ce logiciel et d'autres, dont les évolutions feront l'objet de journaux ici même.
Zelbinium: pour la génération qui crée, pas celle qui scrolle...