|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() |
Salut,
Je présume que beaucoup d'entre vous (parmi ceux qui n'y ont pas participé) ont au moins aperçu le débat portant sur les framework utilisant un super objet. Si, de manière générale, il ressort une chose certaine du débat, c'est que l'on se rend compte que la plupart des framework actuels ont été débutés lorsque... il aurait été difficile de faire sans super objet (soit dit sans tenter de minimiser en quoi que ce soit la valeur des projets). Par contre, j'ai l'impression qu'il pourrait ne pas être totalement impossible, entre la SL, les template et boost (plus l'une ou l'autre des capacités de C++ n'entrant dans aucune de ces catégories), de créer une bibliothèque d'IHM et un framework associé (comprenez : capable de fournir tous les services que l'on retrouve dans Qt, par exemple) qui pourrait s'avérer aussi puissant, portable et souple sans avoir besoin de recourir à un super objet. Je n'ai pas la prétention de connaitre toutes les bibliothèques graphiques existantes, et c'est la raison pour laquelle je voudrais avoir votre avis sur les questions suivantes :
Merci d'avance
__________________
en bas de page
|
|
|
00
|
|
|
#2 |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 3 134 ![]() |
Bonjour,
le but est créer une une bibliothèque d'IHM et un framework associé juste pour éviter l'existence d'un super objet ? ca parait un peu non ?comme tu l'as dit il y a Qt, et la version 4 est open source, même si j'ai une dent contre la 'version' 4 (qui n'est pas une nouvelle version mais en réalité un autre produit ayant des similitudes avec ce qu'était Qt3) il parait effarant de faire un équivalent. Il y aurait bien-sûr un intérêt technique, par contre au niveau business plan ... |
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Citation:
Cela pourrait être, tout simplement, l'occasion de "réinventer" ou de "révolutionner" la création d'IHM en C++ et de s'affranchir également de cette étape supplémentaire imposée par Qt qu'est moc. Des raisons pour le faire, il peut y en avoir à l'appel Citation:
Pourquoi serait il plus effarant de faire quelque chose de nouveau maintenant qu'à l'époque, étant donné que les techniques de programmation d'une part et les capacités techniques des ordinateurs d'autre part ont énormément évolué depuis le moment où l'idée de départ de Qt a été lancée
__________________
en bas de page
|
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2009 Messages : 1 359 ![]() |
Avoir ou ne pas avoir de SuperObjet, c'est une décision d'implémentation, refaire un truc énorme juste sur une modification de décision d'implémentation, ca me parait un peu démesuré.
Maintenant, un projet de librairie d'IHM portable est une bonne idée. Le problème de Qt et des autres, c'est qu'ils sont devenus, au fil des ans, des machins énormes, dans lesquels on rentre comme en religion, qui doublonnent partiellement avec des éléments devenus standard depuis (la STL), et, surtout, qui imposent au converti un apprentissage lourd... Bâtir un framework minimaliste, permettant de construire des applications fenêtrées, avec une sémantique suffisamment simple pour que l'utilisateur n'ait pas besoin de passer 6 mois à se former avant de produire quelque chose de décent, réellement portable, ça me parait être un gros projet, mais quelque chose de réellement utile. Quelques contraintes qu'un tel projet devrait respecter : 1- faire de l'IHM et du framework général d'application, et juste ça 2- être conçue dans une optique d'économie de ressources (les IHM qui dévorent la mémoire, il y a largement le choix sur le marché...), et avec l'idée que le poste typique sur lequel tourne une appli IHM, ce n'est pas un poste moderne 3- penser portabilité (en terme d'OS, de compilateur, et de versions d'OS) dès le départ (et pour moi, ca veut dire pas de C0x machin chose... et même pas tout boost, des lib expérimentales pour machines de demain, ça ne manque pas) 4- réinventer, s'il le faut, l'implémentation, mais autant que possible recycler du look existant (tout en permettant une customisation): l'IHM ca doit être joli et familier... 5- se dire que pour être utilisée, une lib doit être facile à apprendre... 6- penser RAD : pour l'IHM, l'IDE fait partie de la lib... 7- penser "bascule" : la principale raison pour laquelle on utilise un framework, c'est qu'on a déjà des applis qui l'utilisent. Une "nouvelle lib minimaliste" doit être interopérable (sinon, on remplace juste une religion par une autre) Francois |
|
|
00
|
|
|
#5 |
![]() ![]() yan verdavaineIngénieur expert Inscription : mars 2004 Messages : 9 870 ![]() |
Tu voudrais faire un truc comme ultimate++?
mais avec plus de fonctionnalité(comme les metadata) et basé exclusivement sur la S(T)L et boost? |
|
|
00
|
|
|
#6 | |||
![]() ![]() |
Citation:
Ce n'est pas parce que j'ai basé ma première argumentation sur ce point qu'il faut en déduire que c'est forcément la seule raison qui m'incite à envisager de lancer un tel projet Citation:
Même si on décide de "commencer simple" et "minimaliste", il y a de fortes chances pour que l'on finisse tôt ou tard par décider de rajouter des "goodies" permettant de simplifier la vie des gens: Tôt ou tard, nous risquons d'être confrontés à l'idée que "avoir la possibilité de gérer une BDD", ce serait pas si mal, idem pour n'importe quel autre aspect régulièrement mis en oeuvre en parallèle à une IHM Mais bon, avant d'en arriver là, il y a surement de la marge Citation:
2- De fait, mais sans pour autant revenir aux interfaces à la "win 3.11" 3- Je comprends ce que tu veux dire, mais, il me semble cohérent de dire qu'il faudra de toutes manière effectivement poser certaines limites à la compatibilité des compilateurs... Un support correct de C++03 et de TR1 me semble le minimum requis pour y arriver 4- La "beauté" est très suggestive, mais j'adhère cependant à l'argument... Même si on peut envisager la possibilité de personnaliser le "look'n feel" 5- Sur ce point, rien à redire 6- Je ne suis pas contre une approche RAD, loin de là, mais à condition que ce soit le RAD qui vienne s'articuler autour de la bibliothèque / le framework, et non la bibliothèque qui s'articulerait à ce point autour du RAD qu'elle en devienne inutilisable si, pour une raison ou une autre, nous venions à ne pas disposer du RAD
__________________
en bas de page
|
|||
|
|
00
|
|
|
#7 | |
![]() ![]() |
Comme je l'ai dit, l'aspect RAD serait bien plus secondaire que l'aspect bibliothèque IHM + framework...
Citation:
__________________
en bas de page
|
|
|
|
00
|
|
|
#8 | ||||
|
Membre Expert
![]() Inscription : avril 2009 Messages : 1 359 ![]() |
Citation:
L'autre idée, c'est que pas mal de librairies prèfèrent refaire que gérer l'interopérabilité. Rien qu'en éliminant ca, je pense qu'on réduit beaucoup la taille du framework... Citation:
C'est peut être le plus difficile, en fait (et la partie la plus intéressante du projet) : définir à l'avance ce qu'on entend par framework d'IHM, et s'y tenir. Citation:
Il faut juste regarder ce qu'est le "coeur", et ce dont il a besoin. Citation:
On est dans un de ces nombreux cas où ceux qui font ne sont pas ceux qui utilisent... Francois |
||||
|
|
00
|
|
|
#9 | |||||||
![]() ![]() |
Citation:
Je voulais attirer ton attention que sur le fait que, tôt ou tard, il faudra
Citation:
Citation:
Citation:
Citation:
[EDIT]Et je crains que la gestion des threads, par exemple, ne soit vraiment rendue beaucoup plus complexe si on décide de se passer de boost thread ou des possibilités futures de C++11, ne serait-ce parce qu'il n'y a pas grand chose de compatible en dehors (même pthread est un projet plus ou moins zombie qui n'apporte pas forcément le support complet de l'ensemble des possibilités des threads *nix Par contre, si, pour assurer une certaine compatibilité avec les compilateurs les plus anciens, il s'agit de passer par une compilation conditionnelle, basée, par exemple, sur les numéros de versions, cela peut rester envisageable [/EDIT] Citation:
Citation:
Mais je ne voudrais pas non plus que l'aspect RAD soit obligatoire, de manière à permettre à ceux qui restent "désespérément collés" à vim ou à emacs d'utiliser la bibliothèque comme bon leur semble. Le RAD pourrait parfaitement utiliser une technologie donnée pour la génération des projets, mais il ne devrait, à l'extrême limite, pas être "plus compliqué" de décider d'utiliser les auto tools, make, bjam ou CMake, aussi bien pour générer la bibliothèque que... pour générer le projet. Quand tu y regarde, la première chose qui est compilée pour Qt, c'est... qmake, et il est, oserais-je le dire, le "passage obligé" pour n'importe quel projet utilisant Qt. Il va de soi que le fait de fournir un moyen "standard" de générer la bibliothèque et/ ou le RAD au départ des sources apportera une facilité certaine à tous, mais ce moyen ne devrait pas être considéré comme incontournable à l'utilisation (même si on peut envisager qu'il soit également utilisé "en interne" par le RAD). Je ne sais pas trop si je me fais bien comprendre, alors, n'hésite pas à revenir là dessus
__________________
en bas de page
|
|||||||
|
|
00
|
|
|
#10 | |||
|
Membre Expert
![]() Inscription : avril 2009 Messages : 1 359 ![]() |
Citation:
Citation:
Comme de toutes façons, une telle librairie contiendra une certaine dose de code bas niveau, on peut se demander dans quelle mesure l'utilisation d'une solution toute faite, pour l'usage interne de la librairie, qui introduirait des contraintes de portabilité, est une bonne idée. Je ne dis pas qu'il ne faut pas le faire, mais je me méfierais... Citation:
Francois |
|||
|
|
00
|
|
|
#11 | |||
![]() ![]() |
Citation:
Encore une fois, l'idéal serait de pouvoir gérer cela "plus finement" Citation:
éviter de donner l'impression que la seule manière d'utiliser les thread soit... celle mis en oeuvre en interne faire en sorte que les outils existants (boost thread ou les threads C++11, par exemple) ne soient pas plus compliqués à utiliser avec la bibliothèque que sans... Citation:
__________________
en bas de page
|
|||
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() Inscription : avril 2009 Messages : 1 359 ![]() |
Citation:
Dans le cas de boost, il y a, mine de rien, pas mal de chose qui fonctionnent sans problème même sur des configurations anciennes. Ce qui est plus hasardeux, ce sont généralement ces bibliothèques qui justement sont encore en pleine évolution. Pour ce qui est du bas niveau, ou plus précisément des appels systèmes, je doute qu'une telle librairie y échappe. Un framework d'IHM a justement pour fonction d'encapsuler l'interface avec l'OS dans une structure portable... Il y a sans doute des cas pour lesquels ce travail peut être délégué, mais un tel projet nécessite des gens qui connaissent très bien les OS cibles. Ca reste un projet très ambitieux, qui s'adresse, idéalement, à des gens ayant déjà une expérience un peu longue de l'IHM "bas niveau". En terme de code, je ne crois pas que ce soit très gros, mais conceptuellement, ce n'est pas facile. Francois |
|
|
|
00
|
|
|
#13 |
![]() ![]() |
Ah, je n'ai jamais dit que ce n'était pas un projet ambitieux, ni que le premier clampin ayant lu deux (mauvais) tutos sur C++ serait capable de participer à sa mise en oeuvre...
).Mais, si je venais effectivement à lancer un tel projet (en plus, il est envisageable de faire héberger des projets sur DVP Et vous autres, là, qui avez lu la discussion sans intervenir... Qu'en pensez vous Allez, que diable, exprimez vous... Je suis convaincu que, si on décidait de lancer un tel projet, sa qualité serait proportionnelle à celle du débat que je vous propose ici, or, pour l'instant, si on fait exception des interventions de yan et de bruno, on croirait assister à un dialogue entre François et moi Et pourtant, je suis persuadé que certains pourraient émettre des idées ou des jugements intéressants... Jean marc Croyez vous seulement que ce soit réalisable / intéressant
__________________
en bas de page
|
|
|
01
|
|
|
#14 |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 3 134 ![]() |
saperlipopette, gros c'est à partir de qu'elle taille ?
comment comptez-vous gérer le multi plateforme Linux et Windows coté graphique, vous voulez implémenter la chose ... avec QT ? (blague) ouf, je ne suis pas dans la liste, koala01 doit faire parti des gens qui pense que Bouml c'est moche |
|
|
00
|
|
|
#15 | |
![]() ![]() |
Citation:
Non, tu es dans la liste de "tous ceux que je ne cite pas nommément" (et puis, je t'avais déjà cité plus haut) Mais, quand on y regarde, cette discussion a été lue, en moyenne, douze fois pour chaque réponse qui a été apportée (enfin, c'était la moyenne après écriture de ma réponse précédente Au lieu de ca... Rien, Nada, Nothing... Ou peu s'en faut... N'allez surtout pas croire (je m'adresse à ceux qui ont déjà répondu J'aurais simplement espérer obtenir une plus grosse brochette d'avis
__________________
en bas de page
|
|
|
|
00
|
|
|
#16 |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 3 134 ![]() |
cela va peut être venir, et puis la chose n'est pas mince il est normal que cela demande réflexion, en plus on est quand même vendredi avant 3 jours de WE
Perso je ne peut pas dire que je connais l'implémentation bas niveau d'IHM, même si j'ai participé à http://xcoral.free.fr (écrit en X pur), il y a bien bien longtemps de cela. |
|
|
00
|
|
|
#17 | |
![]() ![]() |
Citation:
Je sais bien que certains se déchaineront (peut être) un peu plus tard
__________________
en bas de page
|
|
|
|
00
|
|
|
#18 | |
|
Membre Expert
![]() Inscription : avril 2009 Messages : 1 359 ![]() |
Difficile à dire précisément, mais je pense qu'on peut avoir un framework très complet en moins de 100 000 lignes de code C++ un peu dense (au jugé, je dirais 50 000). Ca devrait être un objectif du projet, d'ailleurs, le nombre de lignes...
Ce n'est pas un petit truc, bien sur, mais ca tient dans la tête d'un developpeur unique, pour donner une idée... Citation:
On se retrouve avec un fichier primitive par OS, qui traduit les appels de base en "langage framework", et après, tout est écrit en "framework pur". Idéalement, il faudrait avoir dans le système une méthode permettant de modifier ce qu'on confie au fichier primitive, et au framework, ce qui permettrait de mieux optimiser pour des systèmes exotiques. Le problème n'est pas dans le portage. La vraie difficulté, c'est de concevoir le "langage framework". @koala : je suis intéressé pour en causer (c'est déjà çà), au delà, je suis une vraie planche pourrie, moi, aucune suite dans les idées... mais je ne parlerais pas du sujet s'il ne m'intéressait pas. Francois |
|
|
|
00
|
|
|
#19 |
![]() ![]() bruno pagèsDéveloppeur informatique Inscription : juin 2005 Messages : 3 134 ![]() |
50000 me parait très optimiste, si regarde le vieux et à priori 'petit' Qt2.3 qui ne doit pas être loin du but à atteindre, les .cpp seuls font 310000 lignes (j'ai fais un wc -l, cela compte tout y compris lignes vides et commentaires, mais bien-sûr je ne compte pas les exemples donnés avec Qt)
|
|
|
00
|
|
|
#20 | ||
![]() ![]() |
Citation:
Toute personne vaut, entre autres, par son expérience personnelle, et j'ai le sentiment que tu pourrais apporter un point de vue très enrichissant pour certaines choses... Au pire, nous pourrions considérer que tes lacunes seront comblées par les points forts d'autres personnes, et que tu comblera sans doute fort bien les lacune de certaines d'entre elles (dont moi en premier ) Citation:
Plus nous donnerons de possibilités de base, plus nous risquons de dépasser le sens de "pas trop grand"
__________________
en bas de page
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com