Bozo_le_clown a écrit 1600 commentaires

  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 2.

    Sauf que tu inverses le pb, si je l'avais bien compris

    On a une classe List de base.
    On décide de la sous-classer BoundedList avec cette fameuse méthode getMinMax.
    Pour l'optimiser on rajoute ce fameux booléen et min et max dans la sous-classe.Je n'accède pas à l'état de la classe mère, je l'étend en lui rajoutant des champs .. privés bien entendu

    Pour chaque méthode de modification de la classe mère List, je suis bien obligé de surcharger la méthode dans la classe fille en appelant la méthode mère et en repositionnant mon booléen à faux.

    Si le contrat de List s'enrichit avec une nouvelle méthode de modification je suis obligé de la surcharger
    Et là ou c'est grave c'est grave c'est que je risque d'oublier de le faire lors de ma prochaine mise à jour de la lib qui contient le nouveau contrat

    Ou alors j'ai mal saisi la problématique
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 1.


    (et Ruby et Python sont beaucoup plus "objet" que Java)


    J'affectionne beaucoup python mais faut rien exagérer.
    Le duck typing n'est pas ce qu'on appelle de l'objet. C'est un truc batard , pratique, mais qui ne correspond en rien à la POO et à la notion de classification.

    Je ne parlerai même pas de l'encapsulation qui n'est pas permise puisqu'on n'a pas de vraie notion de champ privé et encore moins de protected. Et après on t'expliquera que ca n'est pas nécessaire un peu comme les javaistes t'expliquent comment te passer du retour de valeurs multiples.

    Je ne m'aventurerai pas non plus sur le terrain du multi-héritage en comparant son modèle à celui du C++ qui adresse presque tous les pbs lié à ce modèle (le membre partagé, ....).

    Sans parler de l'autre chose qui n'a rien a voir avec la POO mais qui reste désagréable et sur lequel on n'a pas mal trollé ici.
    Tu sais cet acronyme en 3 lettres qui G.I.L ne sera jamais remis en question car ca casserai tout ce bel édifice.
    Là aussi on on nous explique que ca sert à rien

    Les langages pur objet ce sont en général Smalltalk peut-être Ruby, ceux la même qui sont réputés pour leur piètre performances.
    Java, C++ ont fait le choix du compromis entre performance et purété, par exemple en introduisant des type primitifs non purement objet.

    Bref, le langage miracle n'existe pas.
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 2.

    Oui la composition c'est mieux mais ce que j'expliquais c'est que si dès le début tu as choisis de retourner une HashTable tu n'as pas d'autres solutions que l'héritage. Raison de plus pour créer un type de retour dès le départ ou d'implémenter une interface avec getMin et getMax
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 2.

    Tu as certes raison.

    Mais lorsque tu crées un toolbox ou framework qui est utilisé par des clients autres que toi, ils préfèrent nettement que toi tu aies visé l'excellence plutôt qu'être obligé de refactorer eux, sinon ils vont voir ailleurs.
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 2.

    Je connais pas grand chose au Lisp mais en gros ca s'apparente à une table de hachage comme une pratique courante en Python

    Tu peux adopter avec Java aussi cette solution de facilité même si ce n'est pas supporté par la syntaxe du langage, tout les retours de paramètres multiples ne sont rien d'autre que des tuples en Python
    Juste qu'on t'explique que dans le monde objet on préférera utiliser un vrai type de données, une classe en guise de retour qui supporte le contrat et rien que le contrat. On garantit l'encapsulation dès le départ.
    Si tes besoins évoluent par la suite,
    genre je rajoute, un troisième champ eh ben c'est vrai avec un Hashmap .... l'ancien code appelant marche toujours.

    Maintenant je veux pouvoir pouvoir rajouter des comportement à ce résultat comme par exemple le rendre sérialisable. .... et puis on s'aperçoit que finalement la table de hachage c'est pas si bien que ca parce que ca rame parce qu'il manque des trucs ou simplement parce tien un nouveau type qui fait tout ca existe dans le langage
    Les sets python sont bien utiles mais n'existaient pas dasn les premières versions
    http://docs.python.org/library/sets.html
    soit on surcharge alors les Hash qui devient un vrai type.
    Avec Python tu vas commencer a surcharger les built'in types, ...
    Mais dès le départ tu as fait un choix sur la structure de donnée , peu importe que cette structure fasse partie intégrante du langage ou non.
    Or mon contrat disait que je voulais getMin, GetMax,GetMinMax et pas getKeys, get Values, getDict...
    Manque de bol, partout dans mon code appelant je les ai utilisés et maintenant que j'ai choisi d'utiliser des Sets, je suis marron.
    En plus ma lib a été diffusée et j'oblige également tous mes clients à s'aligner.

    Je suis d'accord, est-ce que le jeu en vaut la chandelle , tout est affaire de compromis entre résultat à court terme et évolutivité.
    Je suis d'accord que, qui peut le plus peut le moins et qu'un langage plus souple n'empêche pas la rigueur.
    Mais il ne faut pas sacrifier les bonnes pratiques.
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 1.


    typedef int min;
    c'est bon là ?


    Non mais c'est pas grave, fais toi plaisir
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 2.

  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 2.

    Ca on le sait mais 2 int ca ne fait pas un type abstrait de données
  • [^] # Re: Explicit is better than implicit.

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 3.

    J'ai lu Larry Wall et ses délires sur la bénédiction des objet noyés au milieux d'infâmes hack du runtime perl parce que mêmes les analyseurs syntaxiques perdent les pédales tellement il ya a de signes cabbalistiques contradictoires (mon emacs sous Solaris ne s'en est jamais remis, obligé d'apprendre ce p%^# de Vi ; ).

    Je préfère nettement me taper le tuto de Guido en 2h en me disant que je sais presque tout faire avec ca et passer le reste du temps gagné à dévorer un roman de SF que me taper 20 h sur les Perl O'Reilly.

    Sinon hormis ton cas d'ecole, ceux auxquels j'ai été confronté ressemblent plus à ca:

    s/^\^Q //;
    $longueur_ligne = length($_);
    $caractere_fin_ligne = $longueur_ligne ? ord(substr($_,$longueur_ligne-1,1)) : 0;
    ....
    my @c= ;
    close Fi;
    map s/[\r\n]+/\n/g, @c;
    open (Fi,">$f") or die;
    print Fi @c;


    Ce n'est pas le plus complexe mais de là à parler de langage naturel.
    Heureusement que j'ai insisté pour que le gars qui a pondu ca donne de noms de variables explicites et commente un peu parce le decryptage permanent avec le perlref sous la main au bout de 200 lignes ca devient un peu lassant.
    Et je te passe sur les effets de bord
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 4.

    Je suis désolé mais en quoi ce qui est décrit par Crev ici
    http://linuxfr.org/comments/1000473.html#1000473 sous-entend qu'il ne va pas reparcourir le tableau en dynamique à chaque fois qu'il appelle getMinMax.

    En java tu peux créer une classe interne MinMax adapté
    comme ici
    http://linuxfr.org/comments/1000492.html#1000492

    C'est peut -être plus lourd mais par la suite tu voudra aussi l'écart type, la variance et ta belle solution de multi-liste t'obligera à un moment à tout refactoriser ton code appelant.
    Par la suite on peut se créer une vraie classe qui supporte ce contrat sans tout péter.
    L'autre solution est que ta classe supporte ce contrat via un interface.
    Si j'ai défini le bon interface avec getMin, getMax ou une classe dédié peu importe que par la suite je mette en cache ou non un booléen, que je place un Observer puisque c'est encapsulé.
    En plus il n'y a pas de surcharge de toutes les méthodes comme la solution proposée plus haut ici.

    Toi avec tes 2 variables en sortie non typée faudra que tu pètes tout le code appelant ou que tu gardes getMinMax par rétrocompatibilité ad vitam eternam mais c'est vrai que quand on est à la bourre c'est plus rapide d'aller au plus simple.

    Bref tout ca se discute.
    Java permet moins de faire de conneries au prix d'une certaine lourdeur.
    Les langages ala pyhton &co permettent plus de souplesse mais parfois au détriment de l'évolutivité.
    Là où c'est paradoxal , c'est que c'est justement des langages qui devraient être réservés à des programmeurs expérimentés qui séduisent aussi les néophytes.
  • [^] # Re: Explicit is better than implicit.

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 2.

    Ce qui me pose pb c'est pas les regexp en soi c'est les regexps combinées à l'interpolation de variable à la Perl.
    Avec python tout va très bien, merci.
  • [^] # Re: Explicit is better than implicit.

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 5.


    Donc il ne faut pas utiliser python non plus !

    Ben si, puisque c'est ce qui ressemble le plus à un langage ....naturel:
    L'anglais.

    Bon je suis de la vieille école, mais lorsque j'ai appris l'informatique on avait l'habitude d'écrire un truc avant de coder comme des fous. Ca s'appelait un algorithme et après on le traduisait en Pascal.

    J'avoue que lorsque je lis du code python, j'ai l'impression de lire mes bons vieux algos procéduraux.
    C'est grave docteur ?


    Mais c'est bien ça le problème, on peut aussi appeler ça un nivellement par le bas. Et non, un langage ça _doit_ s'apprendre.
    Il faut savoir perdre du temps (à apprendre) pour devenir plus performant, pour faire des choses plus puissantes et donc gagner du temps sur du moyen terme...

    Non ce qu'il faut apprendre c'est des concepts, des contsructions des paradigmes et pouvoir les retrouver dans un ou des langages.
    Qu'est qu'un "choix de" une boucle "tant que", une condition
    Qu'est-ce qu'une fonction, une procédure, un objet, une classe une fermeture lexical, une clause, un aspect...
    Mais surtout comment bien utiliser ces concepts.

    Quand utiliser le polymorphisme, quand utiliser l'héritage au lieu d'une composition, un singleton ou tout autre design pattern.
    Savoir qu'utiliser une table de mappage va booster mes perfs pour la recherche d'un info plutôt que d'itérer sur une liste surtout si cette liste est beaucoup accédée en lecture et peu en écriture.

    Par contre passer mon temps à me demander quand le dernier contexte a été modifié ou où est-ce que j'ai pu oublier cette putain d'apostrophe qui me pète ma regexp, j'avoue que ca me fait moyennement triper.
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 8.

    On n'a pas besoin de te moinsser.

    Il nous suffit juste de d'intégrer le fait que tu considères Lisaac comme le summum de l'esthétisme et de la bonne conception et on te pardonne. On en arrive même à ne pas être étonné que tu t'extasies devant du Perl ;-)
  • [^] # Re: javascript

    Posté par  . En réponse au journal Perl, Javouille, Lisaac|(Ruby|SmallTalk|etc..). Évalué à 3.

    Ca tombe bien une table de hachage sont des structures intégrées au langages dynamiques.
    Donc un gars qui veut faire gaffe à l'ordre des arguments retournés utilisera le même chose que java en plus court et comme c'est le cas 9 fois sur 10 il va gagner beaucoup de temps.

    Donc le pb n'est pas le langage mais bien le programmeur.
  • [^] # Re: Wikipedia "en"

    Posté par  . En réponse au journal 3/4 de million d'articles pour wikipedia en français. Évalué à 1.

    ou simplement le fait qu'une référence plus approfondie leur fait de l'ombre
  • [^] # Re: C'est en faisant la guerre... qu'on a le plus de chance de mourrir

    Posté par  . En réponse au journal Ubuntu dans le New York Times. Évalué à 2.

    Enlève ton masque , Eric Besson !
  • [^] # Re: vendredi

    Posté par  . En réponse au journal Ubuntu dans le New York Times. Évalué à 4.

    En tout cas ca rame !
    Hypothèse 1: Launchpad est linuxfrisé
    Hypothèse 2: Il sont en train d'installer la fibre optique
    Hypothèse 3: Guido est un visionnaire à propos du GIL
    ...
  • [^] # Re: vendredi

    Posté par  . En réponse au journal Ubuntu dans le New York Times. Évalué à 9.

    Et s'il avait simplement voulu faire de l'humour de libriste ?

    Y'a que Linus qui a le droit d'être satirique , c'est vrai.
    Ton aversion envers MS n'altérerait pas quelque peu ton jugement ?


    En tout cas, il aurait pu se forcer un peu pour le bug no 6
    http://linuxfr.org/~zeb/27756.html
  • # Moi aussi je joue!

    Posté par  . En réponse au journal Ras-le-bol des utilisateurs de logiciels de tout bord !!!. Évalué à 7.

    Les utilisateurs de logiciels propriétaires sont comme les électeurs ! Ils ne maitrisent pas les vrais enjeux !
    Alors que les utilisateurs de logiciels libres sont comme les élus, ils savent mieux que leurs électeurs ce qui est bon pour eux.
  • [^] # Re: S'ils avaient voulu il y a wxWidgets qui est en LGPL

    Posté par  . En réponse à la dépêche Qt 4.5 sera sous licence LGPL 2.1. Évalué à 6.

    En particulier un des reproches fait à wxWidgets est son mécanisme de callback qui s'apparente aux MFC en face du mécanisme de signaux/slot de Qt.

    Le leader du toolkit FOX en parle mieux que moi
    http://www.fox-toolkit.org/faq.html#CALLBACKS

    Il y a aussi le fait que wxWidget s'appuie(yait) pas mal sur les toolkits natifs au lieu de s'appuyer que sur un noyau de primitives graphiques portées pour chaque plateforme.
    Ceci a l'inconvénient d'avoir un aspect et un comportement moins homogène pour les widgets réutilisés et pas réécrits. Et la création d'un nouveau widget pas commun à plusieurs plateformes nécessite une réécriture pour chaque plateforme au lieu de s'appuyer sur les primitives de base.

    Je crois que ca a changé avec les dernières versions mais ces erreurs de jeunesse pèsent et laissent une impression d'API héteroclite
  • [^] # Re: Qt4 dans OpenOffice.org

    Posté par  . En réponse à la dépêche Qt 4.5 sera sous licence LGPL 2.1. Évalué à 2.

    Il me semblait qu'un certain nombre de composant d'OO étaient ou devaient être en Java, qu'en est-il ?

    Au fait Qt Jambi va t'il lui aussi être distribué sous LGPL ?
    Ca va peut-être booster son adoption sur Java face à l'ugly SWT et au heavy Swing
  • [^] # Re: Ha zut...

    Posté par  . En réponse à la dépêche Qt 4.5 sera sous licence LGPL 2.1. Évalué à 4.

    Oui mais le C++ c'est pas du vrai C.
  • [^] # Re: J'ai trouvé le MISC excellent.

    Posté par  . En réponse à la dépêche Revue de presse - janvier 2009. Évalué à 4.

    oui, en temps de crise beaucoup souhaiteraient se recycler dans la plomberie mais le secteur est quasi monopolisé par les polonais
  • [^] # Re: Re:

    Posté par  . En réponse au journal Qt LGPL!. Évalué à 5.

    Oui mais avec le MMF (Meta Monster Facility) tu diposes d'une infrastructure solide afin d emettre en oeuvre des transformations M2M -(Monster 2 Monster) et M2T (Monster 2 Troll).
    Le troll est alors replacé au coeur du processus de postage sur DLFP et ta productivité s'en trouve améliorée puisque les tâches répétitives de moulage sont économisées.
  • [^] # Re: Un ministre de moins, c'est toujours bon à prendre.

    Posté par  . En réponse au journal Le portrait du probable secrétaire d'état à l'économie numérique.. Évalué à 4.


    Que Sarkozy se débarrasse d'un ministère inutile et reverse l'argent économisé à l'APRIL.


    En même temps, si c'est pour qu'il prenne les choses en main lui-même, j'aime autant que ca reste comme ça

    http://www.numerama.com/magazine/11685-Sarkozy-veut-aller-au(...)