Nicolas Boulay a écrit 16043 commentaires

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Pour information, Lisaac a été créé par un thésard du créateur de smarteffel. La lib de Lisaac a été reprise de smarteffel.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Les assertion attrapent les erreurs dynamiquement. Les contrats sont des conditions sur l'état des objets. C'est vérifier à l'exécution en mode debug. Le sain graal serait de pouvoir les vérifier automatiquement.

    Le compilo attrape les "call sur nul" statiquement, sans utiliser de contrat.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 3.


    - Tu va voir ta source et tu lui demande de bon arguments histoire de défendre son point de vue ;
    - Tu va faire un tour sur le net (et pas que wikipedia) et tu vois que en effet plein de gens tout à fait respectables pensent le contraire, et tu admet ton erreur ;
    - Tu refuse d'admettre que tu ais pus avoir tord mais tu as la flemme de demander au gourou des arguments, et dans ce cas la, vu qu'on est pas vendredi, tu fait le mort.


    J'ai répondu un peu coté, j'attendais les vrais arguments mais la personne en question répond peu au mail. Et c'est argument était faible (en gros, c'est que javascript n'est pas été conçu pour être compilé). Ensuite concernant faire un tour sur le web, tu tombes sur la page wikipedia. Et souvent sur des très trucs pointus, c'est pas la joie.

    Et j'ai fait un peu le mort dégouté par ce qui intéresse les gens : polémiquer. Peut être que tu as rater d'autres news/journal mais c'est assez systématique, typiquement de la part de Timaniac qui essaye de démontrer par A+B que Lisaac ne sert à rien. Il essaye de le démontrer par tout les moyens, ils insistent sur la syntaxe ou des choix téchnique qui ne sont que des choix. Ils ne sont pas moins bon, ils sont autres : à quoi sert de faire comme tout le monde ?

    Alors oui, on essaye de faire de la pub. Un nouveau langage, c'est dur à lancer, à avoir une taille critique. Alors quand on a un beau truc, qui se fait critiquer systématiquement sur la tronche du "if", c'est gavant. D'où mes réactions.

    Le "gourou" communique peu. C'est pas son truc. Alors on le fait à sa place mais on est pas chercheur en labo. On a des boulots. Moi, je suis dans l'informatique bas niveau avec un back ground en microelec. Je suis loin des langages (même si ma boite en produit un).


    Ici encore : la page wikipedia sur le sujet, elle même un peu contredite par la page qui décrit les langage à prototype de quelle contradiction parle tu ? J'ai pas lu en détails, mais je ne vois pas vraiment de contradictions entre les deux.


    Cela a pourtant été pointer par d'autre, je pensais au message de mathieu ici :
    http://linuxfr.org/comments/1087357.html#1087357

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Cette découpe n'existait que pour des raisons des capacités d 'un compilo sur des machines des années 80. Depuis, on a un peu plus de patates sous le pieds.

    Le compilo Lisaac se compile en quelques seconde sur un atom (50kloc ?). C'est gcc qui rame ensuite quelques minutes.

    - les gars, vous compiler toujours tout.

    Oui, et c'est pas si lent.

    - si vous devez compiler pour tester, vous compilerez tout.


    Oui mais les bugs sont attrapé par le compilo en majorité. Une grosse parti de la compile pour être mis en cache.

    L'avenir c'est le test statique par le compilo, pas le test. Cela ne passe pas à l'échelle.


    - si vous devez compiler pour débugguer, vous compilerez tout.


    Oui, c'est sans doute le plus chiant. Le débug, en ligne, est aussi le degré zéro de la validation, même si on n'a pas encore le choix.


    - si vous devez proposer des modules interchangeable d'un point de vue déploiement, vous n'allez jamais le faire.


    Si en plugin. Ensuite, j'imagine que niveau performance, cela sera beaucoup plus intéressant de distribuer des binaires complets différents. Et plus l'appli est grosse et plus cela sera intéressant par la magie de la compilation global.


    - si vous voulez distribuer des bibliothèques sous forme binaires, vous n'allez jamais le faire.


    Oui, sauf sous forme de plugin. J'imagine que l'on pourrait faire une sorte de paquet prédigéré pour accélérer la compilation et la distribution, faire cela juste pour l'obfuscation, c'est un peu naze surtout si il y a beaucoup d'introspection dans le langage.

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

  • [^] # Re: Intel Marketing

    Posté par  (site web personnel) . En réponse à la dépêche Intel présente un prototype de processeur x86 octatétracontacœur. Évalué à 2.

    Cool. Dans les omap, il n'y a pas de cohérence, donc pour causer entre le dsp et le cpu, c'est "un peu lent"...

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

  • [^] # Re: Les grosses copies de fichiers sous Linux

    Posté par  (site web personnel) . En réponse à la dépêche Nouvelle version 2.6.32 du noyau Linux. Évalué à 2.

    Tu es peut-être en ext4 ?

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

  • [^] # Re: cohérence de cache<

    Posté par  (site web personnel) . En réponse à la dépêche Intel présente un prototype de processeur x86 octatétracontacœur. Évalué à 5.

    L'intérêt est aussi dans le parallélisme. Tous les GPU fonctionnent comme ça.

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

  • [^] # Re: Intel Marketing

    Posté par  (site web personnel) . En réponse à la dépêche Intel présente un prototype de processeur x86 octatétracontacœur. Évalué à 2.

    Est-ce que tu es sûr que les Tile ont une cohérence mémoire ? Dans un soc habituel il n'y en a pas, et c'est assez horrible à gérer. C'est un défi en soi.

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

  • [^] # Re: et le kernel dans tout ça ??

    Posté par  (site web personnel) . En réponse à la dépêche Intel présente un prototype de processeur x86 octatétracontacœur. Évalué à 3.

    Quand on voit comment est fait les GPU, cela ressemble un peu à ça : une cohereance mémoire minimum controler par logiciel.

    Quand on voit Fermi de Nvidia, c'est en gros un cpu qui gère 32 threads en même temps avec 32 unité de calcul !

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

  • [^] # Re: et le kernel dans tout ça ??

    Posté par  (site web personnel) . En réponse à la dépêche Intel présente un prototype de processeur x86 octatétracontacœur. Évalué à 2.

    Que passer de 100 cores à 100 000 000, cela pose les mêmes problèmes qui existe peu à 4 coeurs. En gros, linux maintient un maximum de structure local à chaque coeur pour éviter tout transfert de mémoire entre coeur.

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

  • [^] # Re: et le kernel dans tout ça ??

    Posté par  (site web personnel) . En réponse à la dépêche Intel présente un prototype de processeur x86 octatétracontacœur. Évalué à 6.

    On peut aussi préciser qu'il tourne avec quelques milliers de processeurs.

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

  • [^] # Re: Utile aussi pour la virtualisation

    Posté par  (site web personnel) . En réponse à la dépêche Intel présente un prototype de processeur x86 octatétracontacœur. Évalué à 5.

    Donc l'idée du nouveau noyau linux qui partage les pages de données identiques, est une bonne idée ?

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

  • [^] # Re: Les grosses copies de fichiers sous Linux

    Posté par  (site web personnel) . En réponse à la dépêche Nouvelle version 2.6.32 du noyau Linux. Évalué à 1.

    A une époque cela pouvait venir d'un contrôleur disque qui n'utilisait pas le DMA. Normalement, Linux s'est beaucoup améliorer la dessus.

    Si tu as un noyau récent et qu'une commande du style mets ton système à genoux, il y a un gros souccis quelques part.
    $ dd if=/dev/zero of=/dev/null bs=1024k

    C'est possible aussi que tu ais un setting pour serveur qui enlève la préemption du kernel pour gagner en bande passante ce que tu perds en basse latence.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    "on modularise le code avec complétion séparée".

    On ne le fera jamais. Cela ne sert à rien. On rend possible de faire un .o mais le but n'est pas d'en lier plusieurs mais sois de faire des plugin soit de se lier à du code autre.

    On aura sans doute une découpe vertical, et non horizontal comme le C. Il faut juste être sûr de passer à l'échelle, le problème sera sans doute GCC. Et ensuite, l'interface entre module sera traité comme les IO d'un programme complet, donc toutes les détections fonctionnent pareil.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Avec un langage qui propose des assertions par contrat on peut éviter la plupart de ces "call sur null".

    Tu es sûr que tu as compris de quoi tu parlais ?


    Pourquoi pas, je suppose donc que changer de parent nécessite tout de même de conserver un certain héritage en commun sinon c'est dangereux non ? (en l'occurence la clef USB reste un port USB)


    Non, ce n'est jamais dangereux. Si tu fais n'importe quoi, cela ne compile pas. Lisaac est strictement typé.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.


    Analyse qui pert une grande partie de son score dès qu'on modularise le code avec compilation séparée. Du bon boulot mais qui encourage à des pratiques inverses des pratiques conseillées traditionnellement en génie logiciel.


    Tu confonds modularisation du code et compilation séparé. L'un n'entraine pas forcément l'autre.

    Idem : comment le garanties-tu en cas de compilation séparée ?

    On ne fait pas de compilation séparé pour l'instant. J'imagine que cela fonctionnera avec des tests aux interfaces... comme pour la compilation global...

    Mais j'imagine que tu préfères gérer une exception au runtime.

    Tu peux montrer un exemple de code où c'est pertinent ?

    Un port USB qui devient une imprimante ou une clef usb, un bitmap qui change selon l'afficheur (8 16 24 bits).

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Y dit qui voit pas le rapport. Votre langage part du principe que les types sont en majuscule par soucis de "clareté". Bah pour la clareté on a inventé la coloration syntaxique. Nettement plus élégant que les majuscules.

    Il faut vraiment tout t'expliquer ? Combien d'erreur pour simplement un mix minuscule/majuscule?

    Sinon, le fait de faire plaisir au compilo permet plein de chose que veut l'utilisateur : avoir un code juste le plus rapidement possible et le binaire le plus performant possible.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Un langage moderne part du principe que y'a un éditeur spécialisé avec coloration syntaxique...

    Tu m'expliquera comment une coloration syntaxique corrige une faute de syntaxe.


    D'accord sauf pour la difficulté à lire, puisque c'est justement l'objectif : simplifier la lecture par un noobs avec une syntaxe familière.


    Perl et Ocaml propose beaucoup de "simplification" par sucre syntaxique. C'est cool pour écrire mais dingue pour relire si tu connais pas l'astuce en question.

    Concernant la syntaxe, c'est tellement un avantage pour le compilo, qu'il y a peu de chance qu'elle bouge.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Je dis juste que c'est pas une question de sacrifice de pureté qu'il faut pour rendre le truc intéressant.

    C'est le fait qu'il soit plus utilisé, qu'il est une lib plus grosse, que le code soit plus plus stable.

    Je ne sais pas tes critères précis, mais c'est un langage de haut niveau qui a les perfs du C. Ce n'est quand même pas rien comme marché.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Le problème de pureté est que cela complexifie tout pour le compilateur. En java, tu as des trucs bizarre juste pour faire un tableau d'entier performant et ne pas avoir de "boxing".

    Par exemple dans lisaac, une fois la syntaxe vérifié, tout appel de slot est un point de liaison dynamique, que cela soit un appel de méthode, une boucle, un if, tout. Résultat toutes optim portant sur les appels ou les boucles s'appliquent partout (traitement de la récursivité, inlining, etc...)

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Remarques que ce n'est pas moi qui est commencé les insultes. Je sais que je n'aurais jamais du répondre au trolleur habituel. Et j'aurais dû me douter que certaines pics contre d'autre langage (comme contre lisp) ne serait pas vu comme de l'humour.

    Sur le coté innovant, il y a l'analyse de flot qui enlève 99.3% des VFT du code du compilateur sur 410 000 appels, tu as la detection des call sur null en statique. Tu as la gestion de l'héritage dynamique (changement du ou des pères au runtime). etc...

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Lisaac a une syntaxe imbittable

    Ceux qui disent cela ne connaisse que java ou le C. Lit du ocaml ou du smalltalk voir du perl, tu va sauter en l'air. La syntaxe lisaac est une version strict des règles de génies logiciel : avoir un maximum de clareté (MAJUSCULE pour les type, minuscule pour les slots, Une seul majucule pour les mots clef)


    Les langages qui tentent ou réussissent à s'imposer sont beaucoup plus pragmatique et cherche à rendre leur syntaxe "familière" aux développeurs justement habitués à l'universalité du langage C.


    Cela a un coup énorme sur l'ambiguïté de la syntaxe, sa difficulté à lire, la difficulté à compiler et rendre performant une grammaire large.

    Les nouveaux langages cherchent aussi à être productif. Cela veut dire facile à relire (ce qui est complexifié par la taille de la grammaire, cf perl), facile à détecter des bugs tôt (lisaac détecte les "call sur null" à la compilation et non au runtime comme java), la programmation par contrat facilite aussi la vérification.

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

  • [^] # Re: Surprise

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Et pour en revenir à Lisaac, j'ai horreur de ses Section, et j'ai horreur que les types soit TOUT EN MAJUSCULE.

    On s'habitue à tout. C'est moche mais c'est super rapide pour trouver un type. Cela permet d'avoir une grammaire qui tient en 30 lignes, cela permet d'avoir zéro surprise.

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

  • [^] # Re: 2 mots clefs... ou pas

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Je dirais que compter les mots clef est un peu bête je trouve. Le sport consiste à compter les mots clef contenu à l'intérieur des méthodes/fonction/slot. Je ne sais plus quel projet a commencé à compter comme ça.

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

  • [^] # Re: 2 mots clefs... ou pas

    Posté par  (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    Quel page ?

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