arnaudus a écrit 4643 commentaires

  • [^] # Re: Bindings

    Posté par  . En réponse à la dépêche Gtk to Qt - A strange journey. Évalué à 10.

    Mais un des intérêts de Qt, c’est justement de simplifier le codage en C++

    L'autre vision, c'est de dire que Qt a carrément modifié en force le C++ de manière à faire rentrer des objets ronds dans des trous carrés, et que le résultat n'est pas vraiment du C++ :-)

    Le C++ c'est vraiment bien pour faire ce que c'est censé faire : de l'objet sur des algorithmes ayant besoin de performances. Je m'en sers pour des programmes scientifiques, des simulations intensives et des trucs comme ça, et c'est un outil super pratique. Mais j'ai quand même l'impression d'être un bricoleur avec des outils pros dans les mains, sans avoir lu le mode d'emploi. Pour faire du C++ efficace et propre, il faut faire de l'objet nickel (designs patterns etc), il faut être très soigneux sur l'écriture des classes (bien overloader les opérateurs, être super strict sur les const, être super strict sur la gestion de la mémoire), il fau(-drait, parce que je ne le fais pas) gérer les exceptions comme il faut… Ça fait beaucoup de contraintes. Quand on voit le nombre de gens qui prétendent faire du C++ et qui ne produisent qu'un vague dialecte du C, je me dis que ça serait peut-être pas mal que moins de gens fassent du C++, parce que c'est un outil très puissant, mais très technique, et qui se prête très mal à des petits projets pas bien ficelés.

  • [^] # Re: Bindings

    Posté par  . En réponse à la dépêche Gtk to Qt - A strange journey. Évalué à 10.

    Je ne pense pas que C++ soit "has-been" pour tout, mais c'est vrai qu'on peut se demander la pertinence d'un langage aussi contraignant si c'est pour faire une interface graphique autour de la lecture de données dans un fichier et une analyse triviale.

    Le meilleur langage, c'est quand même celui que tu connais bien ET qui est adapté au type d'application. Dans le cas présent, à moins de vouloir faire des statistiques Bayesiennes infernales sur les temps des paliers de décompression, ou vouloir que le soft puisse aussi faire firewall et piloter une cafetière…

  • [^] # Re: Mouai

    Posté par  . En réponse au journal Vie privée ? Connais pas. Évalué à 1.

    Bref, tout ça pour dire que si, c'est rentable, la plus grande preuve est le chiffre d'affaire de Google qui collecte des millairds de petites infos sur toi (sur le net).

    Oh oui, c'est rentable pour Google, c'est indéniable. Bla bla pubs ciblées, vous allez voir comment votre visibilité va augmenter, etc. Pour les annonceurs, par contre, ça me semble bien plus discutable.

    Et vu l'evolution technologique, tu as plus de données à traiter mais aussi bien plus de puissance, et au final c'est le contraire qui se passe : ça revient de moins en moins cher de traiter de plus en plus d'infos.

    La difficulté du traitement n'est évidemment pas la puissance informatique nécessaire : les serveurs de calculs ne valent quasiment rien par rapport au salaire des ingénieurs et des chercheurs qui vont développer les algorithmes permettant d'extraire des infos exploitables commercialement à partir de tout ça, et c'est pas évident du tout que tout ça est rentable. Les données sont pourries, incomplètes, bourrées d'erreurs (une personne utilise plusieurs ordinateurs, un ordinateur peut être utilisé par plusieurs personnes, on peut utiliser plusieurs navigateurs, etc), et encore une fois, je doute que ces jeux de données massifs aient réellement de la valeur intrinsèque, convertible en cash dans l'économie réelle. Oui, tu vas pouvoir connaitre plein de choses : l'adresse, le nom, le téléphone, la fréquence des achats en ligne, les sites fréquemment visités, le modèle des ordinateurs utilisés… Mais qu'est-ce que tu vas faire de tout ça? Tu vas payer des milliers et des millieurs d'euros pour cibler des pubs dont le taux de clic va passer de 1/1000 à 1/500? C'est valorisable pour une boite qui vend de la pub, mais est-ce intéressant pour les commerçants?

    C'était le sens de mon exemple avec StMaclou (que personne n'a compris) : ils ont des informations très précises sur leurs clients: adresse, téléphone, historique des achats, budget, paymement cash ou 3 fois sans frais, surface, qualité choisie, quantité retirée à chaque livraison ( = taille de la voiture)… et au final, ils envoient automatiquement des SMS à toute leur base de numéros de téléphone à chaque promotion. C'est complètement bourrin, mais s'ils font ça, c'est qu'ils ne voient pas l'intérêt de s'emmerder à exploiter finement leur superbe base de données pour cibler leur clientèle. Je pense encore que le marché de la donnée privée, c'est une bulle spéculative : ça a très peu de valeur commerciale en soi, mais tout le monde spécule pour avoir des bases plus intrusives et plus complètes. Les États sont incapables de gérer ça, c'est assez inquiétant, mais il est raisonnable de ne pas paniquer tant que ces données restent totalement inexploitables commercialement.

  • [^] # Re: Mouai

    Posté par  . En réponse au journal Vie privée ? Connais pas. Évalué à 10.

    Il me semble quand même qu'il manque une précision importante dans tout ça, c'est comment le GPS transmet sa position en temps réel au serveur de Ford. Soit la bagnole a sa propre puce 3G (et là, il faut quand même arrêter le délire), soit ça passe par une application sur le téléphone du conducteur. Et là, c'est nettement moins effrayant : il faut installer une application dédiée, il faut avoir une connexion réseau tout le temps, y compris avec un téléphone en veille (c'est encore loin d'être le cas pour tout le monde).

    Si tu installes une application sur ton téléphone pour sauvegarder ta trace GPS tous les jours pour faire diverses statistiques ou pour que Ford t'envoie un SMS quand il est temps de faire ta révision, tu sais déja que tu transmets tes données à Ford. Tu ne connais pas leur précision, ni la périodicité de la transmission, ni plein de détails, mais tu es au courant du principe.

    De toutes manières, je suis persuadé depuis quelques années que d'essayer de contrôler les données personnelles et les traces qu'on laisse un peu partout, c'est comme de militer contre la gravité ou contre le capitalisme. C'est là qu'on le veuille ou non, et on ne peut que s'épuiser en vain à lutter. Attention, accepter la gravité, ça ne revient pas à accepter de se casser la gueule à tous les coins de rue : le fait de savoir que ça existe et que c'est ineluctable permet juste de vivre normalement sans trop d'accidents.

    De toutes manières, il est probable que trop de données tuent les données. On vit une sorte de bulle où tout le monde remplit des datacenters de données triviales en espérant les valoriser un jour. Mais pour les valoriser, il faut les analyser. Et il y en a tellement qu'il faut le faire très grossièrement et automatiquement : il n'y aura jamais un gars chez Ford qui va visualiser sur son écran tes trajets ces 5 dernières années, avec ton nom, ton adresse, et ta photo au coin de l'écran. Tu vas recevoir des pubs ciblées? Ouais, pareil que les couvreurs qui passent dans la rue et qui mettent un papier dans la boite aux lettres quand ils voient que tes tuiles sont crades. Mais les pubs ciblées, ça va leur rapporter combien, par rapport au développement des fonctions du GPS, de l'appli mobile, du data center, des logiciels d'analyse, du service qui va vendre et valoriser les données?

    Bref, je pense que cette course aux données va finir par s'épuiser, pas parce que les CNILs essayent de stopper les chutes du Niagara avec une passoire à spaguetti, mais parce que collecter toutes ces données coûte très cher et ne rapporte rien. Ça reste du fantasme de marketteux, ça enthousiaste les services com' des grandes boites… mais franchement, combien de fois avez-vous cliqué sur les liens sponsorisés dans Gmail, combien de fois avez-vous visité un site de vente suite à un spam? La semaine dernière, j'ai reçu un SMS de Saint Maclou parce qu'ils font des soldes sur les parquets flottants… ils ont eu mon numéro parce que je leur ai acheté 80m2 de parquet deux mois avant… soit ils croient que je suis châtelain, ou entrepeneur, soit ils ont tellement peu confiance dans leur camelotte qu'ils pensent que je doive déja changer mon sol, soit ils n'analysent que dalle, ils ne ciblent que dalle, et ils envoient des messages complètement au hasard sur tous les numéros de leur base de données! Bref, ils ne font absolument rien des données qu'ils collectent, car elles n'ont probablement aucune valeur réelle.

  • [^] # Re: Et les compilateurs?

    Posté par  . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 3.

    Coté navigateur, avec une veille machine tout est réactif

    Sur du HTML bête et méchant, peut-être, mais quid des web-applis où le navigateur devient un compilateur/interpréteur?

  • [^] # Re: Et les compilateurs?

    Posté par  . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 4.

    "Avec quel genre de code « normal » on a besoin de performances ?"

    Avec quel genre de code a-t-on besoin de plus de 640 kb de RAM?

    Sérieusement, avec à peu près tout, mais le plus gros argument, c'est l'utilisation de langages de haut-niveau. Un jour le C (pourquoi pas tous les langages compilés même, on est presque vendredi) deviendra probablement ce qu'est l'assembleur aujourd'hui. Je ne vois pas l'intérêt de coder un navigateur ou une suite bureautique dans un langage qui permet des fuites de mémoire ou des segmentation fault; et par ailleurs les navigateurs eux-mêmes deviennent des compilateurs de JavaScript.

    D'une manière générale, on peut aussi discuter du fait que ma micro-optimisation est nuisible (temps de développement passé à optimiser, plus la perte de temps pour gérer la perte de lisibilité et d'évolutivité du code). L'argument "il existe un moyen logiciel d'améliorer les performances" est aussi souvent en opposition avec la portabilité et l'évolutivité, qui sont des propriétés importantes des logiciels.

  • [^] # Re: const→non-const ou non-const→const ?

    Posté par  . En réponse au message Appeler une méthode non-const à partir de la méthode const homonyme. Évalué à 2.

    Ah oui, en effet, c'est nettement moins laid.

    Ceci dit, j'ai quand même l'impression que ça revient à utiliser une "faille" dans le langage pour faire un truc qui n'est pas prévu, et donc qui n'est pas canonique. Je me demande si, au final, il n'est pas plus sain de déporter les calculs dans une fonction const qui a un autre nom, et d'utiliser les fonctions overloadées comme des coquilles vides :

    class A 
    {
      public:
    ...
       double mean() {if (!is_initialized) initialize(); return(compute_mean());}
       double mean() const {if (!is_initialize) abort(); return(compute_mean());}
     protected:
    ...
       double compute_mean() const {return(sum_i/data.size());}
    };
    

    Il y a une fonction de plus, mais finalement, C++ est un langage verbeux, si on aime la concision on change de langage… Et ça permet de faciliter la lecture de toute manière, puisque la fonction appelée est explicite. J'imagine qu'on peut même imposer en convention de codage de l'appeler const_mean(), un peu à la manière des const_iterator de la lib stantard. Merci pour l'éclairage, en tout cas.

  • [^] # Re: 'mutable' ?

    Posté par  . En réponse au message Appeler une méthode non-const à partir de la méthode const homonyme. Évalué à 2.

    Je ne suis pas certain que j'ai compris "mutable" de la même manière. Je n'aurais tendance à utiliser "mutable" uniquement dans des cas très spécifiques, par exemple pour pouvoir modifier un cache, ou quelque chose comme ça. Si les propriétés de l'objet sont modifiées (ici, elles le sont clairement, vu que l'objet passe de !is_initialized à is_initialized, et que le comportement de l'objet change (il appelle abort() ou il retourne un résultat quand appelé en contexte const), je trouve que l'utilisation de 'mutable' est abusif.

    Tu devrais aussi le mettre en const est le calculer dans le constructeur.

    Je ne sais pas, évidemment, dans le cas réel, il y a plus de trucs à calculer. Imagine que tu puisse demander aussi la variance ; si tu calcules tout dans le constructeur, tu vas devoir calculer sum_i et sum_i2, et si tu ne demandes finalement que la moyenne, tu auras calculé sum_i2 pour rien. J'avoue que c'est une question non triviale, mais ça me semble une pessimisation a priori que de faire des calculs potentiellement lourds alors qu'on n'est pas certain d'utiliser le résultat.

  • [^] # Re: const→non-const ou non-const→const ?

    Posté par  . En réponse au message Appeler une méthode non-const à partir de la méthode const homonyme. Évalué à 2.

    Ah oui oui, je me suis emmêlé les pinceaux dans le titre, toutes mes confuses.

    Je ne sais pas trop les conséquences du cast, tu veux dire qu'un static_cast sur *this appelle le constructeur de copie?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 3.

    OK, je crois que j'ai compris. Il y a un filtre sur chacune des 7 colonnes, avec en moyenne 4 ou 5 classes par colonnes (4.67 ~ 44000). L'objectif, c'est de faire une opération mathématique sur les colonnes restantes pour toutes les combinaisons exhaustives de filtres, par exemple col1==filtre1 && col2==filtre2, etc.

    Si on passe outre la question de l'intérêt du bazar, il est évident que sur seulement 10 000 lignes de données, la plupart des combinaisons n'existeront pas, il est donc totalement inutile de parcourir toutes les possibilités. À froid comme ça, en codant rapido, je ferais simplement une map basée sur une clé générée à partir des filtres (genre "Col1Filtre1-Col2Filtre2"), remplir la map ligne par ligne, puis gérer les requêtes en cherchant la clé correspondante dans la map—si la clé n'existe pas, la combinaison n'existe pas. Remplir 10 000 éléments de map avec 3 données, à vue de nez, ça devrait être super rapide, non?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 4. Dernière modification le 07 janvier 2014 à 17:56.

    C'est pas grave, ils trollent…. ils ne savent faire que cela.

    Ils savent troller ET coder. Ça fait une grosse différence, mine de rien, parce que vous avez largement prouvé votre capacité trollesque, mais pas le reste.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 6. Dernière modification le 07 janvier 2014 à 17:54.

    C'est amusant surtout le C/C++… c'est le prof qui leur a dit que c'était pas bien, alors j'accepte la mauvaise note :D
    Je répondrai : regarde le code qui est générer en C et en C++ pour ce genre d'opérations et tu auras ta réponse.

    I don't agree avec ta réponse, quand un prof say that mixing deux langages c'est not good, c'est perhaps because c'est juste imposer a painful effort aux lecteurs et rendre le monde ambigü et inhabitable.

    À mon avis, tu as toi-même démontré avec ton test inutile du retour de new que tu as appliqué un paradigme C en C++: quand tu codes, tu ne sais pas vraiment dans quel langage, ce qui peut amener à des bugs ou des erreurs, et créer du code illisible et inutilisable. Être autodidacte est très différent de mal faire les choses, surtout pour des disciplines "dures" comme les mathématiques ou la programmation : un jour, tu ne peux plus t'échapper avec des mots et des schémas, et tu finis par devoir te confronter à la réalité. La réalité avec le code du main() qui a été montré, c'est que le programme peut planter s'il est lancé avec une mauvaise commande, et que le buffer overflow peut introduire une faille de sécurité dans le système du client.

    je n'ai eu aucune réponse en retour concernant mes questions pour l'analyse en objet d'une Hotline, des 45000 filtres en 0.7 seconde

    Tu n'as aucune réponse parce que ton problème est vague et mal spécifié. Je ne comprends pas ce que sont ces 45000 filtres, mais si j'essaye d'extrapoler à un exemple concret, si tu as une table de 45000 lignes x 10 données (réels double précision) et que tu filtres par une comparaison (par exemple, ne garder que les lignes où les 7 premières colonnes sont positives), c'est quasiment instantané. Je ne vais pas me faire le code en C, mais même avec un langage de script comme R et un code crade,

    > L <- 45000
    > D <- 10
    > dd <- matrix(rnorm(L*D), ncol=D)
    > system.time(dd[dd[,1] < 0 & dd[,2] < 0 & dd[,3] < 0 & dd[,4] < 0 & dd[,5] < 0 & dd[,6] < 0 & dd[,7] < 0],])
       user  system elapsed 
      0.021   0.001   0.022
    
    

    20 ms sur un Cpu à 2.8 GHz, ça fait 0.07s sur un 1 GHz. J'imagine que tu as mal expliqué ton problème, évidemment, mais je veux juste te faire comprendre que balancer des trucs comme "45000 filtres en 0.7 secondes", ça n'impressionne personne d'autre que toi. Et dire que les SGBD commerciaux mettent 30 minutes, si tu les utilises de la même manière que C++, ça risque de n'étonner personne. Rien dans les informations et le code fourni ne prouve que tu n'es ni un escroc, ni un mythomane.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 10. Dernière modification le 07 janvier 2014 à 16:24.

    Techniquement, il semble que certains vieux compilateurs ne respectaient pas le standard—ça doit dater quand même, la FAQ C++ parle de "very old". Ou alors c'est juste un problème d'include <new>, apparemment c'est nécessaire pour certains compilos. Mais bon, ce que je trouve bizarre, c'est de ne pas attrapper l'exception "réglementaire" mais de faire ce test, qui ressemble à un calque du test du pointer après le malloc sous C. Et quand quelqu'un vous dit que le test ne sert à rien, vous essayez d'abord d'argumenter sur la base du new(nothrow), qui est quand même un truc assez confidentiel, puis vous dites clairement et naturellement que vous n'auriez pas fait le test si vous n'aviez pas eu le problème. On fait tous plus ou moins ça, j'imagine, mais on sait tous plus ou moins que c'est une pratique assez honteuse, et c'est juste un peu naïf d'utiliser ça comme argument dans une discussion où on remet en cause vos compétences de programmeur.

    Encore une fois, écrire du code pourri, beaucoup le font. Le publier, certains le font. Le produire dans un contexte professionnel, ça commence à craindre un peu, ça pourrait se rapprocher de l'escroquerie (par exemple, livrer du code écrit dans un dialecte personnel du C et le vendre comme du C++, c'est gonflé). Mais quand on dit que les programmes traditionnels sont pleins de bugs et difficiles à développer, il faut quand même montrer un minimum de technique. L'exemple traditionnel, c'est Picasso, qui a étudié très soigneusement l'école classique avant de définir son style. Là, vous définissez votre style sans bases solides dans le style traditionnel, vous ne pouvez pas donner confiance aux autres, c'est techniquement impossible.

    Les accusations que vous subissez sont graves, on parle de vous plus bas dans cette discussion comme un mythomane et un imposteur. Et vos réponses sont exactement celles qu'on attendrait d'un mythomane ou d'un imposteur : "n'essayez pas de comprendre, c'est trop différent". Vous êtes en train de dire à des programmeurs professionnels et reconnus (je ne parle évidemment pas de moi) qu'ils ne peuvent pas comprendre, tout en démontrant naïvement vos lacunes en programmation. C'est une position qui me semble intellectuellement intenable.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 3.

    Mais si je l'ai fait ainsi c'est que à un moment la class ne se créait pas et j'avais un zéro en retour.

    Chaque excuse est encore plus piteuse que la précédente :-)

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 1.

    En fait, ça voudrait dire que std::endl n'a pas d'utilité en soi? Ce qui me semble un peu compliqué, c'est de devoir supposer que le code tourne sur un système POSIX par exemple, ça ne met pas en cause la portabilité?

  • [^] # Re: Conférence

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 4.

    Ceci dit, il faut quand même que quelqu'un le dise. Il y a diverses manières de le dire, mais il est probable qu'un certain nombre de clients payent pour ça. Et le coup du "dissailldeur" qui n'y connait rien et qui a bien cherché ce qu'il a, ça n'est pas un bon argument si le web ne fournit pas l'opinion claire de spécialistes du sujet.

  • [^] # Re: hello world

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 6.

    Show us the code !

    Tu veux de retrouver avec 1318 fichiers .cpp, ou quoi?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 3. Dernière modification le 07 janvier 2014 à 13:11.

    Au fait, std::endl, ce n'est pas un synonyme de "\n". std::endl flush en plus, ce qui peut avoir des conséquences sur les performances

    Mais du coup, pour coller des messages d'erreur dans un ostream qui est peut-être cerr ou un fichier de log, est-ce que ça n'est pas canonique de flusher le truc? Si tu as un segfault juste après, c'est un coup à te retrouver avec un crash complètement silencieux, voire à considérer que le test s'est bien passé, non?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 2.

    Mais pour ce genre de trucs, en C++, tu ne fais pas

    ostream buff;
    buff << truc << endl;
    

    ?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 9. Dernière modification le 07 janvier 2014 à 10:16.

    J'ai souvent vu des programmeurs C++, ne pas comprendre plus que du simple C++98 sans rien de spécial même comme du "virtuel" ou des méthode "null".

    Ça:

    char buff[ MAX_STRING];
    sprintf( buff, "Error #%ld \n", (long) RET_NOPARAMS);
    

    c'est du C, pas du C++.

    Personne je pense n'a suggéré que votre code ne fonctionnait pas—comment pourrait-on? On n'a pas accès aux logiciels dont vous parlez. Ce que les gens disent, c'est que vous ne programmez pas comme un professionnel, et que certaines erreurs (comme le buffer overflow) ne devraient pas être présentes dans un code que vous facturez à un client. Après, si le client est content et qu'il s'en fout d'avoir un programme en C alors qu'il avait commandé du C++, et si vous lui avez pris trois fois moins cher que le coût d'un développement traditionnel, tant mieux.

    Pour prendre une analogie, si vous achetez une voiture, vous vous attendez à ce qu'elle marche bien. Mais si vous ouvrez le capot, et vous apercevez que tout tient avec des petits bouts de ficelle et de scotch, et que certaines pièces sont en plastique alors que vous aviez demandé du métal, alors le fait qu'elle fonctionne peut devenir secondaire : certes, elles fonctionne, mais ce n'est pas ce que vous aviez imaginé.

    En gros, tel que je le comprends, apparemment, votre voiture semble fonctionner. Mais quand vous ouvrez le capot, non seulement c'est du bricolage, mais en plus, personne, pas même des ingénieurs expérimentés, ne comprend comment elle fonctionne. Vous êtes vous-même incapable d'expliquer comment elle fonctionne, personne d'autre que vous ne pourrait reconstruire un tel moteur, et vous ne faites que dire que c'est un nouveau type de fonctionnement révolutionnaire. Et quand on prend une pièce au hasard et qu'on regarde comment elle est faite, elle semble avoir été bricolée par des ferailleurs roumains presbytes. Alors non, personne ne veut monter avec vous dans votre voiture : selon toute vraisemblance, elle va exploser au bout de 200 mètres. La réaction des gens est tout à fait rationnelle, et je ne vois pas comment vous pouvez imaginer convaincre avec les arguments que vous donnez.

  • [^] # Re: Mais si, faut y croire !

    Posté par  . En réponse au journal [bookmark] 2014 ne sera pas l'année du jeu libre. Évalué à 3.

    Sans compter que ça impose des restrictions techniques: en gros, il te faut du code qui compile et qui permet de faire un jeu "simple", et un module à toi (sous licence proprio?) qui te permet d'apporter ta plus-value. Tu espères que la communauté va jouer au jeu simple (pour remonter les bugs etc), et qu'une autre communauté va jouer au jeu complet. Mais au final, celle qui joue au jeu complet est la plus mal traitée, vu qu'elle n'a pas accès à la totalité des sources (et donc possibilités de bugs, backdoors, etc). Ça me parait assez malsain comme situation ; au final, on se demande bien quel intérêt de mettre le moteur sous licence libre si c'est pour pourrir le moteur libre avec des add-on non libres…

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 7.

    Puisque je vis de cette programmation non parfaite depuis 1986

    On ne peut évidemment que se réjouir que les gens aient un boulot dans lequel ils s'épanouissent. Mais bon, je ne suis pas développeur moi-même, je code des outils quand j'en ai besoin mais ce n'est pas le centre de mon activité, et il est pourtant très clair pour moi que le code présenté n'est pas d'un niveau professionnel ; je ne pense même pas qu'il serait passable dans la plupart des logiciels libres artisanaux qu'on trouve dans les distributions Linux. Ça ressemble à un mélange entre deux langages de programmation, C et C++, et tout ça semble très bancal—je ne sais pas si certains d'entre nous enseignent, mais il serait peut-être utile qu'ils indiquent à quel niveau d'études correspond un tel morceau de code.

    Le pépin, à mon avis, ce n'est pas des compétences de développeur douteuses (c'est déja pas mal d'être capable de produire un code qui compile, tant qu'on ne se situe pas dans un contexte professionnel), c'est que votre argumentation tourne autour du fait que les langages de programmation traditionnels ne correspondent pas à certaines de vos attentes, alors qu'il semble évident que vous êtes loin de les maitriser à un niveau suffisant pour émettre de telles critiques. Ça pose quand même un vrai problème de crédibilité.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 4.

    D'un autre côté, ce n'est pas une précaution utile quand même de nettoyer son bazar avant de terminer le processus? Quelque part, si dans 6 mois tu trouves ton main() trop long, et tu copies-colles le bloc de code ailleurs, l'absence de delete aurait aussi déclenché un WTF bien plus grave, non?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 1.

    Question naïve (histoire de profiter de cette discussion absurde pour apprendre quelque chose), pourquoi le WTF sur le "delete starter;"? Simplement parce que ça ne sert à rien vu qu'on est juste avant le return du main(), ou y-a-t'il quelque chose de plus profond?

    En tout cas, c'est un superbe exemple de C/C++ :-)

  • [^] # Re: hello world

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 6.

    Pourquoi un hello world a besoin de dizaines de fichier .cpp ?!

    Une dizaine? Tu es bien loin de la réalité. Il y a 24 .cpp et 29 .h! :-D Le plus marrant, c'est que la chaine de caractères "Hello World!" est dans l'un des 5 fichiers xml.

    À part un concours d'obfuscation, l'intérêt m'échappe.