DerekSagan a écrit 609 commentaires

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à -4. Dernière modification le 13 octobre 2016 à 09:42.

    Mouaih enfin OCaml est un exemple de langage à typage faible, mine de rien. Même un exemple souvent cité.

    https://fr.wikipedia.org/wiki/Typage_fort

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à -2.

    Gné

    Un beau concentré de ta pensée. Le reste est habillage pour donner de l'apparence à l'absence de contenu.

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 0.

    un langage fonctionnel digne de ce nom (donc basé sur le lambda-calcul)

    Ensuite ton exemple avec macollection.iterer, je ne vois pas où il illustre le statut de citoyen de première classe pour les fonctions.

    Moi ce que je disais c'est que le type des tableaux 'a array est polymorphe et contient des éléments de n'importe quel type 'a qui peut être un type de fonction

    J'en déduis donc que selon toi un langage fonctionnel digne de ce nom doit être faiblement typé. Ou au moins doit avoir un type racine qui peut contenir n'importe quoi. C++ ne sera donc jamais un langage fonctionnel digne de ce nom.

    En attendant, quand je ne trolles pas pour répondre à du troll, je fournis des réponses plus pertinentes et adaptées aux autres commentaires.

    Bravo. Tu es donc quelqu'un de bien. Je suppose que c'était le message.

    Et du coup grâce à ta constructivité(1) sur certains sujets tu a acheté le droit de faire preuve de mauvaise foi en écrivant, ceci, comme si cette définition du lambda était propre à C++, y compris OCaml (le seul langage digne de ce nom):

    Selon le site C++ référence, les lambda seraient apparues avec le C++11 et ne correspondent qu'à de vulgaires fonctions anonymes construisant une clôture : ils ne savent pas ce qu'est le lambda-calcul les concepteurs et développeurs C++ ?

    Pour ensuite répondre:

    En fait dans les langages de programmation de ces dernières décennies le mot "lambda" correspond à une fonction anonyme, c'est loin d'être une spécificité de C++.

    C'est gentil de me l'apprendre… mais je le savais déjà, hein. ;-)

    Après je considère le droit à troller (et donc à troller de mauvaise foi) comme une liberté fondamentale qui devrait être inscrite dans la déclaration des droits de l'homme.

    J'ai juste bien rigolé en lisant cette médaille que tu porte fièrement à la poitrine:

    En attendant, quand je ne trolles pas pour répondre à du troll, je fournis des réponses plus pertinentes et adaptées aux autres commentaires.

    (accompagné de deux liens où tu réinventes l'eau chaude en découvrant manifestement ce qu'est un smart pointer, je dis ça pour donner de la profondeur à l'adjectif "pertinentes")

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 0.

    […] comme je trolle pas sur Java […]
    lol ?

    Tout à fait, un exemple typique de prétérition.

    […] il suffit de refaire une closure à la main même si ça doit être un peu plus lourd en syntaxe […]
    Oui c'est tout à fait possible et comme tu peux utiliser des références de méthodes ça n'est pas forcément particulièrement lourd. Au niveau de la syntaxe une lambda c'est (params) -> { body }

    Donc je dis "écrire une closure à la main par dessus le lambda pour pouvoir curryfier ça peut-être un peu lourd" et tu me réponds "la syntaxe de base du lambda n'est pas lourde", t'as pas l'impression qu'on parle pas de la même chose ?
    Cela dit mon propos n'était pas une critique, juste je disais que c'était possible de curryfier en Java.

    où les paramètres n'ont pas forcément de type explicite

    Oui, le compilateur C++ sait les déduire aussi.

    Et on peut même définir un lambda générique genre:

    auto multiplier_par_deux = [](auto x) { return 2*x; }

    Sans être obliger de déclarer une interface avec un generic autour de java.util.Function. Suivez mon regard.

    Pour ce qui est du fonctionnellement moins riches, le fait que ça se base sur des interfaces et que les interfaces peuvent avoir des méthodes permet des choses qui ne sont pas directement accessible en C++ comme le fait java.util.Function avec la composition par exemple

    C'est pas un exemple c'est le seul argument.
    C'est un lot de consolation pour toutes les limitations de java.util.Function, notamment celui que je décris juste au-dessus.

    Mais ça ne doit pas interdire de faire du java ni d'en utiliser les lambdas !

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 0.

    Je ne sais pas de qui tu parles quand tu dis "nous" mais perso j'utilise pas mal les lambdas en C++ et je curryfie régulièrement avec std::bind.

    http://en.cppreference.com/w/cpp/utility/functional/bind

    Je sais pas comment on fait en Java mais au pire il suffit de refaire une closure à la main même si ça doit être un peu plus lourd en syntaxe (comme je trolle pas sur Java remarquerais pas que la lourdeur de syntaxe est un standard de fait).

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 3.

    Je suis allé voir tes liens,
    (…)
    Et quand on parle de fonctions comme citoyens de premier classe, on entend aussi par là qu'elles peuvent être utilisées dans un contexte polymorphe comme n'importe quel autre terme sans syntaxe particulière.

    Bah t'as pas dû tout lire alors.
    Voici comme définir une variable qui est une fonction:

    auto ajouter = [](int x, int y) { return x+y; };
    auto uneautre = &MaClasse:unemethode;
    Et comment on capture une variable en passant une fonction en paramètre:

    int total;
    macollection.iterer([&total](int n) { total += n; });
    Tu peux trouver la syntaxe difficile si tu veux, mais perso je trouve que séparer les paramètres capturés (crochets) des paramètres d'appel (parenthèses) clarifie beaucoup de choses (notamment en précisant si la capture est pas référence ou par copie).

    Mais je peux continuer le troll aussi : si tu veux essayer de me convaincre que la POO (oui ça ne touche pas que le C++ ;-) n'est pas une totale aberration logique et intellectuelle, il va falloir te lever de bonne heure

    Je n'essayerai pas de te convaincre. Mais en fait selon le problème que tu cherches à résoudre ce n'est pas toujours le même modèle de programmation (objet, fonctionnel, procédural) le plus efficace et avoir plusieurs outils ne nuit pas.

    D'ailleurs un des avantages de C++ est que tu peux faire un peu tout avec. Je ne dis pas qu'il faut tout faire avec juste que tu n'es pas obligé de faire du fonctionnel (contrairement à lisp/scheme qui te l'impose), que tu n'es pas obligé de faire de l'objet avec (contrairement à java qui te l'impose au moins dans la forme et les bibliothèques/frameworks existants), etc.

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 1.

    Selon le site C++ référence, les lambda seraient apparues avec le C++11 et ne correspondent qu'à de vulgaires fonctions anonymes construisant une clôture

    Soit 3 ans avant qu'à peu près la même chose n'apparaisse en Java.
    Et je suis gentil parce que les lambdas Java sont moins riches fonctionnellement.

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2. Dernière modification le 10 octobre 2016 à 23:52.

    Selon le site C++ référence, les lambda seraient apparues avec le C++11 et ne correspondent qu'à de vulgaires fonctions anonymes construisant une clôture : ils ne savent pas ce qu'est le lambda-calcul les concepteurs et développeurs C++ ? Elles sont où les applications partielles, la curryfication, les fonctions comme citoyens de premières classes ?

    En fait dans les langages de programmation de ces dernières décennies le mot "lambda" correspond à une fonction anonyme, c'est loin d'être une spécificité de C++.
    https://en.wikipedia.org/wiki/Anonymous_function

    Et oui l'expression vient bien du lambda calcul.

    Et du coup les fonctions comme citoyens de première zones sont un cas plus général que les seuls opérateurs lambdas.
    Parce qu'une fonction comme citoyen de première classe c'est pas forcément un lambda, ça peut aussi être une méthode de classe ou une fonction C.

    Les trucs vraiment intéressant sont là, car en effet les lambdas c'est juste* une facilité d'écriture:
    http://en.cppreference.com/w/cpp/utility/functional/function
    http://en.cppreference.com/w/cpp/utility/functional/bind
    voire tout
    http://en.cppreference.com/w/cpp/utility/functional

    *: bon mais c'est bien pratique quand même hein :-)

  • [^] # Re: command not found: svn

    Posté par  . En réponse à la dépêche Appel à contribution pour la traduction du livre « Gestion de versions avec Subversion ». Évalué à -1.

    Bah non.

    Si tu parles des dates:

    CVS existait avant IE.
    Subversion existait avant IE6.

    https://en.wikipedia.org/wiki/Internet_Explorer_6
    https://en.wikipedia.org/wiki/Apache_Subversion
    https://en.wikipedia.org/wiki/Concurrent_Versions_System
    https://en.wikipedia.org/wiki/Internet_Explorer_version_history#Microsoft_Internet_Explorer

    Si tu parles des fonctionnalités:

    Soit tu n'a jamais utilisé CVS ou Mosaic, sinon tu ne dirais pas que CVS c'est IE6.
    Soit tu n'a jamais utilisé git ou Chrome, sinon tu ne dirais pas que Subversion est mieux qu'IE6.

  • [^] # Re: Pourquoi Source forge ?

    Posté par  . En réponse à la dépêche Appel à contribution pour la traduction du livre « Gestion de versions avec Subversion ». Évalué à 0.

    Perso je trouve ça assez cohérent: subversion, sourceforge, icq, windows 98se, linux 2.4: la fin glorieuse du 2ème millénaire.

    Bill Clinton, Yasser Arafat, Jacques Chirac, Gerhard Schröder, John Major, Jean-Paul II.

    Titanic, Forest Gump, Jurassic Park, Independence Day, La Menace Fantôme.

    Wolfenstein 3D.

  • [^] # Re: Donc pour résumer…

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.

    Au passage, la règle pourrait bien être que les destructeurs d'une classe qui a au moins une méthode virtuelle sont virtuels. Ou de définir un mot clé "nonvirtual" pour les 0.01% des cas où on veut explicitement éviter la création d'une vtable.

    Donc faire se taper un overhead inutile à 95% des appels de méthodes ?
    Interdire l'inlining implicite de toutes les méthodes tant qu'elles n'ont pas été explicitement marquées nonvirtual (ou final ou private), comme c'est le cas en java ?

    Au passage, la règle pourrait bien être que les destructeurs d'une classe qui a au moins une méthode virtuelle sont virtuels.

    Tous les compilos récents gueulent quand tu oublies le destructeurs virtual d'une classe qui a une/des méthodes virtual.
    Ce n'est donc plus la peine de complexifier le langage le problème est réglé du point de vue de la vie quotidienne du développeur (sauf celui qui compile sans warnings mais lui il veut aller en enfer).

    surcharger la fonction main, une en int main(int, char**) et une en bool main(vector)

    T'as pas l'impression de t'attaquer à un détail de détail de détail là ?
    Ça représente moins de 0,001 % de n'importe quel programme sérieux la signature du point d'entrée.

  • [^] # Re: Donc pour résumer…

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.

    Plus facile, plus séduisant est le côté obscur.
    Tu as juste succombé.
    Peut-être peux-tu encore être sauvé. Écoute ton cœur. Et ta raison. Et reviens du côté du bien.

  • [^] # Re: ...

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à -1.

    à chaque fois, il y a quelqu'un pour venir nous parler de Rust. J'ai envie dire : faites des dépêches sur Rust pour parler de Rust, et arrêtez de venir pour pomper l'air pour nous expliquer que C++ c'est de la merde

    J'ai plussé parce que ce que tu dis est vrai, mais perso je mets un point d'honneur à aller troller dans toutes les dépêches sur Rust pour dire que quand ça compilera sur autant de plateforme que C++ on pourra se mettre à discuter, donc je pourris les dépêche Rust plutôt que d'écrire des dépêche C++.

  • [^] # Re: Jai: Language for game programmming

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 2.

    sans être obligé de libérer explicitement les instances de BDD (chose qu'il faut faire manuellement tant en C qu'en Java si on se méfie du côté aléatoire du GC)

    Oui et non, depuis Java 7 tu as le try-with-resources qui est (avec une syntaxe un peu étrange) du RAII:

    https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

    (mais bon loin de moi l'envie de défendre Java juste de moquer le fait que ce langage a introduit le RAII 25 ans après C++, en même temps que les classes abstraites avec des méthodes non nulles, comme il avait introduit les templates 20 après C++, j'attends bien sûr l'héritage multiple pour dans 10 ans, encore que les lambdas étant arrivés l'an passé on peut rêver)

  • [^] # Re: Donc pour résumer…

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 0.

    Je ne vois pas l’intérêt d’avoir des bibliothèques dédiées à faire des GUI dans tous les langages. Un binding C (ou autre) vers des bibliothèques déjà bien (trop ?) fournies en matière de GUI suffit.

    Nul besoin de réinventer la roue à chaque nouvelle façon d’écrire du code.

    Ça dépend si la vitesse à laquelle tu écris le code et l'énergie que tu déploies à le débuguer ont de l'importance pour toi…

  • [^] # Re: Donc pour résumer…

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 3.

    … et une portabilité et un nombre de libs disponibles très en dessous de C++

    mais ça changera peut-être

  • [^] # Re: svn, git et... mercurial

    Posté par  . En réponse à la dépêche Appel à contribution pour la traduction du livre « Gestion de versions avec Subversion ». Évalué à 1.

    En même temps si tu postes la même chose sur stack overflow qu'ici, faut pas t'étonner… ce sont des gens sérieux qui n'apprécient que les contributions constructives ! reste avec nous plutôt ! Regarde ici, rien qu'au titre de la dépêche tu sais que les trolls seront accueillis et nourris.

  • [^] # Re: svn, git et... mercurial

    Posté par  . En réponse à la dépêche Appel à contribution pour la traduction du livre « Gestion de versions avec Subversion ». Évalué à 7. Dernière modification le 04 octobre 2016 à 18:25.

    Je fais comme windu, et en plus j'ai souvent 2 dépôts de publication, par exemple origin sur gitlab et github sur github.

    Mais je salue la qualité du troll: au lieu de répondre "svn c'est mort passez à git" comme tout le monde, tu réponds par un troll git/hg ignorant carrément le sujet has been de la dépêche. C'est beau !

    J'ai plussé et j'appelle à plusser ce troll de qualité pour qu'il reste positif !

  • [^] # Re: Linux ?

    Posté par  . En réponse à la dépêche CatchChallenger version 2. Évalué à 4.

    C'est pas super malin que ça soit la branche par défaut sur github alors, mais bon c'est pas très grave, j'ai fait un checkout v2.0.0.0 et devine quoi, ça compile nickel et ça plante pas au lancement :-)

    Bon, après ça demande une clef, comme dirait l'autre çapucépalibreenfincépagratuit ;-)

    Mais le client single lui, il compile, il se lance, il marche et il ne demande pas de clef.

    Donc ça va c'est pas la mer à boire à compiler soi-même. Même pour quelqu'un comme moi qui ne connait rien du tout à ton jeu et à ton env de dev (mais qui a déjà compilé du Qt, je le reconnais).

    Le jour où tu voudras faire un package linux (fut-ce un tar.gz pas intégré aux systèmes des distribs), t'as ça qui peut peut-être t'aider à embarquer tous les bouts de runtime Qt que tu veux sans te prendre la tête avec les noms des packages d'une distrib à l'autre pour tel ou tel module Qt voire QML:
    https://github.com/probonopd/linuxdeployqt
    (mais bon la dernière fois que je l'ai essayé ça marchait pas complètement, en tout cas pas aussi bien que leurs pendant windows et macos)

    Bon j'ai pas essayé ton jeu longtemps parce que j'aime pas trop les rpg-à-la-japonaise, mais ça a l'air prometteur pour ceux qui aiment le genre, bravo :-)

  • [^] # Re: Linux ?

    Posté par  . En réponse à la dépêche CatchChallenger version 2. Évalué à 1.

    Yep, j'ai compilé facilement le client ultimate avec mon Qt 5 custom (que j'avais déjà sur mon PC pour d'autres raison), mais le master segfault demain j'essayerai avec un tag :) mais je témoigne que ça compile très bien avec Qt5 sur Debian 8 (Jessie) aussi.

  • [^] # Re: Linux ?

    Posté par  . En réponse à la dépêche CatchChallenger version 2. Évalué à 1.

    ça ressemble à du Qt 5 que tu compilerais avec du Qt 4

  • [^] # Re: Gestion native du FLAC

    Posté par  . En réponse à la dépêche Firefox 49 en chansons. Évalué à 6. Dernière modification le 21 septembre 2016 à 17:10.

    mouaih en 93 j'avais une sound blaster 16 bits 22kHz, t'exagère un peu

  • [^] # Re: Config recommandée

    Posté par  . En réponse à la dépêche GitLab 8.11 : vue kanban et bien plus . Évalué à 2.

    La solution la plus simple reste la solution mutualisée: gitlab.com: c'est gratuit, c'est pas ta ram, c'est toujours à jour, et t'as les fonctions payantes pour rien.
    Mais ton code est chez eux, donc tu vas pas pouvoir y mettre du soft secret défense.

  • [^] # Re: Et sinon, pourquoi se limiter au serveur ?

    Posté par  . En réponse au sondage Les serveurs des geeks : écolos ?. Évalué à 1.

    Mais on parlait de serveurs ici, pas de machines utilisateur.

    Voilà, c'est bien ce que je discute.

  • # Et sinon, pourquoi se limiter au serveur ?

    Posté par  . En réponse au sondage Les serveurs des geeks : écolos ?. Évalué à 4.

    Pourquoi ne pas compter aussi les téléphones, tablettes, box et autre télés connectées ?

    Histoire que les personnes qui ont répondu 0 "parce que j'ai pas de serveur" soient obligées de repasser à "< 20W" avec ou sans raspberry pi. :-)