Tu m'as un peu largué dans les types paramétriques.
Le problème dont je parle relève bien de ingénieries des modèles, j'avais l'impression que du point de vue du code, ce n'est qu'une structure de donné (à la con).
Imagines que tu dois documenter des messages qui circulent sur un bus de communication. Tu as une lib de base "définition des champs d'octet d'un message de communication". Elle contient, des informations comme : nom, offset et taille de champ, type du champs. Ensuite, tu veux faire le boulot pour une techno de bus particulière A429, tu va réutilisé cette lib pour dire que les 3 premiers bits ont tel nom, et ont une valeur fixe, et champ de donné de type int (genre un champ d'adresse sur 8 bits, et un champs de donné sur 18 bits).
Pour une instance particulière de ce bus A429, tu va réutiliser la lib de description A429, définir des types de messages, avec des champs fixes (littéraux) et d'autres dépendantes du message (genre le message de vitesse est à l'adresse 121 fixe, mais le contenu est un entier 16 bits en km/h, en virgule fixe avec 6 bits après la virgule).
Chaque lib peut être vue comme le type de la lib qui l'utilise, ce n'est pas une transformation de type vers un autre. C'est ce mélange entre type de base et littéraux qui est impossible et très chiant en pratique.
Tu me dis pourquoi se faire chier avec un système aussi compliqué ? Le coté formel permet plein de choses. C'est pratique pour vérifier que parmi les 1000 messages échangés sur un bus, l'émetteur et le receveur reçoivent la vitesse dans la bonne unité et dans le bon encodage. Voir que dans le cas contraire, de générer un convertisseur à la volé. Cela permet de générer de la documentation propre non ambigüe. Cela permet aussi de générer du code de génération de trame (ton "float64 speed" dans un code C, a mettre au bon endroit dans le message).
J'avais déjà essayé d'en parler sur linuxfr. J'ai tenté de faire un langage de description qui permet de faire. L'idée de base est simplement d'ajouter un opérateur "est compatible avec le type de", je le notait '~' ou même '=' dans les définitions.
Ainsi, tu écris 'int ~ 1 ~ Name "a"', pour définir un truc du nom de "a" qui est de type int et vaux 1. Cela permet de le composer en plusieurs fois.
Genre 'Ref "a" ~ 2', la référence à "a" dont on ajoute 2, ce qui est faux.
Ainsi je peux définir Name "message" ~ (Name "adresse" ~ int & Name "data") dans une lib de base.
Puis Name "messageVitesse" ~ Ref "message" ~ (Ref "message/adresse" ~ 121 & Ref "message/Data" ~ (Name "Value" ~ int && Name "unit" ~ ("km/h" || "m/s") )) dans une lib plus précise. Puis Name "MessageBusTartenpion" ~ (Ref "messageVitesse" ~ (Ref "message/data/unit" ~ "km/h") || Ref "messageDistance" ) etc…
Tu peux aussi gérer plusieurs noms ou des alias 'Name "Vitesse" ~ Ref "messageVitesse"'.
La où cela devient marrant, c'est si on introduit la négation. Genre int ~ (! 0), pour faire un entier qui n'est pas nulle.
J'avais tenter de faire un type checker de façon simple en Ocaml, c'est un boulot énorme. Je voulais le refaire en tagless qui me parait super puissant, mais je n'ai pas eu le temps. Ce langage que j'appelais "Grape" (ou Cherry mais je n'assume plus :) permet de remplacer le xml, la description d'un schéma et rajoute la notion de nommage pour faire des graphs orienté et pas seulement des arbres de données. Cela permet de faire la même chose que l'UML ou SysML mais en beaucoup plus simple et de façon formelle.
Depuis, j'ai aussi un peu changer d'avis : il n'est pas possible de "mélanger" les modèles. Si on peut jouer avec des types un "peu" différent, avec un typage "weak", il reste le problème de compositions structurelles que l'on ne peut pas mixer (par exemple, un modèle de donné l'UML et sa représentation graphique en widget ). En fait, il faut faire de la transformation de modèle vers un autre (description des messages vers sa représentation html avec une lib html comme base). On peut aussi avoir la même chose décrite avec 2 normes différentes (beaucoup de standard arrivent avec leur metamodèle UML). Mixer les 2 normes est complexe et si une troisième arrive… C'est plus simple de prévoir des transformations. Cela implique des aller-retour, et de la gestion de différence. Mais je n'ai pas encore de solutions, surtout si on part du principe que le modèle est gigantesque :)
Ce que tu fais, cela s'appelle un mille feuille argumentatif, balancer un tas de machin vaguement vrai, ou vaguement faux pour que cela soit trop long à réfuter, et que l'ensemble apparaisse vraisemblable. C'est une technique adorée des complotistes en tout genre (cf les décodeurs du Monde).
Je note simplement que tu ne parles jamais de Bassel Khartabil Safadi, dans ce poste.
l’histoire telle qu’elle nous est racontée par les média.
La FSF n'est pas un média.
Les USA sont surnommés les « flics du monde » et même si ce sont les alliés de la France il faut bien dire ce qui est : ils foutent leur nez (et leurs oreilles…) partout. On peut citer la guerre Iran-Irak par exemple.
Quel rapport avec le sujet ? C'est pour montrer ton anti-américanisme ?
Reste que tout le monde a le droit d’exprimer son avis.
En effet, moi y compris.
En appelant à leur condamnation par tous tu ne fais que fournir de l’eau au moulin de leur auteur.
Jusqu’où être tolérant, c'est toujours la question. Toutes les opinions ne se valent pas. Quand 90% des experts pensent une chose, on ne peut pas mettre sur un pied d'égalité les pour et les contres, cela n'a aucun sens.
De plus, les éléments de langage des trolls en question de cette page ne laisse aucune ambiguïté sur leur origine politique extrémiste. Je ne vois pas l’intérêt de laisser linuxfr devenir un nouveau forum type jeuxvideo.com.
Cela fait quelques temps (plusieurs années ?) que je remarque que certain nouveau compte actif ont des colorations d’extrême droite. Alors oui, on a le droit d'être un peu con, quand on est jeune, et on a le droit de changer d'avis. Mais certains postes ressemblent plus à de "l'entrisme", c'est à dire rentrer dans une communauté pour la pourrir de l'intérieur. Le FN a été un des 1er partie à soutenir le logiciel libre par patriotisme, mais aussi pour faire l'inverse des autres. Ils capitalisent dessus.
De l'autre coté, Mélanchon a rendu l’extrême gauche agressive. Impossible de les critiquer sur les réseau sociaux sans être harceler ensuite. Pour eux, la fin justifie les moyens, ce qui est toujours une erreur. Et certains posteurs deviennent ici agressif, à justifier l'injustifiable comme les événements au Venezuela.
Bref, je n'ai aucune envie de voir les contributeurs intéressants du site partir devant ces postes nauséabonds.
La question a toujours été "jusqu’où tolérer les intolérants".
La liberté d'expression ou la démocratie n’empêche en rien de faire le ménage sur un site personnel, tu pourra toujours t'exprimer ailleurs. C'est un peu comme si tu es invité chez quelqu'un, tu le frappes, puis tu te plains de te faire mettre dehors.
On a un libriste reconnu (par la FSF, excusez du peu) qui est mort, et on trouve des gens pour cracher sur sa tombe, avec une tartine de gros FUD complotistes, avec des éléments de langage d’extrême droite pro-Assad. Et vous pensiez passer inaperçu ?
Salir un mort, histoire de ne pas trop salir vos "héros" personnel, cela reste très moche.
La discussion porte sur le fait que le nouveau contrat impose une nouvelle contre parti sur le code actuelle ou non. Si il y a une nouvelle contrepartie (renoncer à la prochaine mise à jour), alors il y a ajout de contraintes dans la GPL, ce qui n'est pas possible.
Aucune. En Allemagne, l'équivalent de linky a été pirater rapidement par le CCC pour faire la démonstration de son absence de sécurité. Le gouvernement allemand a donc interdit la chose.
Concernant les littéraux, je ne comprends pas pourquoi il sont considéré différemment du type.
En gros si tu as
i : int
i + 1
i + 1 est ok, uniquement car on détermine que 1 est d'un type entier.
Or a part dans fonctionnalité de généricité, le type n'est jamais une variable. C'est chiant dans ingénierie des modèles, tu ne peux pas prévoir un modèle de plus haut niveau, qui sera utilisé pour en faire un de plus petit niveau en définissant le type de certain donné par exemple. Ce genre de problème se contourne en réinventant une sorte de typage depuis le modèle de haut niveau, mais c'est moche et lourd. De plus, la vérification des types doit être réécrites.
Cela se retrouve dans tout ce qui ressemble à des déclarations des schémas (xml ou autre) : il est compliqué d'avoir un schéma dans le même "monde" (au sens d'une library ou d'une autre donné) qu'une instance d'un objet. c'est ainsi que l'on se retrouve avec des "metamodèles" (en UML) qui devienne super chiant quand il s'agit de rapprocher des modèles utilisant des metamodèles différents, ce qui ne poserait aucun problème si on utilisait une library à la place.
Et comment expliques tu les "barils bombes" lâché sur les habitations, les morts comptablisés largement supérieur pour le régime (même bien plus que Daesh)
Il pourrait faire des normes "minimum" de sécurité pour la mise en location par exemple (différentiel, terre correct, nombre max de prise par ligne, câblage en 1.5mm² minimum, etc…)
Tu as raison, mais oser sortir qu'un dictateur sanglant ne peut pas tuer un activiste des logiciels libres, et que celui ci doit nécessairement être un terroriste ou un espion, c'est dure à avaler.
Je ne connais pas les pseudo qui font ses attaques, mais on reconnait l'extrème gauche, anti-américaine, et anti-israélienne qui défend tout ce qui peut leur nuire. On reconnait aussi l’extrême droite, qui défend la russie uniquement pour se montrer rebelle (et se faire financer ?).
En fait, ce genre d'information permet de révéler au modérateur les faux nez d'extrème droite, venu faire de l'entrisme dans le milieu du logiciel libre. J'espère que vous garder un max d'information sur ce genre de triste sir.
C'est un mensonge, et tu le sais très bien. Il suffit de voir le nombre de mort civile, le régime syrien est bien pire que ISIS.
très vite "des terroristes islamistes à exterminer sans pitié" dès qu'ils commencent à opérer en terre française…
Tu mélanges tout. Il y a plusieurs groupes islamiste très différent en syrie. Et si les USA arment les kurdes (souvent anti-turc), c'est justement parce qu'ils sont peu islamisés.
IL ne mérite pas plus d'éloges qu'aucun autre syrien qui s'est battu pour rester en vie dans ce désastre qui perdure encore.
En quoi le fait de ne mériter pas plus d'éloge qu'un autre, discrédite de lui faire un éloge à lui ? Parce que cela ne vous plait pas ? Parce que cela ne suit pas vos intérêts partisan ?
Ce sera mon seul commentaire.
Heureusement. tu ressembles follement à un troll d'extrème droite qui soutient Assad, comme Marine le fait, uniquement par anti américanisme et pro-russie.
Et par rapport à la logique, si j'ai bien compris l'origine du lambda calcul, c'est les incohérences de la théorie des ensembles qui ont donné la théorie des catégories (?) puis le lambda calcul, mais quel rapport ici, entre le typage est la logique. Le typage définit un ensemble de "vérité", et le compilateur vérifie la cohérence de l'ensemble ? Pourquoi les littéraux sont définit de manière spéciale par rapport au typage, c'est une question de facilité, ou est-ce qu'il y a une vrai différence de nature ?
J'adore Ocaml, et j'aurais aimé continuer à l'utiliser grâce à son système de type, sa création/ parcours d'arbre très simple, le tagless final (présenté par kantien). C'est un outil parfait pour un "filtre unix", un programme que l'on lance une fois et donne un résultat (compilateur, transformation, documentation, calcul….).
Mais si on veut faire de la GUI, il y avait au dernière nouvelle que du gtk 2.0 de disponible qui n'utilise pas les arbres typés qui serait pourtant géniaux dans le cas d'une GUI. Bref, c'est peu conseillé.
Pour faire un serveur, il n'y a pas l'air d'avoir grand chose d'aboutis. Le projet Ocsygen avait l'air prometteur, mais si vous comprenez leur exemple, c'est que vous avais un BAC+9 en sémantique des langages ML, et ce n'est plus de l'Ocaml mais un dialecte à eux. De plus, je ne suis pas sûr que le GC se limite à des pauses courtes (<100ms) même avec 16 Go de ram, ce qui est handicapant pour un serveur. Ils ont auss un bon compilateur de Ocaml vers javascript pour l'execution du code dans le navigateur.
D'un point de vue performance, Ocaml n'utilise toujours pas le SIMD, ce qui sera possible avec l'unboxing de tableau de flottant.
Ce qui est plus problématique, surtout dans les serveurs, est le manque de gestion du parallélisme. Aujourd'hui, chaque système dispose de 4 cores minimum. "golang" peut être plus rapide que Ocaml grâce à sa bonne gestion du multi-cpu. Ocaml ne dispose toujours pas d'un bon modèle sur ce sujet (genre message passing sans copie).
Je suis passé à "Go" pour toutes ses raisons. La lib http est ultrabasique à utiliser, les performances sont bonnes et ont peu espérer faire des interfaces en HTML avec les limites que l'on connait des interfaces web. Go manque cruellement des types union, mais son typage structurel allège beaucoup le code et les dépendances.
Mozilla arrive avec Rust, qui se veut un remplaçant de C++ pour les clients lourds, avec 90% des fonctionnalités d'Ocaml et une bonne api pour la GUI.
EML (http://elm-lang.org/) est un nouveau langage ML qui se veut un moyen de forcer l'usage correct des paradigmes à la mode de javascript (react, …). Franchement, il ne lui manque que les modules pour pouvoir faire du "tagless final" pour être un sacré écosystème pour écrire des SPA (application web) (de mon point de vue).
Les développeurs d'Ocaml sont sans doute entrain de faire un choix entre combler les manques de l'écosystème ou renforcer ses points forts (on choisit souvent un outil, car c'est le meilleur dans un domaine).
[^] # Re: Reason
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche OCaml 4.04 et 4.05. Évalué à 3.
Tu m'as un peu largué dans les types paramétriques.
Le problème dont je parle relève bien de ingénieries des modèles, j'avais l'impression que du point de vue du code, ce n'est qu'une structure de donné (à la con).
Imagines que tu dois documenter des messages qui circulent sur un bus de communication. Tu as une lib de base "définition des champs d'octet d'un message de communication". Elle contient, des informations comme : nom, offset et taille de champ, type du champs. Ensuite, tu veux faire le boulot pour une techno de bus particulière A429, tu va réutilisé cette lib pour dire que les 3 premiers bits ont tel nom, et ont une valeur fixe, et champ de donné de type int (genre un champ d'adresse sur 8 bits, et un champs de donné sur 18 bits).
Pour une instance particulière de ce bus A429, tu va réutiliser la lib de description A429, définir des types de messages, avec des champs fixes (littéraux) et d'autres dépendantes du message (genre le message de vitesse est à l'adresse 121 fixe, mais le contenu est un entier 16 bits en km/h, en virgule fixe avec 6 bits après la virgule).
Chaque lib peut être vue comme le type de la lib qui l'utilise, ce n'est pas une transformation de type vers un autre. C'est ce mélange entre type de base et littéraux qui est impossible et très chiant en pratique.
Tu me dis pourquoi se faire chier avec un système aussi compliqué ? Le coté formel permet plein de choses. C'est pratique pour vérifier que parmi les 1000 messages échangés sur un bus, l'émetteur et le receveur reçoivent la vitesse dans la bonne unité et dans le bon encodage. Voir que dans le cas contraire, de générer un convertisseur à la volé. Cela permet de générer de la documentation propre non ambigüe. Cela permet aussi de générer du code de génération de trame (ton "float64 speed" dans un code C, a mettre au bon endroit dans le message).
J'avais déjà essayé d'en parler sur linuxfr. J'ai tenté de faire un langage de description qui permet de faire. L'idée de base est simplement d'ajouter un opérateur "est compatible avec le type de", je le notait '~' ou même '=' dans les définitions.
Ainsi, tu écris 'int ~ 1 ~ Name "a"', pour définir un truc du nom de "a" qui est de type int et vaux 1. Cela permet de le composer en plusieurs fois.
Genre 'Ref "a" ~ 2', la référence à "a" dont on ajoute 2, ce qui est faux.
Ainsi je peux définir Name "message" ~ (Name "adresse" ~ int & Name "data") dans une lib de base.
Puis Name "messageVitesse" ~ Ref "message" ~ (Ref "message/adresse" ~ 121 & Ref "message/Data" ~ (Name "Value" ~ int && Name "unit" ~ ("km/h" || "m/s") )) dans une lib plus précise. Puis Name "MessageBusTartenpion" ~ (Ref "messageVitesse" ~ (Ref "message/data/unit" ~ "km/h") || Ref "messageDistance" ) etc…
Tu peux aussi gérer plusieurs noms ou des alias 'Name "Vitesse" ~ Ref "messageVitesse"'.
La où cela devient marrant, c'est si on introduit la négation. Genre int ~ (! 0), pour faire un entier qui n'est pas nulle.
J'avais tenter de faire un type checker de façon simple en Ocaml, c'est un boulot énorme. Je voulais le refaire en tagless qui me parait super puissant, mais je n'ai pas eu le temps. Ce langage que j'appelais "Grape" (ou Cherry mais je n'assume plus :) permet de remplacer le xml, la description d'un schéma et rajoute la notion de nommage pour faire des graphs orienté et pas seulement des arbres de données. Cela permet de faire la même chose que l'UML ou SysML mais en beaucoup plus simple et de façon formelle.
Depuis, j'ai aussi un peu changer d'avis : il n'est pas possible de "mélanger" les modèles. Si on peut jouer avec des types un "peu" différent, avec un typage "weak", il reste le problème de compositions structurelles que l'on ne peut pas mixer (par exemple, un modèle de donné l'UML et sa représentation graphique en widget ). En fait, il faut faire de la transformation de modèle vers un autre (description des messages vers sa représentation html avec une lib html comme base). On peut aussi avoir la même chose décrite avec 2 normes différentes (beaucoup de standard arrivent avec leur metamodèle UML). Mixer les 2 normes est complexe et si une troisième arrive… C'est plus simple de prévoir des transformations. Cela implique des aller-retour, et de la gestion de différence. Mais je n'ai pas encore de solutions, surtout si on part du principe que le modèle est gigantesque :)
"La première sécurité est la liberté"
[^] # Re: Haute trahison ?
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 5.
C'est une blague ? C'est celui qui le plus de sang syriens sur les mains !
Les barils d'explosifs jeté sur des quartiers d'habitations ? Les gaz ?
"La première sécurité est la liberté"
[^] # Re: Laisse tomber NB
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 10.
Ce que tu fais, cela s'appelle un mille feuille argumentatif, balancer un tas de machin vaguement vrai, ou vaguement faux pour que cela soit trop long à réfuter, et que l'ensemble apparaisse vraisemblable. C'est une technique adorée des complotistes en tout genre (cf les décodeurs du Monde).
Je note simplement que tu ne parles jamais de Bassel Khartabil Safadi, dans ce poste.
"La première sécurité est la liberté"
[^] # Re: J'ai compris !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 5.
Il y a toujours une limite à la tolérance.
La FSF n'est pas un média.
Quel rapport avec le sujet ? C'est pour montrer ton anti-américanisme ?
En effet, moi y compris.
Jusqu’où être tolérant, c'est toujours la question. Toutes les opinions ne se valent pas. Quand 90% des experts pensent une chose, on ne peut pas mettre sur un pied d'égalité les pour et les contres, cela n'a aucun sens.
De plus, les éléments de langage des trolls en question de cette page ne laisse aucune ambiguïté sur leur origine politique extrémiste. Je ne vois pas l’intérêt de laisser linuxfr devenir un nouveau forum type jeuxvideo.com.
Cela fait quelques temps (plusieurs années ?) que je remarque que certain nouveau compte actif ont des colorations d’extrême droite. Alors oui, on a le droit d'être un peu con, quand on est jeune, et on a le droit de changer d'avis. Mais certains postes ressemblent plus à de "l'entrisme", c'est à dire rentrer dans une communauté pour la pourrir de l'intérieur. Le FN a été un des 1er partie à soutenir le logiciel libre par patriotisme, mais aussi pour faire l'inverse des autres. Ils capitalisent dessus.
De l'autre coté, Mélanchon a rendu l’extrême gauche agressive. Impossible de les critiquer sur les réseau sociaux sans être harceler ensuite. Pour eux, la fin justifie les moyens, ce qui est toujours une erreur. Et certains posteurs deviennent ici agressif, à justifier l'injustifiable comme les événements au Venezuela.
Bref, je n'ai aucune envie de voir les contributeurs intéressants du site partir devant ces postes nauséabonds.
"La première sécurité est la liberté"
[^] # Re: J'ai compris !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à -3.
Pour information, le régimes lui-même a fait bien plus de mort que les autres factions.
moi, c'est les complotistes à 2 balles, qui me défrisent, alors que c'est uniquement pour protéger leur agenda politique.
"La première sécurité est la liberté"
[^] # Re: J'ai compris !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 1.
La question a toujours été "jusqu’où tolérer les intolérants".
La liberté d'expression ou la démocratie n’empêche en rien de faire le ménage sur un site personnel, tu pourra toujours t'exprimer ailleurs. C'est un peu comme si tu es invité chez quelqu'un, tu le frappes, puis tu te plains de te faire mettre dehors.
On a un libriste reconnu (par la FSF, excusez du peu) qui est mort, et on trouve des gens pour cracher sur sa tombe, avec une tartine de gros FUD complotistes, avec des éléments de langage d’extrême droite pro-Assad. Et vous pensiez passer inaperçu ?
Salir un mort, histoire de ne pas trop salir vos "héros" personnel, cela reste très moche.
"La première sécurité est la liberté"
[^] # Re: risque de quoi?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Linky et filtre cpl. Évalué à 3.
le compteur "intelligent".
"La première sécurité est la liberté"
[^] # Re: CPL + Wifi
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Linky et filtre cpl. Évalué à 3.
Ce n'est pas sur du tout que cela impose les disjoncteurs différentielles ou la mise à la terre généralisée.
"La première sécurité est la liberté"
[^] # Re: Les quatre libertés des logiciels libres
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Grsecurity attaque Bruce Perens en justice pour diffamation. Évalué à 5.
La discussion porte sur le fait que le nouveau contrat impose une nouvelle contre parti sur le code actuelle ou non. Si il y a une nouvelle contrepartie (renoncer à la prochaine mise à jour), alors il y a ajout de contraintes dans la GPL, ce qui n'est pas possible.
"La première sécurité est la liberté"
[^] # Re: risque de quoi?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Linky et filtre cpl. Évalué à 6.
Aucune. En Allemagne, l'équivalent de linky a été pirater rapidement par le CCC pour faire la démonstration de son absence de sécurité. Le gouvernement allemand a donc interdit la chose.
"La première sécurité est la liberté"
[^] # Re: module ?!
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Go 2. Évalué à 2.
Je ne vois pas bien le rapport, les plugins de Go semble être de la gestion de library dynamique, cela n'a rien à avoir avec les packages de OCaml.
"La première sécurité est la liberté"
[^] # Re: Reason
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche OCaml 4.04 et 4.05. Évalué à 3.
Réponse bien complète :)
Concernant les littéraux, je ne comprends pas pourquoi il sont considéré différemment du type.
En gros si tu as
i : int
i + 1
i + 1 est ok, uniquement car on détermine que 1 est d'un type entier.
Or a part dans fonctionnalité de généricité, le type n'est jamais une variable. C'est chiant dans ingénierie des modèles, tu ne peux pas prévoir un modèle de plus haut niveau, qui sera utilisé pour en faire un de plus petit niveau en définissant le type de certain donné par exemple. Ce genre de problème se contourne en réinventant une sorte de typage depuis le modèle de haut niveau, mais c'est moche et lourd. De plus, la vérification des types doit être réécrites.
Cela se retrouve dans tout ce qui ressemble à des déclarations des schémas (xml ou autre) : il est compliqué d'avoir un schéma dans le même "monde" (au sens d'une library ou d'une autre donné) qu'une instance d'un objet. c'est ainsi que l'on se retrouve avec des "metamodèles" (en UML) qui devienne super chiant quand il s'agit de rapprocher des modèles utilisant des metamodèles différents, ce qui ne poserait aucun problème si on utilisait une library à la place.
"La première sécurité est la liberté"
[^] # Re: CPL + Wifi
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Linky et filtre cpl. Évalué à 2.
Source ?
"La première sécurité est la liberté"
[^] # Re: J'ai compris !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à -2.
C'est facile un troll d’extrême droite est collant. Avec des logs, on fait juste le ménage plus vite dans les faux comptes.
On peut être pour la liberté d'expression sans pour autant tolérer que quelqu'un fasse caca sur son paillasson.
"La première sécurité est la liberté"
[^] # Re: *bâillement intense*
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 2.
Et comment expliques tu les "barils bombes" lâché sur les habitations, les morts comptablisés largement supérieur pour le régime (même bien plus que Daesh)
"La première sécurité est la liberté"
[^] # Re: CPL + Wifi
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Linky et filtre cpl. Évalué à 1.
Il pourrait faire des normes "minimum" de sécurité pour la mise en location par exemple (différentiel, terre correct, nombre max de prise par ligne, câblage en 1.5mm² minimum, etc…)
"La première sécurité est la liberté"
[^] # Re: risque de quoi?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Linky et filtre cpl. Évalué à 4.
Le problème avec la consommation instantanée est que l'on peut savoir ce qui se passe dans la maison avec ces chiffres.
On peut savoir si une ou plusieurs personne est à l'intérieur, etc…
"La première sécurité est la liberté"
[^] # Re: Haute trahison ?
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 1.
Tu as raison, mais oser sortir qu'un dictateur sanglant ne peut pas tuer un activiste des logiciels libres, et que celui ci doit nécessairement être un terroriste ou un espion, c'est dure à avaler.
Je ne connais pas les pseudo qui font ses attaques, mais on reconnait l'extrème gauche, anti-américaine, et anti-israélienne qui défend tout ce qui peut leur nuire. On reconnait aussi l’extrême droite, qui défend la russie uniquement pour se montrer rebelle (et se faire financer ?).
"La première sécurité est la liberté"
# J'ai compris !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à -4.
En fait, ce genre d'information permet de révéler au modérateur les faux nez d'extrème droite, venu faire de l'entrisme dans le milieu du logiciel libre. J'espère que vous garder un max d'information sur ce genre de triste sir.
"La première sécurité est la liberté"
[^] # Re: Suspect, mais... prudence!
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 1.
C'est un mensonge, et tu le sais très bien. Il suffit de voir le nombre de mort civile, le régime syrien est bien pire que ISIS.
Tu mélanges tout. Il y a plusieurs groupes islamiste très différent en syrie. Et si les USA arment les kurdes (souvent anti-turc), c'est justement parce qu'ils sont peu islamisés.
En quoi le fait de ne mériter pas plus d'éloge qu'un autre, discrédite de lui faire un éloge à lui ? Parce que cela ne vous plait pas ? Parce que cela ne suit pas vos intérêts partisan ?
Heureusement. tu ressembles follement à un troll d'extrème droite qui soutient Assad, comme Marine le fait, uniquement par anti américanisme et pro-russie.
"La première sécurité est la liberté"
[^] # Re: *bâillement intense*
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 1.
Le type est un troll ou un troll d'extrème droite qui vient pourrir le site ?
"La première sécurité est la liberté"
[^] # Re: *bâillement intense*
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 6.
Il soutenait le printemps arabe. donc, forcément, il était contre le régime. Mais pas forcément pour les islamistes non plus.
"La première sécurité est la liberté"
[^] # Re: Reason
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche OCaml 4.04 et 4.05. Évalué à 3.
Et par rapport à la logique, si j'ai bien compris l'origine du lambda calcul, c'est les incohérences de la théorie des ensembles qui ont donné la théorie des catégories (?) puis le lambda calcul, mais quel rapport ici, entre le typage est la logique. Le typage définit un ensemble de "vérité", et le compilateur vérifie la cohérence de l'ensemble ? Pourquoi les littéraux sont définit de manière spéciale par rapport au typage, c'est une question de facilité, ou est-ce qu'il y a une vrai différence de nature ?
"La première sécurité est la liberté"
# module ?!
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Go 2. Évalué à 3.
Il manque sans doute l'équivalent des modules de ocaml, cela permet de faire de la programmation générique sans trop de recopie de code.
"La première sécurité est la liberté"
# futur
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche OCaml 4.04 et 4.05. Évalué à 9.
J'adore Ocaml, et j'aurais aimé continuer à l'utiliser grâce à son système de type, sa création/ parcours d'arbre très simple, le tagless final (présenté par kantien). C'est un outil parfait pour un "filtre unix", un programme que l'on lance une fois et donne un résultat (compilateur, transformation, documentation, calcul….).
Mais si on veut faire de la GUI, il y avait au dernière nouvelle que du gtk 2.0 de disponible qui n'utilise pas les arbres typés qui serait pourtant géniaux dans le cas d'une GUI. Bref, c'est peu conseillé.
Pour faire un serveur, il n'y a pas l'air d'avoir grand chose d'aboutis. Le projet Ocsygen avait l'air prometteur, mais si vous comprenez leur exemple, c'est que vous avais un BAC+9 en sémantique des langages ML, et ce n'est plus de l'Ocaml mais un dialecte à eux. De plus, je ne suis pas sûr que le GC se limite à des pauses courtes (<100ms) même avec 16 Go de ram, ce qui est handicapant pour un serveur. Ils ont auss un bon compilateur de Ocaml vers javascript pour l'execution du code dans le navigateur.
D'un point de vue performance, Ocaml n'utilise toujours pas le SIMD, ce qui sera possible avec l'unboxing de tableau de flottant.
Ce qui est plus problématique, surtout dans les serveurs, est le manque de gestion du parallélisme. Aujourd'hui, chaque système dispose de 4 cores minimum. "golang" peut être plus rapide que Ocaml grâce à sa bonne gestion du multi-cpu. Ocaml ne dispose toujours pas d'un bon modèle sur ce sujet (genre message passing sans copie).
Je suis passé à "Go" pour toutes ses raisons. La lib http est ultrabasique à utiliser, les performances sont bonnes et ont peu espérer faire des interfaces en HTML avec les limites que l'on connait des interfaces web. Go manque cruellement des types union, mais son typage structurel allège beaucoup le code et les dépendances.
Mozilla arrive avec Rust, qui se veut un remplaçant de C++ pour les clients lourds, avec 90% des fonctionnalités d'Ocaml et une bonne api pour la GUI.
EML (http://elm-lang.org/) est un nouveau langage ML qui se veut un moyen de forcer l'usage correct des paradigmes à la mode de javascript (react, …). Franchement, il ne lui manque que les modules pour pouvoir faire du "tagless final" pour être un sacré écosystème pour écrire des SPA (application web) (de mon point de vue).
Les développeurs d'Ocaml sont sans doute entrain de faire un choix entre combler les manques de l'écosystème ou renforcer ses points forts (on choisit souvent un outil, car c'est le meilleur dans un domaine).
"La première sécurité est la liberté"