barmic a écrit 927 commentaires

  • [^] # Re: Bienvenue au moyen-a^W en 2018

    Posté par  . En réponse au journal Le comble du ridicule. Évalué à 9.

    On est en 2019

    N'importe quoi !

  • [^] # Re: *cough*

    Posté par  . En réponse au journal Le comble du ridicule. Évalué à 10.

    C'est pas très fin comme remarque ça…

  • [^] # Re: Pervers de tous les pays, punissez vous !

    Posté par  . En réponse au journal Le comble du ridicule. Évalué à 9.

    Un comportant (pas pur = tu es pas bien) est excluant, l'autre (demander une cohérence) n'est que demander aux gens qui veulent militer de déjà comprendre le sujet, les deux types ne sont pas mélanger (ce que pas mal de militants font, certes, mais donc ex-aequo avec ceux qui viennent sans comprendre).

    Pour moi c'est la même chose. On vit tous avec une part de contradiction. Tu n'es pas défini par une seule idée, mais plusieurs qui peuvent se télescoper par endroit. Ne pas être en mesure de tracer une ligne logique entre tes idées, est-ce vraiment mal ? En quoi est-ce que ça annihile toute logique ? Si on mange de la viande ça ne fais rien qu'on ai fais souffrir la bête inutilement ?

    L'ambivalence n'est pas une mauvaise choses et n'est pas à proscrire sauf pour les idéalistes. Donc non pour moi c'est un seul et même groupe les idéalistes voir jusqu'au-boutistes qui n'hésiteront pas à chercher la faille chez toi pour te discréditer.

  • [^] # Re: As tu des problèmes avec les autres ?

    Posté par  . En réponse au journal Le comble du ridicule. Évalué à 10.

    Tout à fait une conférence n'a pas forcément vocation à supporter tous les combats de ses conférenciers. L'un contre les SJW, l'autre contre l'ACTA, le suivant contre l'état d'urgence etc… Chercher à transformer le lieu d'une conférence en une place politique, c'est se tromper d'endroit (pour des conférences techniques comme PyConFR). Endosser cette politisation n'est pas la volonté des organisateurs (je présume) qu'ils soient pour ou contre ton idée.

  • [^] # Re: *cough*

    Posté par  . En réponse au journal Le comble du ridicule. Évalué à 10. Dernière modification le 06 août 2018 à 13:34.

    […] j'assume complètement.

    Non. Je vous recommande chaudement l'une des chaines youtube française les plus intéressantes (de mon point de vu) qui a fait une vidéo sur le sujet LDB #11 "J'assume" La politique en mode thug (attention l'auteur est politisé, mais là il parle de manière générale sans prendre parti).

    Assumer ça signifie que tu accepte d'avoir déjà un passif avec l'organisation de cette conférence et que tu en accepte les conséquences. Venir poster un journal ignorant ce passif et montrant que tu n'en accepte pas les conséquences, c'est précisément ne pas assumer.

    Quelque soit celui (ou ceux) qui a raison dans cette histoire.

  • [^] # Re: ... et pas qu'un ...

    Posté par  . En réponse au journal Du développement full-stack en Java. Évalué à 3. Dernière modification le 05 août 2018 à 09:54.

    1. Non tu affirme que c'est peu utilisé en natif (tu as même tenté de dire que ce n'était pas très populaire, ce qui est drôle quand on est seul utilisateur d'une techno). Je te pointe des documents qui montent que c'est une notion centrale de bibliothèques très utilisées
    2. Tu fais sincèrement ce que tu veux. Je m'en fou. C'est juste que tu remplace un pattern d'archi utilisé par aucun. Dans le monde argument. C'est juste dommage parce que tu nous dis à côté ne pas être capable de rester ton code. MVC est entre autre là pour que tu puisse le faire.
    3. Parce que ton code est bugué? Fais ce que tu veux mais ton code est bugué si tu ne te débrouilles pas pour que ça fonctionne avant de te lancer dans des trucs fous comme une structure commerciale tu va dans le mur. Il n'y a pas de "mais ça fonctionnait", il faut mettre en place quelque chose pour s'assurer que ce que tu sors fonctionne. Tu veux pas faire de test unitaire très bien, il y a avoir un cahier de test, hier sur un environnement propre (docker ou une vm par exemple), etc. Pour le moment tu ne semble pas prendre conscience du problème. Avec ou sans communication ton truc ne fonctionne pas. Je l'ai ressayé, ça a "marchait" quelques fois (avoir des erreurs et servir lancer le programme au debuger pour trouver l'url qui va bien, c'est fonctionner ?). Puis plus du tout, comme si ton serveur ne répondait de token à mon client… J'ai pas de doute que ça se corrige mais il faut que tu attrape ce genre de problème plus tôt si tu veux rester crédible. Si les gens doivent payer les pots casser à chaque nouvelle version, ils ne peuvent qu'aller voir ailleurs, tu ne leur donne pas le choix.

    Tu préfère que l'on t'ignore?

  • [^] # Re: ... et pas qu'un ...

    Posté par  . En réponse au journal Du développement full-stack en Java. Évalué à 5.

    Apple : https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html

    MVC is central to a good design for a Cocoa application.

    Microsoft (MVVM est un dérivé de MVC) : https://blogs.msdn.microsoft.com/ivo_manolov/2012/03/17/model-view-viewmodel-mvvm-applications-general-introduction/

    MVVM is a central concept in WPF, Silverlight, WindowsPhone and Windows 8 development […]

    Il faut vraiment continuer ?

    Tu peux critiquer MVC. Il y en a qui le font très bien et même des gens qui n'utilisent pas du tout, mais le balayer par un « ça me paraît pas utile » et nous expliquer que tu n'arrive pas à tester ton code parce que ça te prends trop de temps, c'est très très léger (et non personne va te prendre par la main pour que tu y passe, tu fais bien comme tu veux et c'est à toi de faire l'effort de comprendre pourquoi autant de gens l'utilisent si ça n'est pas utile…).

  • [^] # Re: Mais il n'y a vraiment pas de quoi...

    Posté par  . En réponse au journal Du développement full-stack en Java. Évalué à 8.

    Le seul but de ce journal, c'est de présenter un projet et de fournir un moyen simple de l'essayer. Si ce projet ne vous intéresse pas, il vous suffit de passer votre chemin (si possible, sans essayer de me convaincre de ne pas utiliser C++ pour faire du web ; ce n'est pas le sujet, et ça n'apporte absolument rien au débat). S'il vous intéresse, libre à vous de l'essayer, et de me faire remonter vos observations, que je lirais attentivement, via les commentaires.

    J'avais commencé à écrire une réponse et je suis tombé là dessus. Je ne sais pas si tu te moque de moi ou si c'est autre chose. Pour éviter de continuer à perdre mon temps je vais passer mon chemin.

  • [^] # Re: ... et pas qu'un ...

    Posté par  . En réponse au journal Du développement full-stack en Java. Évalué à 4. Dernière modification le 04 août 2018 à 10:32.

    C'est plus compliqué que ça.

    Il y a une base OpenJDK qui est entièrement libre. C'est la base de tout le runtime Java. Ensuite OpenJDK possède des distributions qui sont plus ou moins supportées par ceux qui les distribuent. Il y a évidement Oracle, mais aussi RedHat et IBM qui distribue leur propre distribution du JDK avec un aspect commercial différent et un support différent. Du coup :

    La prochaine version LTS c'est effectivement la version 11 qui sera supporté par Oracle de septembre prochain jusqu'à septembre 2023 (toujours selon wikipedia), la LTS suivante sera la version 14 qui sortira en mars 2020. Si le support est bien celui annoncé par Oracle (IBM et RH n'ont pas communiqué sur leur support post-java9) alors :

    • tous les 6 mois une version majeure de Java sort (en mars et en septembre)
    • toutes les 3 versions sont des versions LTS
    • les versions LTS seraient supportées 5 ans alors que les autres versions le seront pendant 6 mois

    Le non passage à Java9 ou 10 s'explique aussi beaucoup par la frilosité du passage à jigsaw (et l'absence de killer-feature). Il y a encore beaucoup d'appli qui fonctionne sur des version 7 ou inférieures.

    Dans tout cela il y a l'initiative AdoptOpenJDK qui est communautaire bien qu'épaulé entre autre par IBM et qui fourni leur propre distribution, mais je ne connais pas le support qu'ils appliquent.

  • [^] # Re: ... et pas qu'un ...

    Posté par  . En réponse au journal Du développement full-stack en Java. Évalué à 1.

    Ah. Ça pose problème ? Si je fais String toto = "tutu", je suis bien obligé de faire un toto = new String("…") si je veux réutiliser toto, non ?

    Non ? Tu peut très bien écrire :

    String toto = "foo";
    toto = "bar"

    Je ne sais pas trop ce que tu entends par réutiliser, mais les String son immuables en java. Tu peux modifier leur référence, mais pas leur contenu.

    Pour l'itérateur, je ne connaissais pas. Pour la boucle if/else, je pense que c'est par rapport au switch. C'est pour rester compatible avec Java < à 1.7, vu que les switch avec des String ne sont disponibles qu'à partir de cette version. Bon, maintenant, si on me dit que ce n'est pas la peine de rester compatible avec ces versions-là, je switcherai volontiers du if/else au switch.

    Le support de sécurité de Java7 n'existe presque plus (il reste certains support en payant « coucou RedHat ») et celui de java 8 se termine bientôt (pour ce qui est de l'usage gratuit). Tu n'a pas une communauté qui te dis que c'est difficile pour elle de passer à Java10 donc ne t'embête pas à supporter des vieilleries.

    Il devait y avoir une méthode qui lançait Exception dedans à un moment, je pense…

    Ça reste une mauvaise pratique.

    Je pense que oui… Ceci dit, je ne pensais pas qu'on pouvais nuller un type primitif…

    On ne peux pas, mais on peut utiliser Integer.

    On utilise quoi, alors, à la place de System.out pour afficher quelque chose dans la console ?

    Un logger.

    En fait, c'est pour passer des paires de Strings, chaque paire étant une clef associée à une valeur. Si on passe deux tableaux de String, un pour les clefs, l'autre pour les valeurs, on perd le lien direct clef/valeur. Du coup, qu'est-ce que je peux utiliser à la place d'un tableau de tableau de String ?

    Une Map<String, String> (voir) comme en C++ (avec std::map) ou dans tous les autres langages.

  • [^] # Re: ... et pas qu'un ...

    Posté par  . En réponse au journal Du développement full-stack en Java. Évalué à 3.

    Je serais curieux de voir un tel toolkit de prés, pour peu qu'il soit un tant soi peu populaire…

    Donc la popularité devient un argument ? Tu souhaite sincèrement utiliser cet argument ? Mais soit, je ne suis pas un spécialiste, mais wikipedia liste Qt, MFC ou Cocoa (en regardant de plus près il semble chacun l'implémenter à leur façon Model/View pour Qt, MVVM pour Microsoft et MVC ou MVVM pour cocoa). Paille poutre…

  • # Désolé

    Posté par  . En réponse au journal Du développement full-stack en Java. Évalué à 10. Dernière modification le 03 août 2018 à 21:56.

    Sommaire

    Salut ! Je vais prendre le temps de te dire ce que je pense de ton approche :) Ça va peut être être rude, mais comprends bien que si je prends du temps pour écrire un commentaire c'est bien que je veux être constructif. De plus je distingue totalement ton travaille de la personne que tu es (c'est important). Mais il y a pas mal de choses à dire je trouve.

    Ton approche

    Background

    Tu connais le C++, tu vis le C++ en autarcie, tu nous explique à longueur de journée que les pratiques classiques comme les tests ne sont pas pour toi. En informatique comme ailleurs affirmer que l'on est plus malin/différents/le cas à part, c'est se tromper. Tu as des centaines de milliers de personnes dans le monde qui après une cinquantaine d'années à tenter de construire une certaine qualité logicielle. Arriver et dédaigner leur travail, par un « bof c'est pour les autres », c'est forcément se tromper. On exerce une science dure, pour affirmer des choses il faut avoir des arguments autre que « je fais de la factorisation poussée » (personne d'autre ne factorise ?). De tout ce que tu nous as décrit ça "fonctionne" parce que tu es le seul à coder et que tu accepte de voir très tard les bugs (tu reconstruit les autres logiciels et tu teste s'il plantent).

    Tu pars donc très très très mal : tu nous propose d'utiliser un code pas tester (yay !), mais pour quoi donc ?

    Objectif

    Tu ne sais faire que du C++, quelqu'un te demande de faire du web, tu fais du web en C++. Très bien. Mais la populace fais déjà du web avec un tas d'autres choses. Il va falloir nous donner une raison d'abandonner nos stack libres bien plus fiables que la tienne (dont le copyright est partagé, supporté par une communauté, testée, testée massivement,…).

    En plus du web, il existe un énorme paquet de techno qui apparaît. Ça signifie qu'il y a déjà énormément d'idées qui ont étaient essayée. D'autant que ça fais des années que ça dure !

    Tu ne nous a pas donné d'autres arguments sur le pourquoi utiliser ta pile autre que c'est du C++ et c'est simple… oui mais.

    Alternatives

    Tu n'a aucune idée de si c'est simple, tu en ai l'utilisateur-codeur et tu n'es même pas allé voir ce qui se fait ailleurs. On ne souffre pas la comparaison quand on en fait pas mais on va forcément la faire pour toi. Qu'est-ce que ça donne comparé à du CGI ? Qu'est-ce que ça donne face à Wt ? Pourquoi les gens choisiraient le code d'un développeur dans son garage (pas testé) par rapport à tout ce qui peut exister ailleurs ?

    J'ai parlé de techno C++, mais alors j'ai pas de doute qu'en PHP, Java et JS c'est pire encore.

    Finalement

    En vrai je ne sais pas pourquoi tu nous présente des plus ou moins portages dans d'autres langages, tu ne les utilise pas et tu n'explique pas en quoi les développeurs de ce langage gagneraient à utiliser ton code.

    Pire encore, tu nous parle d'une bibliothèque C++, je sais pas ce qu'elle fais. Si je vais voir http://atlastk.org/ (pas de https ?), tu nous dis que c'est du C++ donc c'est rapide. Si tu ne le corrobore pas avec des benchmarks c'est du vent. Tu nous explique pas en quoi ta bibliothèque est performante. Quelle archi est-ce que tu utilise ? Comment-est-ce que tu t'assure que tes bindings restent performant ? Tu connais netty ? C'est ce qui permet à Java d'être performant sur le réseau, il faut vraiment avoir des arguments pour pouvoir dire qu'on est plus performant que ça.

    La mise en œuvre

    D'un point de vu utilisateur

    Ton code nous montre du html dans des String. Donc on peut dire au revoir à la validation du html. On peut faire autrement ? Très bien montre nous et c'est là dessus qu'on évaluera si c'est facile ou pas. Tu nous montre aussi des manipulation de DOM, c'est affreux à utiliser… et c'est extrêmement lent ! C'est bien pour ça que toutes les techno utilisent un DOM virtuel… Aie…

    D'un point de vu conception

    Si je regarde Atlas.jar c'est ta classe principale, hein ? Tu as des chemins codés en dur dans ton code… C'est pas une question de java, il n'y a pas de langage dans le quel c'est une bonne pratique…

    Tu lance des Threads non managés. Tu ne les nettoie pas. Ton code explose, c'est une garantie.
    D'après toi qu'est-ce qui est affiché par ce code ?

    public void foo() {
        System.out.println("start");
        new Thread(() -> {
            try {
                Thread.sleep(1_000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("Hello");
        }).start();
        System.out.println("end");
    }

    Même si tu ne lançais un thread qu'à chaque connexion, ça exploserais à quelques dizaines de milliers de connexions. Le problème ce n'est pas que tu refuserais des connexions, mais bien que le serveur tombe à ce moment là…

    Tentons de voir s'il n'y a pas un truc que je rate dans ton code. Si je tente de lancer ton premier exemple :

    michel@MBA:/tmp/tmp.msaUgm9EXO % java -cp .:Atlas.jar Hello
    java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
        at java.awt.Desktop.checkActionSupport(Desktop.java:225)
        at java.awt.Desktop.browse(Desktop.java:381)
        at info.q37.xdhq.dom.DOM_DEMO.<init>(DOM_DEMO.java:154)
        at info.q37.xdhq.DOM.<init>(DOM.java:48)
        at info.q37.atlas.DOM.<init>(DOM.java:24)
        at info.q37.atlas.Atlas.<init>(Atlas.java:28)
        at Hello.<init>(Hello.java:3)
        at Hello.main(Hello.java:48)
    Exception in thread "Thread-0" java.lang.NullPointerException
        at info.q37.xdhq.DOM.getAction(DOM.java:62)
        at info.q37.atlas.Atlas.run(Atlas.java:38)
        at java.lang.Thread.run(Thread.java:748)
    

    Mais ça continue à s'exécuter, mais il n'écoute pas de port. Awt c'est une bibliothèque graphique, je ne sais pas ce que ça vient faire là, je pensais lancer un serveur web… Le code lance, une classe démo de ta bibliothèque ?…

    Je vais un peu plus loin. Tu tente silencieusement d'accéder à "http://atlastk.org/atlas.php?_token=c6f39490-1d1d-4e1d-9f21-b7eec4935e5d". Là ça commence à vraiment être mauvais tu piste potentiellement les gens qui utilisent ta techno…

    Bon je vais plus loin, en farfouillant ton code je vois qu'il y a un mode PROD face à un mode DEV ou DEMO (selon où on se trouve ça n'a pas le même nom…). En suivant des trucs et des bidules dans la classe XDH, je trouve la méthode statique isDev() qui vérifie que la variable d'environnement EPEIOS_SRC existe. Soit on va la positionner et voir ce que ça donne.

    michel@MBA:/tmp/tmp.msaUgm9EXO  [130]% EPEIOS_SRC=foo java -cp .:Atlas.jar Hello
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no jreq in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at info.q37.jreq.Wrapper.Init(JRE.java:56)
        at info.q37.jreq.JRE.register(JRE.java:67)
        at info.q37.xdhq.XDH_PROD.<clinit>(XDH_PROD.java:27)
        at info.q37.xdhq.XDH.launch(XDH.java:65)
        at info.q37.atlas.Atlas.launch(Atlas.java:135)
        at info.q37.atlas.Atlas.launch(Atlas.java:170)
        at Hello.main(Hello.java:45)
    

    Et c'est reparti…

    Tu tente de charger une bibliothèque "jreq" que je n'ai semble-t'il pas. Quand je lance ton truc dans mon debuggeur je tombe sur la classe Wrapper de la bibliothèque atlas), elle contient une méthode getLocation() dont voici l'implémentation :

    protected static String getLocation() {
        String var0 = System.getProperty("os.name").toLowerCase();
        if (System.getenv("EPEIOS_SRC") == null) {
            return "./";
        } else if (var0.contains("windows")) {
            return "h:/bin/";
        } else {
            return var0.contains("mac") ? "/Users/csimon/bin/" : "/home/csimon/bin/";
        }
    }

    Donc cette fameuse variable d'environnement sert à définir où se trouve des binaires (en plus de définir si on utilise le mode prod ou pas…), mais elle ne permet pas de choisir où ça se trouve soit on ne la définit pas et on lance le truc en démo et cherche le binaire dans le dossier courant (spoiler alert : même si j'avais pu lancer le browser, ça aurait planté), soit je la défini et faut que j'aille la chercher chez toi.

    Je vais m'arrêter là, je ne peux pas faire fonctionner ton truc sans patcher ta bibliothèque. Fais des tests, pour vérifier que ton truc peut se lancer. Si tu veux des conseils :

    • commence par utiliser un IDE java, il te listera un tas d'erreurs que tu fais
    • une fois que tu les aura toutes corrigée, joue avec sonarqube il t'en donnera d'autres
    • arrête définitivement les chemins en dur où que ce soit
    • segmente les choses si pour toi factoriser c'est donner 2 sémantiques à une même variable, c'est vraiment un problème (et je t'en donne l'exemple ci-dessus)
    • même si tout ça avait fonctionné je suis certain de faire exploser le serveur sans problème vu la gestion des threads
    • lis la doc des API que tu utilise, pour le plantage que j'ai en mode démo, tu aurais pu le corrigé si tu avais lu la seule ligne de la doc en question. Pour être magnanime voici le code qui pourrait corriger ça : https://github.com/chatty/chatty/issues/17

    Pour ma première partie :

    • garde l'humilité d'aller voir ce qui se fait ailleurs
    • si tu veux qu'on passe du temps à apprendre ton truc explique nous ce qu'il a de plus et être en C++ ça n'est pas une bonne raison (surtout si c'est pour tout coder en java)

    J'ai passé du temps a regarder ce que tu as fais et à rédiger mon commentaire (il est mieux construit au début qu'à la fin, mais c'est la fatigue), je suis réellement allé cherché ton code et j'ai tenté de le lancer. Comprends que si ton truc ne marche pas en y aillant passé environ 1h30 à 2h, c'est qu'il y a un vrai problème. Je connais le java et je peux aller voir ce qu'il s'y passe. J'aurais pu lancer n'importe quel hello world vu, angular, react, elm, python ou brainfuck en 10 minutes. En terme de qualité c'est très loin de ce que l'on peut attendre d'un truc qu'on voudrait réutiliser (dans un cadre professionnel ou pas).

  • [^] # Re: digital, vraiment ?

    Posté par  . En réponse au journal Pollution numérique. Évalué à 3.

    Maintenant, si quelque part j'ai laissé entendre que c'est mal, ce n'était pas mon but.

    La façon de le présenter ("aujourd'hui on a besoin d'un gros CPU, parce qu'on a du js partout") m'a fait penser que tu reprochais aux applications web d'être lourdes par définition.

    Si ce n'est pas le cas tant mieux ^^ mon détecteur de js bashing dit être mal configuré.

  • [^] # Re: digital, vraiment ?

    Posté par  . En réponse au journal Pollution numérique. Évalué à 0.

    avec du javascript dans tous les coins

    Cette peur irrationnelle du js est intéressante. Il s'est passé quelque chose pendant ton enfance ? Très parents t'ont raconté des histoires sur le monstre Netscape qui vit sous le lit ?

    Qu'il existe des applications js malfoutues, n'implique pas que c'est js qui est fautif. Sinon on pourrait dire la même chose de C++ ou python en listant des applis d'exemples.

    Se réclamer à contre courant et ne pas aller plus loin que aller contre le courant (au lieu d'élever le niveau de réflexion), c'est dommage. Les positions dogmatiques que l'on voit énormément ici comme c'est js donc c'est mal ou il y a un gc donc c'est mal sont assez lassant. Des gens ne font pas comme vous, essayez de comprendre pourquoi plutôt que d'imaginer de facto que vous êtes plus malins qu'eux ou si vous ne souhaitez pas perdre votre temps à essayer de les comprendre passez votre chemin, vous perdrez moins de temps.

  • [^] # Re: Kotlin

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 1.

    Ça va, les gens savent installer une application native quand ils veulent.

    Ils veulent pour ton appli? Tu t'appelles google ou doodle? Moi j'ai pas la place pour installer la moindre application que je vais utiliser une seule fois.

    Car tu crois qu'un site web universellement compatible cela est aussi facile à faire que de pondre une application multiplateforme ?

    Pas plus qu'avec un toolkit natif.

    Avec Qt tu peux faire une application sur les plateformes que tu cites. Pas sûr que cela demande plus de travail qu'une version full web.

    Bof c'est peut être aussi simple avec qml qu'avec du html/css, soit. Maintenant gère tes 5 builds (tant pis pour Blackberry et Windows mobile) un déploiement sur 2 à 3 stores et on parle de comment ça va se passer sur linux ?… Pas trop de travaille tu dis ? D'ailleurs tu le génère comment ton ipa ?

    L'API du web (ou l'écosystème de ses frameworks) est aussi très changeant, c'est un monde qui évolue vite contrairement à celui de l'OS. Donc niveau maintenance ce n'est pas une mince affaire que de gérer une application Web.

    Il y a pleins de nouveautés oui, mais niveau compatibilité dans le temps il n'y a aucun problème. Prends un site d'archives d'internet et voit ce que ça donne avec ton navigateur bleeding edge. Par contre oui il faut gérer la compatibilité gecko, blink et celui de edge, mais d'expérience pour ce que j'ai voulu en faire ça se fait plutôt bien. Tu me parle d'évolution des techno mais quel âge a QML, déjà ?

  • [^] # Re: Kotlin

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 1.

    La possibilité d'avoir deux fenètres d'une application placées chacune sur son écran. La possibilité de regrouper des applications sur des bureaux différents.

    Rien à voir avec les toolkits graphiques. Tu peux très bien faire ça avec n'importe quel que web. Tu prends ton navigateur (Firefox, Chrome, surf ou uzbl par exemple). Tu le lance avec les bonnes portions et tu as une fenêtre unique que tu manipuler comme une application. Séparé de ta navigation web classique (sur Chrome ça s'appelle l'app mode, Mozilla avait un navigateur fais pour ça, mais maintenant tu peux le faire via des paramètres en cli).

    Ne pas avoir un firefox collé au taquet parce qu'une de ces applis web passe son temps à crapauter on ne sais quoi dans son coin.

    Quelqu'un qui fais une appli lourde en js, ferais une appli lourde en c++ aussi. Il ne faut pas blâmer la techno quand c'est le dev qui fait n'importe quoi. Une conception pourrie l'est aussi bien en js qu'en rust.

  • [^] # Re: Kotlin

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 2.

    C'est un autre débat, mais :

    • peu de gens se motivent à installer ton application native alors que cliquer sur un lien même madame michu sait faire
    • ton projet perso, tu le code et le maintiens sur Windows, MacOS, Linux, Android et iOS ou tu fais une version web
    • quels ont étaient les innovations de ces 10 dernières années dans les toolkits graphiques natifs (choisi celui que tu veux libre ou pas multi plateforme ou pas) pour l'utilisateur. Si tu as ça m'intéresse parce que j'ai rien vu d'intéressant, mis à par Windows pour PC et mobile avec les tuiles qui apportent un nouveau concept (ça n'a pas beaucoup plus sur PC, mais j'ai vu des widgets sympas sur téléphone) et quelques trucs lié au ruban

    C'est affreux c'est triste ça ne permet pas d'avoir du code taillé comme un diamant. Ça ne va pas du tout avec la philosophie de ta machine configurée au poil, mais c'est le plus petit dénominateur commun et c'est ce qui demande le moins de travaille. Tant qu'il n'y aura pas d'autres alternatives, ça devrait logiquement rester en place. Mais libre à toi d'y accéder avec une instance de surf pour qu'à minima ça soit fenetré.

  • [^] # Re: Et Python ? Et Emacs ?

    Posté par  . En réponse au journal Fins de tabulation élastiques: la bonne manière d'indenter et d'aligner le code. Évalué à 1.

    C'est l'exception qui rend tout ce concept caduque, […]

    Le fait que make force des tabulations as t'il empêcher python de pousser les espaces ?

  • [^] # Re: GTK+ / gObject ?

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 8.

    Pour gtk, l'objectif ce n'est pas de faire de l'objet en C, mais de définir des abstractions indépendante du langage. Ainsi ils ont pu générer des bindings, vers pleins de langages automatiquement. Le C est alors intéressant car :

    • presque tous les langages savent s'y associer
    • d'un point de vu expressivité le c représente un minimal implémenté par tous les autres langages. Donc si tu fais une abstraction en C, tu devrais pouvoir la reproduire dans n'importe quel langage (si elle n'existe pas déjà)
  • [^] # Re: aligner tabuler

    Posté par  . En réponse au journal Fins de tabulation élastiques: la bonne manière d'indenter et d'aligner le code. Évalué à 4.

    Ou juste respirer un bon coup et faire la part des choses. Le communication asynchrones en publish-subscribe te permet :

    • de prendre du recul avant de répondre (merci l'asynchrone)
    • d'ignorer le message (des ack en publish-subscribe ça n'a pas de sens)

    Ce qui est dit ici ne changera pas le cours de ta vie. Si quelqu'un a tort ça n'est pas grave, c'est même son droit. C'est l'été (dans l'hémisphère nord), il faut chaud. Aller se baigner (ou à minima prendre une douche) est bien plus pertinent que tout ce qui peut être dis ici. Faut remettre les choses dans leur contexte et arrêter de dramatiser tout et n'importe quoi.

    Ce message te répond car tu as l'air particulièrement affecté, mais il concerne aussi bien les malins qui vocifèrent plus haut. Quand on en vient à faire s'autoexclure quelqu'un parce que les tabulations ne sont pas de la bonne taille, je pense qu'il peut être intéressant de se poser la question du sens de ce que l'on est entrain de faire.

  • [^] # Re: aligner tabuler

    Posté par  . En réponse au journal Fins de tabulation élastiques: la bonne manière d'indenter et d'aligner le code. Évalué à -3.

    à coups d’espace, ce qui apparemment est mal, très mal (ce serait même une des causes de tous les maux de l’informatique moderne, tous ces développeurs qui perdent leur temps à faire de l’ASCII art au lieu d’utiliser les bons caractères pour la bonne tâche).

    T'es génial. Tu commence par venir avec tes gros sabots expliquer ta règle intouchable et maintenant tu te pleins que d'autres sont comme toi mais pas avec les même idées.

    Et maintenant tu t'enerve alors qu'en vrai, on s'en fou. Ton langage te donne une règle, tu l'applique, sinon tu en choisie une et tu la décrit comme une règle de ton projet. Ça marche et le monde ne s'arrête pas parce que tu va utiliser \t (de 4 ou de 8), des espaces ou bien un caractère que tu choisi dans les tables unicodes privées.

    Faut arrêter de se prendre la tête pour ce genre de considération. Il y a largement plus important.

  • [^] # Re: Et Python ? Et Emacs ?

    Posté par  . En réponse au journal Fins de tabulation élastiques: la bonne manière d'indenter et d'aligner le code. Évalué à 3.

    On s'en fou de python ? Tu va nous expliquer qu'en whitespace ça ne fonctionne pas ? Avoir des règles différentes par type de fichier c'est monnaie courante et heureusement parce que ça permet d'utiliser la pep8 pour python et continuer d'utiliser make… Pratique, non ?

  • [^] # Re: Rust et SIMD

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 0.

    Plus j'y réfléchis et moins je me suis que ça ressemble. Le modèle de messagerie est très différents. Un channel ne normalise pas les messages là où dans un système d'acteur ça l'est. Ce n'est pas un détail car c'est ce qui permet de gérer les dead letter. Un système d'acteur utiliser du one-to-many, là où go fais du one-to-one. C'est critique pour la répartition de charge. Si tu ne fais que du one-to-one comment fais tu scaler ton système ? Augmenter le nombre d'instances d'un acteur n'est pas anodin.

    Bien sûr qu'on peut stimuler, on peut implémenter les acteurs dans probablement tous les langages, mais il manque de base des bois suffisamment important pour ne pas pouvoir dire que c'est un modèle d'acteur. Tout comme on ne peut pas dire que java est un langage fonctionnel.

  • [^] # Re: Kotlin

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 1.

    Tellement incontournable qu'il a fallu que tu la donné, c'est ça ?

  • [^] # Re: À la fois troll, à la fois fait divers

    Posté par  . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 1. Dernière modification le 30 juillet 2018 à 12:47.

    ScyllaDb ? Je ne sais pas où ça en est mais au début ils avaient des problèmes de résilience (ce qui est dommage pour une base de données sont c'est le principal intérêt). Mais c'était il y a 3 ans ça a pu évoluer.

    Mais je suis d'accord que c'est pas CPU bound. C'est pour ça que le C++ n'a pas un si grand intérêt amha et que Cassandra vie toujours très bien malgré l'arrivée de Scylla