freem a écrit 4965 commentaires

  • [^] # Re: pourquoi pas du js converti en asm.js

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 2.

    asm.js et emscripten sont utiles pour compiler d'autres langages en Javascript. Vouloir transformer du javascript en asm.js va demander des cabrioles pour contourner les types de asm.js (puisque Javascript n'est pas typé), ce qui limite vachement l'intérêt de asm.js, non ?

    Ca limite, oui, c'est sûr… Mais dans la catégorie des "il ne faut pas oublier", j'invoque la quantité de code non négligeable qui existe en C et C++, qui deviendra d'un coup accessible aux utilisateurs de JS.

  • [^] # Re: Les jeux oui, mais pas que

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 2.

    Mais l'open source, ça sert à rien si ta source est illisible.
    Côté obscurantisme, on peut très facilement rendre illisible n'importe que code source, et à ce que j'ai cru comprendre des rumeurs du net, les entreprises ne s'en privent pas quand on parle de JS…

  • [^] # Re: Pas convaincu

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 2.

    Un bon ide avec un bon tooling et un bon debuggeur me semblent plus important que grapiller des pourcents de performances, surtout si tu t'addresses a des gens qui viennent du monde natif et qui sont habitues a avoir des outils, mais ca reste mon avis perso.

    Ca tombe bien, on parle de compiler du C++ en asm.js. Côté IDE, le C++ n'a peut-être pas les meilleurs (langage trop complexe pour l'auto-complétion, notamment) mais possède certainement de bons outils malgré tout.

    En fait, c'est surtout ça qui m'a intéressé quand j'ai lu l'article: pouvoir faire du "dev web" en utilisant un langage fortement typé et faire des tests de débogage en natif avec au final assez peu de modif à faire pour le transformer en web ensuite.
    Le gain de performance contre l'asm.js ne me semble également pas négligeable, et côté du "code écrivable et lisible à la main" je suis désolé mais l'argument ne tiens pas trop, JS est pas vraiment un modèle quand on parle de choses lisibles. Rien que l'absence de typage… bon, après, ce dernier point est un avis très personnel, bien sûr.
    De toute façon, le "code lisible" est obfusqué quand ils veulent nous passer des saloperies, alors je me demande si ça importe réellement.

  • [^] # Re: Pas convaincu

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 1.

    Une Java Virtual Machine matérielle… intéressant comme concept, mais un peu voué à l'échec, puisque, du coup, il faut parler de Machine Java directement, non?
    Ou alors on peut dire que les processeurs intel sont des machines virtuelles, puisqu'ils font la même chose que bochs par exemple xD

  • [^] # Re: Pas convaincu

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 2.

    uzbl ? Ce truc est incroyablement lent ! Il a l'air de suffoquer à chaque fois que tu lui demande quelque chose. Je préfère de loin utiliser luakit.

    C'est vrai que la lenteur de ce truc est impressionnante. Peut-être due au fait qu'il ne soit pas encore stable, et que donc l'accent soit encore a l'ajout de fonctionnalités, et pas à l'optimisation?
    Par contre, sa légèreté aussi, c'est pour ça que cet outil est un lecteur de doc locale potable. (idem, du au fait de pas encore être stable?)

    Je l'aime bien, mais pas assez pour le juger utilisable en conditions réelles quoi.

    Par contre, je connaissais pas luakit. Vais aller y jeter un oeil, si ça peut être plus performant, je risque d'adopter (a condition que la config de base soit pas trop merdique, naturellement). En plus il semble avoir grosso modo les mêmes motivations?

  • [^] # Re: -42

    Posté par  . En réponse au journal Un billet d'avion dépendant du poids passager+bagages. Évalué à 4.

    Un dauphin plutôt non?

  • [^] # Re: Gros navion

    Posté par  . En réponse au journal Un billet d'avion dépendant du poids passager+bagages. Évalué à 1.

    je me dis que ce n'est pas qu'une question de volonté

    Un peu comme la clope quoi :D

  • [^] # Re: « Juifs-Arabe ? C'est bizarre et j'aime pas les gens bizarre »

    Posté par  . En réponse au journal Un billet d'avion dépendant du poids passager+bagages. Évalué à 1.

    Pousser un wagon d'une tonne sur un rail, ou un bateau d'une tonne, tu peux le faire avec une main

    L'abus de tintin au congo nuit au sens des perceptions, on dirait.

    Décoller un objet d'une tonne tu sol, tu n'y arriveras pas.

    Donc, comme il est peu probable que le poids augmente en cours de vol (sauf ravitaillement aérien, ça se fait dans l'armée et/ou l'aerospatial, il me semble) l'avion ne décollera pas. Pas de problème de sécurité donc.

    Navré, j'ai pas pu résister, vus les fumeux fameux "arguments" :D

  • [^] # Re: « Juifs-Arabe ? C'est bizarre et j'aime pas les gens bizarre »

    Posté par  . En réponse au journal Un billet d'avion dépendant du poids passager+bagages. Évalué à -1.

    Ce qui signifie qu'il faudra mettre des endroits discrets pour ceux voulant réduire leur PTAC sexuel de quelques grammes manuellement, alors?
    J'imagine le travail :D

  • # cookie

    Posté par  . En réponse à la dépêche Vingt dieux, Firefox 20 est sorti !. Évalué à 2.

    Ca, c'est cool, et quelque chose qui aurait dû être fait depuis des années, par tous les navigateurs. Sûrement plus efficace que le DNT, pour moi.
    Très, très […] excellent point!

    Le souci, par contre (il faut bien qu'il y en ait un) c'est que certains sites imposent l'usage de cookies tiers, je pense par exemple au webmail microsoft (oui, je sais… mais c'est mon mail historique, et je ne m'en sers plus réellement. Sauf que quand c'est le cas… je suis embêté par mes réglages, justement).

    Je parie qu'il va y avoir une flopée d'utilisateurs qui ne vont pas apprécier (ils ne comprendront plus pourquoi ils n'arrivent pas a accéder à leur site. A voir contre qui ils vont râler: pourvu que ce ne soit pas sur FF!)

    Le gestionnaire de téléchargement n'est pas non plus un mal.
    Enfin, je me pose une dernière question: tous les "navigateurs grand public" intègrent des outils de dev en dur. Je me demande si on peut vraiment considérer ça comme grand public, et quelle influence ça peut avoir sur le binaire (en terme de performances, de stabilité et de coût de maintenance, notamment) car je doute qu'un utilisateur normal s'en serve souvent…

  • [^] # Re: Pas convaincu

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 1.

    Pour les fonctionnalités du navigateur, elles font surtout doublon avec un tas de trucs qui existent déjà dans ton système d'exploitation. Mais bon, un navigateur c'est moderne, c'est cool et au diable l'esprit unix !!!

    uzbl?

  • [^] # Re: Internet

    Posté par  . En réponse à la dépêche Mozilla a 15 ans. Évalué à 0. Dernière modification le 04 avril 2013 à 16:21.

    Mon ton est devenu de plus en plus dur, c'est vrai, et était effectivement critique dès le début.
    Mais si le ton a durci, c'est aussi face aux gens qui nient les problèmes, allant quand même jusqu'a me sortir que le problème que j'ai trouvé "n'existe peut-être pas" (genre je phantasme…).

    Après, oui, Mozilla à fait avancer le monde, clairement (cassé le monopole d'IE sur le web).
    Microsoft aussi (rendre l'informatique accessible à tant de gens, sans avoir besoin de la moindre compétence technique et pour si peu cher, ça n'a pas dû être évident tous les jours).
    Canonical aussi (je connais pas mal de monde qui utilise Ubuntu, et qui n'auraient jamais essayé un OS libre si ce système n'avait pas fait un tel tabac. Ca fait, pour moi, avancer la cause linux sur le bureau, même si je n'aime pas cette distro).
    Ils le font encore, et il est important de le reconnaître, chose que je fais.

    Mais Microsoft à aussi, entres autres, déclaré une guerre au LL, Canonical à intégré un adware (licence GPL v2 si je me rappelle bien, j'avais été voir si le source était dispo, par curiosité) dans Ubuntu. Mozilla Firefox intègre, lui, un moteur de recherche qui espionne les utilisateurs.

    A MS et Canonical, on à le droit de dire leurs 4 vérités, mais pas à Mozilla? Original.

    Qu'ils aient besoin d'argent, je le conçois, mais la façon dont ils le font me fait horreur, et n'est pas digne selon moi de défenseurs du Logiciel Libre ou d'un web ouvert. Ouvert sur quoi? Sur l'hégémonie de google? La blague, non? Mais il ne faut surtout pas le dire…

    Pour le moinssage, sache quand même que des acharnés m'ont mis (autre sujet) un message ou je répondais à une question sur les design pattern à -1, quand même :D
    Ca me fait sourire, et j'avoue m'être laissé tenté à provoqué ceux qui l'on fait. Pire: je n'en éprouve aucun remords :D

  • [^] # Re: Pas convaincu

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 3.

    Euh…. les firewall sont 1000 fois plus efficaces que n'importe laquelle de ces trucs basés sur des listes…

    Sinon, pour MS windows, il existe des outils capables d'empêcher des programmes d'accéder à des fonctions spécifiques (enfin, je n'ai connu qu'un, dont je n'arrive pas à me souvenir du nom, mais au moins ça me permet de savoir que ça existe. Ce superbe outil se disais firewall, mais au final faisait plus que faire la circulation sur mon réseau, et ça m'allais très bien.). En gros, dès lors qu'une appli tentait d'accéder à une fonctionnalité du système (registre, disque dur, systray, chargement de DLL systèmes… je n'exagère pas, je ne fait que décrire assez mal ce dont je me souviens) l'outil nous prévenais si on avait pas encore défini de règle pour cette application et cette action.
    Je sais pas si ça existe sous linux, cela dis.

    En tout cas, de tout faire dans les navigateurs, avec le peu de contrôle qu'ils nous offrent sur ce qu'ils font réellement, est vraiment un problème pire que les applications natives. Avec les browser, c'est tout ou rien. La possibilité qu'on a de pouvoir filtrer à l'action ne crée bien souvent pas des listes d'actions autorisées, et ça rend donc le navigateur complètement inutilisable.

  • [^] # Re: Pas convaincu

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 2.

    Java?

  • [^] # Re: Internet

    Posté par  . En réponse à la dépêche Mozilla a 15 ans. Évalué à 1.

    Pour info, j’ai la liste FR+Easylist, Antisocial

    Attention, tu perds ton sang-froid…

    (je suis déjà dehors)

  • [^] # Re: Internet

    Posté par  . En réponse à la dépêche Mozilla a 15 ans. Évalué à 0.

    Disons que je n'apprécie pas la direction dans laquelle ils vont depuis quelques années, pour des défenseurs du libre.
    Après, ça, ça dépend des sensibilités de chacun.

  • [^] # Re: Internet

    Posté par  . En réponse à la dépêche Mozilla a 15 ans. Évalué à 3.

    Peut-être pas la seule, mais à force de tout cacher, on ne rend pas vraiment les choses plus simples pour celui qui veut s'initier. Je pense que c'est un des problèmes majeurs de l'info moderne, mais ça ne regarde que moi. (et je ne parle pas de l'impact sur les perfs, vu que c'est discutable)

  • [^] # Re: Internet

    Posté par  . En réponse à la dépêche Mozilla a 15 ans. Évalué à 2.

    Tu veux un fichier texte pour les options de Firefox ? Très bien. Édite le fichier prefs.js qui est situé dans ton profil.

    Ah, oui, merci. Manifestement, par contre, tout "about:config" ne s'y trouve pas. Une recherche dans about:config de "google" me renvoie 11 clés, alors que ce mot ne se trouve qu'une seule fois dans le fichier que tu as cité.

    C'est pas parce qu'il y a une interface pour modifier facilement de prefs.js que ça en fait un logiciel pourri.

    C'est même le contraire.
    Mais acceptes au moins que le about:config de firefox soit une interface de type "bouse immonde", qui contiens des options qui devraient être accessibles au commun des mortels dans la boîte de dialogue de configuration!
    J'expose d'ailleurs encore d'autres défauts de ce que tu appelles une bonne interface dans la suite de ce message…

    Au passage, opera aussi, à un about:config.
    Par contre, il existe une différence monstrueuse: repli des catégories d'options, pas de message flippant (si tu vas dans about:config, c'est que tu sais que ça existe déjà), une interface qui utilise divers contrôles pour éviter autant que faire se peu d'entrer des valeurs aberrantes, et même un lien pour avoir de l'aide!
    Note 1: je pense qu'opera on en fait fait une simple page web, en utilisant la technologie super moderne des formulaires, couplée avec du JS. Marrant, je pense que mozilla en serait capable s'ils le voulaient.
    Note 2: je n'ai vérifié que opera, firefox et IE (lui, c'est le pire, la page about:config affiche juste "config" xD), je ne sais pas à quoi ça ressemble chez chrome, donc. Entres autres.

    Je ne sais pas où tu as vu ça. Ce que tu tapes dans l'URL utilise le moteur de recherche que tu as sélectionné, pas google.

    Très bien, alors permets moi de te le dire.

    La, j'ai une install de FF dont je me sers de temps en temps (quand mes réglages parano d'opéra m'empêchent d'aller sur certains sites et que j'ai la flemme de les changer pour le site en question).
    J'ai supprimé le moteur de google de la liste, donc il n'est plus sélectionné, pas vrai (en l'occurrence, c'est bing qui l'est, je ne compte pas m'amuser à personnaliser FF alors que je m'en sers même pas 30 minutes par semaine)?
    Alors, si c'est celui qui est sélectionné qui est utilisé, expliques moi pourquoi, quand je tape "truc à la con" dans la barre d'URL, celle-ci deviens: https://www.google.fr/search?q=truc+%C3%A0+la+con&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:fr:official&client=firefox-a&channel=fflb ??? Je suis curieux… plutôt que de me dire que je me lourde, expliques-moi le résultat concret que j'ai.

    Ou c'est peut-être aussi… qu'elle n'existe pas tout simplement :-p

    Et ça, c'est quoi:

    browser.contentHandlers.type.2.title
    browser.contentHandlers.type.2.uri
    browser.safebrowsing.gethashURL
    browser.safebrowsing.keyURL
    browser.safebrowsing.malware.reportURL
    browser.safebrowsing.reportURL
    browser.safebrowsing.updateURL
    browser.search.defaultenginename
    browser.search.order.1
    gecko.handlerService.schemes.mailto.1.uriTemplate
    urlclassifier.keyupdatetime.https://sb-ssl.google.com/safebrowsing/newkey

    Toutes ces clés ont le mot google dans la valeur chez moi. Pourtant, comme je l'ai dis, j'ai supprimé le moteur de google de la liste des moteurs de recherche. Faudra qu'on m'explique… (D'ailleurs, c'est lourd, on ne peux même pas sélectionner les options pour c/c le texte… vive l'interface super évoluée…)

    Notes au passage qu'il y a même une clé qui contient une url du moteur de google, et qu'on ne peux donc même pas éradiquer ce moteur via about:config. Firefox défend l'ouverture à tout prix, et moi, je suis le pape.

    Et le plus drôle, c'est que je vais me faire moinsser (en plus du haineux qui me moinsse systématiquement. D'ailleurs, j'ai un message pour lui: je suis heureux de te faire chier à forcer à cliquer sur le bouton "inutile", j'espère te voir sur toutes mes autres interventions, au moins pendant ce temps, tu n'utilises pas tes avis constructifs pour pertinenter ce qui le mérite.) vu que j'ose critiquer le sacro-saint firefox…

    Dernier point: tu remarqueras que je ne fais pas que donner des propos en l'air, je détaille ce que j'ai sur une machine réelle, alors cesses, s'il te plaît, d'insinuer que je médit sans fondements ni preuves (tu sais, genre: "Ou c'est peut-être aussi… qu'elle n'existe pas tout simplement :-p").

    Tu aimes firefox? C'est ton droit, mais ça ne devrait pas t'empêcher de voir ses défauts.
    J'aime opera, mais je reconnait qu'il n'est pas parfait: bugs avec les proxy a mon taf, gestionnaire de DL largement améliorable, par exemple. Firefox lui est d'ailleurs supérieur sur les proxy de mon taf.

  • [^] # Re: Tiling ?

    Posté par  . En réponse à la dépêche Terminology 0.3. Évalué à 1.

    Ah oui, merci de l'info: http://www.nvidia.com/object/linux-display-amd64-302.17-driver.html

    Manifestement, c'est depuis le 15 juin 2012. Bizarre, le blob que j'ai installé chez moi il y a 2 mois ne semblait pas le supporter… faudra que j'enquête sur le problème.

  • [^] # Re: Pas de révision d'historique

    Posté par  . En réponse au journal Chiselapp ferme ses portes. Évalué à 0.

    le nombre de lignes de code n'est pas une super métrique

    Brut, non. Par contre… CCCC (superbe outil pour moi) donne quelques métriques liées au nombre de lignes qui sont très utiles: % de code commenté (bon, ça ne prend pas en compte le fait qu'un nom de fonction ou de variable explicite équivaut à 3 lignes de commentaires, bien sûr), lignes / fonction, lignes / classe…

    Tu n'a pas à te dévaloriser

    Je ne me dévalorise pas, c'est juste que je suis habitué à ce que mon code ne ressemble pas à celui des autres. Ca a commencé dès que j'ai vu à quoi ressemblait un prof de dev (moi auto-didacte qui avait donc mon propre style, lui qui me sortait des trucs genre "essaie d'avoir les mêmes noms que les autres, d'utiliser des int et pas des short…" et moi qui pensait "plutôt arrêter le dev". Je ne connaissais pas encore l'expression pisser du code… c'est ça qu'il enseignait.)

    Pour moi les grosses fonctions qui contiennent tout l'algo sont plus une preuve de code mal pensé qu'autre chose, vu que la taille d'une fonction est fréquemment proportionnelle aux nombre de choses qu'elle fait, alors qu'elle n'est censée en faire qu'une.
    D'ailleurs, me suis aperçu qu'a chaque fois que je fais un truc qui dépasse les 50 lignes, en dehors du gros switch des familles (que je hais en plus, mais pas toujours le choix) a terme je chope des bug ou je dois réutiliser une partie du gros bloc ailleurs… donc bon, au final je gagne mon temps.

    ta façon de penser est naturelle pour quelqu'un n'ayant pas pratiqué le TDD

    En tout cas, la dernière fois que j'ai essayé sur un de mes projets (un éditeur de texte en console), je n'en ai pas perçu les avantages. Il faut dire que ça m'a tellement soulé d'écrire des tests que j'ai arrêté au bout de 3 fonctionnalités.
    Je pense qu'il faudrait que je voie un projet réel qui utilise TDD pour me donner le déclic plus vite. Sinon tel que je me connais, je dirais que je finirai par l'avoir, mais dans quelques années :D

  • [^] # Re: Et ce n'est qu'un début!

    Posté par  . En réponse au journal Un billet d'avion dépendant du poids passager+bagages. Évalué à 3.

    Non, les amputés paieront moins cher: qui dit moins de membres, dit moins de poids et de volume :D

  • # Intéressant, mais...

    Posté par  . En réponse au journal La stratégie de Mozilla pour les jeux vidéo sur le Web ouvert. Évalué à 5. Dernière modification le 03 avril 2013 à 17:14.

    Du coup, ça veut aussi dire que "l'écriture" d'applications JS sera moins pénible, non? (De ce que j'entends de nombreux dev web, ce langage est horrible…)
    Ce sera peut-être pour moi une occasion de m'y mettre :D (ou de faire semblant pour le coup)

    Accessoirement, il existe des toolkit graphique exploitant opengl en C++, donc logiquement, une application les utilisant devrait être "portable" sur un navigateur assez aisément, non?

    D'autres questions que je me pose, plus orientées compatibilité entre langages:

    • Quelle(s) version(s) de C++ seront/sont supportées?
    • Si le C++ est supporté, c'est bien, mais qu'en est-il du C? J'imagine que Mozilla sait très bien que même si le C++ intègre un grand nombre des fonctionnalités de C, le comportement n'est pas nécessairement le même (exemple: ordre de passage des paramètres non spécifié par la norme en C++, contrairement au C)?!? Du coup, les gens venant du C vers le C++ ne risquent-ils pas de se trouver confrontés à des problèmes venant de leur habitude du C? (parce que bon, combien de développeurs ne font en fait que du C with classes… beaucoup trop!)

    Au passage, même si 50% de la vitesse du natif c'est déjà moins pire, c'est encore loin d'être la panacée…

  • # unvanquished: missions et ressources

    Posté par  . En réponse au journal Quelques actus vidéoludiques. Évalué à 5.

    Ca, c'est plutôt une excellente nouvelle, quand on vois à quel point les aliens sont difficiles à jouer…
    Va falloir aussi voir ce que donnent les IA, parce que quand j'y joue, je constate que la moitié des bot passe son temps à…. courir contre un mur!

    En tout cas, bien content que cet excellent jeu continue de vivre (de toute façon je le vois régulièrement avec aptitude update :D) et je suis curieux de voir cette histoire de ressource d'un peu plus près, parce que n'étant pas un grand joueur de trem, je me suis toujours un peu demandé comment le nombre de points à dépenser dans les structures était comptabilisé.
    En plus, ça fait qu'a chaque partie que j'ai eue l'occasion de jouer les dispositions des bases étaient à peu près identiques.
    Ce système de ressource va sûrement augmenter le nombre de points stratégiques et risque de changer radicalement le jeu, vers plus de stratégie encore, et ça, c'est bon!

    Qui sait, ce jeu va peut-être devenir mon favori à force :D

    Note: au sujet de la version alpha, il semble que le projet unvanquished compte rester en alpha tant qu'ils dépendent de ressources provenant de tremulous, ça n'est donc pas vraiment lié à l'état du code. Pour y avoir joué, je peux en tout cas affirmer que le jeu est léger (pas comme nexuiz quoi), stable, et ne manque pas de fonctionnalités, contrairement à l'appellation alpha.

  • [^] # prog par contrat

    Posté par  . En réponse au journal Chiselapp ferme ses portes. Évalué à 1.

    Si le langage en est capable, il peut tester une partie du contrat statiquement:

    Dans le cas de C++, langage que je connais le mieux, on peut par exemple utiliser le prototype pour dire que la méthode ne modifieras pas la classe, que tel paramètre est un paramètre d'entrée (passage par valeur ou en spécifiant const), d'entrée/sortie (passage de référence), ou juste de sortie (valeur de retour. Si on en veut plusieurs, on peut utiliser un tuple, mais perso je ne suis pas trop fan des tuple donc je préfère utiliser un paramètre normal avec une référence) et bien entendu, imposer le type.
    Mais il est évident que tu ne peux pas vérifier que x>0 à la compilation… (quoique, si x est calculable à la compilation, C++11 nous a offert quelques outils pour ça)

    En fait, je ne pense pas qu'il soit logique d'opposer les deux types de programmation: un contrat bien établi permet d'écrire des tests plus facilement, avec en plus la possibilité d'instrumenter le code en interne, ce qui peut rendre les bugs plus simples à reporter pour l'utilisateur.

    J'ai encore pas mal de mauvaises pratiques, héritées de mon auto apprentissage et des cours que j'ai eus (il faut dire ce qui est), donc j'avoue avoir beaucoup de mal à écrire de tests unitaires quand je bosse sur mes projets persos. Au boulot, vue la tronche de l'environnement que j'ai eu la "chance" d'utiliser, je n'ai pas vraiment essayé… (Déjà si on pouvait commencer par clarifier le workflow, et utiliser un vrai VCS, ce serait un net progrès… m'en fout, dans 2 mois je me casse)

    Après, comme je l'ai dis, je suis loin d'être expert dans le domaine de la prog par contrat, alors ma vision est peut-être très limitée. Le document qui m'a fait découvrir le concept est ici

  • [^] # Re: Tiling ?

    Posté par  . En réponse à la dépêche Terminology 0.3. Évalué à 0. Dernière modification le 03 avril 2013 à 15:40.

    Désolé, vue l'audience de ce site, j'ai oublié que tout le monde n'est pas obligé de savoir ce que sont les DP.

    Il s'agit d'un des modèles de conception (Design Pattern) du GoF (Gang of Four) qui sont en fait une liste des schémas que l'on rencontre pour ainsi dire presque tout le temps en prog.

    Je te conseille de jeter un oeil aux articles wikipedia à leur sujet, ne serait-ce que les introductions, histoire d'entrevoir le principe, puis la liste, ça permet d'avoir une vue globale, et quand tu es confronté ensuite à un problème tu vas te dire "tiens, et si…".
    Je parie même que tu en as déjà utilisés plusieurs sans le savoir en fait (si tu dev, bien sûr). Dans mon cas, ça a été le cas avec le composite en 1er (pour une lib template de gestionnaire de fenêtre, avec une implémentation SDL 1.2 et un début SFML 1.6, faudra que je m'y remette).

    En génie logiciel, un objet composite est un patron de conception (design pattern) structurel. Ce patron permet de concevoir une structure d'arbre, comme un arbre binaire en limitant à 2 le nombre de sous-éléments.

    Motivation
    En programmation objet, un objet composite est constitué d'un ou de plusieurs objets similaires (ayant des fonctionnalités similaires). L'idée est de manipuler un groupe d'objets de la même façon que s'il s'agissait d'un seul objet. Les objets ainsi regroupés doivent posséder des opérations communes, c'est-à-dire un "dénominateur commun".

    Quand l'utiliser
    Vous avez l'impression d'utiliser de multiples objets de la même façon, souvent avec des lignes de code identiques ou presque. Par exemple, lorsque la seule et unique différence entre deux méthodes est que l'une manipule un objet de type Carré, et l'autre un objet Cercle. Lorsque, pour le traitement considéré, la différenciation n'a pas besoin d'exister, il serait plus simple de considérer l'ensemble de ces objets comme homogène.

    (citations de wikipedia: http://fr.wikipedia.org/wiki/Objet_composite)

    Comme tu peux le voir, on est bien dans le cas du conteneur: un conteneur est une fenêtre spécialisée qui ne fait que contenir d'autres fenêtre (et donc, peut-être, des conteneurs).
    J'adore ce DP au point d'avoir fini par coder un conteneur template en C++.
    (Je doute que quelqu'un d'autre que moi s'en serve, mais au cas ou, j'ai repiqué la licence de boost. De toute façon, il est encore incomplet: il manque une bonne batterie de tests et de la doc.)