Nicolas Boulay a écrit 16043 commentaires

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 1.

    C'est vrai qu'en prototype, on peut modifier les pères à la volé, ce que permet ton dernier exemple.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    Si j'ai bien compris go, le type de go est donné par la présence ou non des méthodes. Il n'y a pas d'héritage dans le sens typage, mais "récupération de code". Ce qui peut revenir au même avec typage de structure.

    Par contre, je n'ai pas compris le lien avec les prototypes.

    "La première sécurité est la liberté"

  • [^] # Re: Hmm

    Posté par  (site web personnel) . En réponse au journal La fin du double Irish ?... Non, je déconne !. Évalué à 7.

    Ta vision est un peu simpliste. Les pays qui ont du faire des efforts suite à la crise de la dette, ont bien vu l'effet récessif des mesures d'économies faites par l'état.

    Mettre à zéro la déficit des états, enlève une grosse masse d'argent de l'économie locale. Ce qui se traduit forcément par des problèmes économiques. Le problème est que le système actuel à besoin des emprunts d'état pour fonctionner. Il faut re-récupérer l'argent, là où il est (dans les années 50, les derniers tranches d'IR était à 95% au US, et en UK).

    Il faut changer les lois pour qu'ils soient impossible que les règles d'imposition d'un état puisse tuer l’impôt d'un autre ! C'est l'activité qui doit être taxé, et non les entités juridiques.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    C'est plus simple que

    let square x = x * x
    let twice x f = (f x) + (f x)
    ?

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    Tu peux parfaitement faire des trucs contre intuitifs.

    Oui, mais + est toujours un plus entier, sauf redéfinition.

    Si tu veux changer ça, avoir à la fois du polymorphisme, de l'inférence de type et de l'héritage, à priori, c'est impossible. On ne peut avoir que 2 des 3. Je serais curieux de voir un langage sans héritage, pour voir.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    Qu'est-ce qui se passe si tu joues avec les classes mères ?

    Je veux dire si tu définit un trait avec une classe mère et que tu utilises des objets fils dans le ADD, il se passe quoi ? Si tu utilises 2 trait un pour la classe mère, l'autre pour le fils, etc…

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    J'ai du mal avec ton exemple. Add est commutatif, on dirait que ta définition ne l'est pas. Dans "3.0 + 1", tu fais jouer l'addition flottante ou entière ? Est-ce qu'une addition avec un entier et un flottant peut exister ? Est-ce que Add est polymorphique ? Qu'est-ce qui se passe si tu joues avec les classes mères ?

    Je sais pas trop ce qu'ocaml fait dans ce cas, mais là la méthode .to_u8() renvoit juste une option.

    Ocaml renvoit une exception.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    Le problème est qu'il voulait simplifier l'inférence de type avec la structure du langage. Si tu rajoute du polymorphisme, l'inférence ne marche plus.

    on s'est décider à fournir l'operator overloading pour OCaml aprés 10 ans de refus ( comme pour le threading d'ailleurs ).

    Je ne savais pas qu'il refusais jusqu'à présent.

    De manière général, quand un langage généraliste reste un langage de niche comme OCaml…..C'est qu'il y a des raisons à ça…

    Sans doute, mais de la même façon, je n'arrive pas à comprendre comment Java peut être aussi populaire.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 3.

    Je suis rassuré, Rust fait moins pire que C++.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    "le tout explicit et simple" était une connerie.

    Je ne suis pas d'accord. Le +. et *. est chiant, mais en ouvrant le bon module (open float), cela se corrige.

    "La première sécurité est la liberté"

  • [^] # Re: Hmm

    Posté par  (site web personnel) . En réponse au journal La fin du double Irish ?... Non, je déconne !. Évalué à 10.

    Rien que pour la France, les chiffres annoncés sont entre 50 et 100G€/an. Le budget de l'état français tourne autour de 300G€/an.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 9.

    On parle d'une addition et d'une multiplication, tu as vu la tronche de ton code ? Qui peut comprendre en 10s ce qu'il fait exactement ?

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 3. Dernière modification le 15 octobre 2014 à 10:13.

    Tu compares int_of_float avec ça ?

        let x : u8 = 3u.to_u8().expect("Integer Overflow");
    
        let x : u8 = 3u as u8;
    

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    On pourrait aussi regretter que Rust wrap en cas d’overflow (et va donc silencieusement produire de mauvais résultats) au lieu de trap ou un truc du genre.

    Ce qui est idiot en plus, c'est que ce si tu fais du code qui utilise cette propriété (genre filtre numérique), l'optimisateur se croit avec des entiers qui ne wrapent pas, et te détruit ton code.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    Il y a quand même des cas ou cela marche, on dirait :

    We find most cases of tail _recursion_ convert reasonably well to loops, and most cases of non-recursive tail calls encode state machines that convert reasonably well to loops wrapped around enums. Neither of these are _quite_ as pretty as the tail-call-using variants, but they do work and are "as fast"*, as well as idiomatic for C and C++ programmers (who are our primary audience).

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    J'avoue qu'avoir enfin un remplacement pour le C, est vraiment bienvenue. Rajouter l'équivalent des type somme, les fonctions de 1er ordres sont vraiment bien. Il est aussi nécessaire de mieux gérer la mémoire.

    Mais j'ai été déçu d'apprendre qu'ils ne pourront jamais de faire de transformation automatique appel récursif vers une boucle, ce qui est la base quand on veut avoir une base de code fonctionnel. Si le langage devient aussi complexe et subtil que C++, pourquoi ne pas rester à C++ ?

    Bref, je suis un peu déçu.

    "La première sécurité est la liberté"

  • [^] # Re: Power8 chez OVH

    Posté par  (site web personnel) . En réponse au journal Le Power8 d'IBM pourra t-il s'imposer dans le monde des entreprises ?. Évalué à 2.

    mais par exemple compiler un gros projet ça risque de stresser plus ton hdd/ssd que ton processeur au final,

    Ce n'est pas une compilation Java non plus (spécial dédicace à Eclipse), si le PC a assez de RAM, j'imagine que la totalité des sources finira dans en cache très rapidement.

    Je trouve que c'est quand même important d'en être conscient quand on écrit du soft pour la performance.

    Oui, si tu peux te permettre d'écrire du code spécifique pour une machine, et que tu ne réutilises pas de code, ou que tu ne veux pas écrire du code "portable".

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 6.

    J'imagine bien que la syntaxe permet des subtilités. Mais je croyais que le C++ avait calmé les concepteurs concernant les subtilités des langages. Cela peut devenir une énorme source d'erreur.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 2.

    Ça tombe bien c'est l'un des gros intérêt de rust de gérer la mémoire de manière fine et haut niveau.

    Je parlais des binding C. j'ai vu le problème en ocaml et en Perl, par exemple.

    "La première sécurité est la liberté"

  • [^] # Re: simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à 0. Dernière modification le 13 octobre 2014 à 16:29.

    Quitte à refaire un langage, pourquoi créer une séparation artificielle des concepts quand il n'y en a pas besoin ? Les closure en ocaml sont détecté quand ils sont à l'intérieur d'une autre fonction, pourquoi faire 2 syntaxes différentes ?

    Ensuite pour le comparer à Ocaml, je doute que tu fasse une bibliothèque qui s'interface avec du C aussi facilement en Ocaml qu'avec rust (non, on ne compare pas 2 langages sur une exemple de 5 lignes…).

    J'ai regarder rapidement, et cela semble être la même chose qu'en ocaml avec une déclaration "externe". La complexité est généralement dans l'accès aux données structurés et dans la gestion de la mémoire, pas vraiment dans les appelles de fonction avec des paramètres scalaires.

    "La première sécurité est la liberté"

  • # simple ?

    Posté par  (site web personnel) . En réponse au journal Rust en version 0.12. Évalué à -5.

    Pourquoi faire aussi complexe ?
    ```
    fn twice(x: int, f: |int| -> int) -> int {
    f(x) + f(x)
    }

    fn main() {
    let square = |x: int| { x * x };

    twice(5i, square); // evaluates to 50
    

    }
    ```En ocaml, on peut l'écrire :

    let twice x f = (f x) + (f x)

    let _ =
    let square x = x *x in
    twice 5 square

    Pourquoi créer un nouveau langage pour faire aussi verbeux et compliquer qu'avant ?

    "La première sécurité est la liberté"

  • [^] # Re: Power8 chez OVH

    Posté par  (site web personnel) . En réponse au journal Le Power8 d'IBM pourra t-il s'imposer dans le monde des entreprises ?. Évalué à 4.

    Je peux juste dire que les micro benchs ont rarement un intérêt, car ils sont encore plus difficile à interpréter que les benchs applicatifs.

    J'imagine qu'un "make -j" d'un noyau Linux particuliers, donnera une bonne idée de la vitesse des CPU, et du système d'IO sur des données petites.

    Des tests utilisant des compresseurs video (ffmpeg, mencoder) ou audio (lame) peuvent servir pour les calculs lourd (entiers ou flottant selon les options).

    7zip/gzip peuvent servir pour le bench de calcul d'entier.

    Je crois qu'il existe des clients pour exciter des serveurs web et mesurer les temps de réponse, il doit donc être possible d'installer des applications web commune, et comparer ses temps, avec un PC classique.

    Utiliser des vrais applications permet aussi de mesurer le degré d'adaptation/d’adaptabilité des softs avec le nouveau cpu. Si le cpu a plein de particularités pour aller vite, mais qu'aucun soft ne les gère, un micro bench dira que le cpu est le plus rapide, mais il n'aura aucun intérêt pratique. A l'époque de l'arrivé 64 bit, les soft de compression vidéo n'utilisant pas de code assembleur était forcément plus lent que leur version 32 bit optimisé à la main.

    "La première sécurité est la liberté"

  • [^] # Re: super soft !

    Posté par  (site web personnel) . En réponse à la dépêche Une calculatrice scientifique libre sous Linux (materiel). Évalué à 2.

    Je serais curieux de voir les vrai cas d'usage. J'avoue que depuis que j'ai "dc -l" sous la main (ou même les calculs fait par google), j'ai du mal à voir l’intérêt d'une calculatrice.

    "La première sécurité est la liberté"

  • [^] # Re: super soft !

    Posté par  (site web personnel) . En réponse à la dépêche Une calculatrice scientifique libre sous Linux (materiel). Évalué à 2.

    Une liseuse avec un bon système tactile devrait faire une calculatrice efficace.

    "La première sécurité est la liberté"

  • [^] # Re: Benchmark

    Posté par  (site web personnel) . En réponse au journal Veuillez instancier ce journal avant de le lire. Évalué à -1.

    Cela évite d'utiliser des pointeurs :)

    "La première sécurité est la liberté"