SpaceFox a écrit 1760 commentaires

  • [^] # Mise à jour dans l'article

    Posté par  (site web personnel, Mastodon) . En réponse au lien Pepper&Carrot (heavy) derivation: the case of the succesful Bulgarian book publishing by Prikazka-Ig. Évalué à 5. Dernière modification le 12 octobre 2022 à 15:04.

    L'article a été mis à jour avec des compléments culturels par l'équipe bulgare, l'auteur lui-même est rassuré. Je vous laisse re-cliquer sur le lien pour les détails.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Même pour les « valides »

    Posté par  (site web personnel, Mastodon) . En réponse au lien Captcha, écrans tactiles... : ces technologies qui empoisonnent la vie des déficients visuels. Évalué à 5.

    Je suis grand aussi, je comprends parfaitement qu'il y ait besoin que des équipements soient accessibles aux personnes de petite taille ou en fauteuil roulant.

    Ce que je trouve dommage, c'est ces cas d'équipements multiples qui sont tous adaptés pour un usage de ce type, et donc sont tous pénibles d'accès pour les grands. Et même inaccessibles pour quelqu'un de grand avec un problème de dos, en réalité. Ça fait partie des cas où en voulant résoudre un problème réel d'accessibilité, on en a créé un nouveau.

    Je pense par exemple à ce centre commercial ouù il aurait suffit de mettre les trois distributeurs à des hauteurs différentes.

    La connaissance libre : https://zestedesavoir.com

  • [^] # En passant par USB…

    Posté par  (site web personnel, Mastodon) . En réponse au journal Brother ne mettra pas à jour les micrologiciels des imprimantes qui utilisent TLS 1.0. Évalué à 5.

    Il y a toujours la possibilité de mettre à jour le firmware en passant par le port USB. Mais ça nécessite un PC sous Windows ou un Mac, officiellement de désactiver les antivirus et firewall (je suppose qu'en fait c'est pour se prémunir des systèmes trop restrictifs), et surtout ça nécessite d'être sur place.

    D'autre part, le dernier firmware de ce modèle date de mars 2018, si l'installation avait été faite à l'époque elle n'aurait posé aucun problème.

    La connaissance libre : https://zestedesavoir.com

  • # Un coup dur pour Linux sur desktop

    Posté par  (site web personnel, Mastodon) . En réponse au lien Fedora Linux Disabling Mesa's H.264 / H.265 / VC1 VA-API Support Over Legal Concerns - phoronix. Évalué à 5. Dernière modification le 28 septembre 2022 à 11:33.

    Ça c’est un coup dur, j’espère qu’ils vont finir par trouver une solution. Parce qu’aujourd’hui, l’absence de décodage matériel sur ces codecs est un vrai handicap pour une utilisation desktop. S’il reste le décodage logiciel, c’est beaucoup moins efficace, surtout sur les contenus en très haute définition.

    A-t-on une idée de comment cette décision va devoir être répercutée par d’autres distributions ?

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Correction

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Pétrolette 1.6. Évalué à 8.

    C’est vrai que les réactions ici sont en mode dramatique par rapport au problème réel engendré par les corrections non voulues ici.

    Par contre, je me suis aussi retrouvé avec des modifications difficiles à comprendre suite au passage de mes dépêches en modération. Honnêtement c’est des modifications à la marge, mais c’est toujours désagréable de se voir attribuer en son nom un texte qui contient des ajouts avec lequel on est pas d’accord.

    Dans les cas auxquels j’ai été confronté, c’était des détails, mais c’est toujours bizarre de se dire « WTF » devant une modification éditoriale. Pour être précis, j’ai eu un cas ou toute l’orthographe post-réforme-1990 a été « corrigée » en vieille orthographe, et l’ajout de l’insert « (en non-libre) » dans cette note de bas de page que je ne m’explique pas.

    Le sujet avait déjà été soulevé en commentaires de rédaction de je ne sais plus quelle dépêche, mais ces modifications ne sont pas autorisées par défaut par les licences libres. Celles-ci – en particulier les Creative Commons BY (éventuellement CA), choisies par défaut sur linuxfr.org – autorisent la création d’œuvres dérivées sans prétendre que le dérivé est approuvé par l’auteur d’origine, mais pas les correctifs dans l’œuvre d’origine.

    Vient ensuite la problématique de la correction éditoriale, qui est nécessaire ne serait-ce que pour éviter les grosses fautes et la typographie aléatoire. Il faut donc que les éditeurs soient autorisés à corriger les publications :

    1. Soit directement, en ajoutant une précision dans les conditions d’utilisation du site ;
    2. Soit en autorisant les auteurs à mettre le dernier coup de tampon avant publication.

    Je ne crois pas que l’exception (1) soit dans les conditions d’utilisation du site.

    La gestion telle que (2) correspond à ce qui était fait sur le Site du Zéro et est toujours fait sur Zeste de Savoir. Les éditeurs ne corrigent pas directement le texte, ou bien demandent explicitement l’autorisation à l’auteur de corriger les typo. Et surtout, l’auteur peut relire la version corrigée avant publication s’il le désire. Le principal problème, c’est que ça rallonge le processus de publication, surtout si l’auteur est peu disponible ou peu coopératif. Sur linuxfr.org, c’est encore plus compliqué parce qu’il n’y a aucun système de messagerie privée qui permettrait facilement de discuter de la dépêche en cours d’édition.

    Je pense à titre personnel que, dans le cas des dépêches non collaboratives, le processus d’édition gagnerait à être plus transparent. En particulier, toute modification qui n’est pas purement cosmétique mériterait d’être validée par les auteurs concernés, pour éviter de créer des contresens involontaires.

    Mon voisin du dessus semble dire que les dépêches collaboratives ne sont pas soumises à édition privée, est-ce bien le cas ? Si oui, ça résoudrait facilement le problème, on pourrait juste dire à la création : « Si vous rédigez une dépêche privée, vous donnez l’autorisation aux éditeurs de faire toutes les corrections nécessaires ; si ça ne vous va pas, faites une dépêche collaborative ou un journal ».

    Enfin, si le problème est mineur, pour moi il existe quand même, je trouverais dommage de le nier simplement parce que quelqu’un le désigne de la mauvaise manière.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: en tout trois vidéos

    Posté par  (site web personnel, Mastodon) . En réponse au lien Le marché de l'électricité (chaîne Heu?reka). Évalué à 2. Dernière modification le 27 septembre 2022 à 00:51.

    (doublon)

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: en tout trois vidéos

    Posté par  (site web personnel, Mastodon) . En réponse au lien Le marché de l'électricité (chaîne Heu?reka). Évalué à 4.

    Une chaîne entière sur ce sujet, en fait. Par un ancien trader.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Bof

    Posté par  (site web personnel, Mastodon) . En réponse au lien La « configuration » par langage dédié (DSL), une invention de Satan. Évalué à 1.

    mais que dire que dès que tu es multi-dépôts ça ne marche pas c'est faux

    Encore une fois, tu inventes un élément et tu réponds à cet élément. Mon propos, c’est qu’on doit bidouiller, pas que « ça ne marche pas ».

    Ici, j’ai dû bidouiller parce que mon besoin ne rentrait pas dans les cases prévues : le plugin ne peut s’authentifier qu’à un seul dépôt (et crée un fichier de configuration dédié, donc enchâsser les configurations l’une dans l’autre ne fonctionne pas). Il y bien un plugin qui le permet, mais c’est pas celui qui est installé sur le serveur Jenkins et qu’on utilise pour tout le reste. Et c’est pas un plugin exotique, hein, c’est les standards.

    Mais en fait on s’en fout, c’est qu’un exemple. Je ne viens pas ici pour demander comment faire ce truc en particulier.

    Alors oui, dans un monde parfait, théorique et tout, je me serais contenté d’utiliser le plugin qui va bien dans Jenkins et tout aurait été parfait, doux et rose. Mais justement, on est pas dans un monde théorique et je dois composer avec des contraintes extérieures. Et c’est précisément là que le bât blesse : trop souvent ces outils de configuration par DSL partent du principe que tu es en Théorie, ne sont pas conçus pour gérer autre chose, et dès que tu t’en éloignes c’est l’enfer.

    Et ça n’est pas la peine de venir expliquer qu’il suffit de changer d’outil ou de rentrer dans une configuration « standard » : le problème est précisément quand on ne peut pas faire ce genre de chose, quelle qu’en soit la raison.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Bof

    Posté par  (site web personnel, Mastodon) . En réponse au lien La « configuration » par langage dédié (DSL), une invention de Satan. Évalué à 3. Dernière modification le 26 septembre 2022 à 14:59.

    Ce n'était pas ma volonté, mais quand j'entends « projet sur le quel on a pas la main » c'est généralement pour expliquer que la dette technique elle est chère etc.

    Je ne parle pas de projet sur lesquels on a pas la main mais de cas sur lesquels on a pas la main. C’est plus général que le simple projet, ça implique des règles internes à l’entreprise, etc.

    Je ne vois pas comment c'est expliquable (autrement que par de l'incompétence1). Donne leur le build tool que tu veux ils feront n'importe quoi avec. D'ailleurs être en mesure de sortir ça avec maven, ça me fait peur d'imaginer ce que ça pourrait donner avec gradle.

    C’était un exemple pour te montrer que « n’importe quoi » n’implique pas « vieux projet » ou « technologies pourries », et réciproquement. Et oui, ce truc est débile et impossible à maintenir en l’état.

    On gère ça avec une properties dockerRepository qu'on set comme on le souhaite. On a pas de nightly, mais dev par défaut, qlf on surcharge via la CLI et release c'est reset dans un completion goal du release prepare. Ça convient peut être pas chez vous.

    Là encore, fais des suppositions, puis tu tires des conclusions à partir des suppositions que tu as tirées – qui sont donc fausses. D’une part le problème n’est pas l’URL du dépôt mais l’identification ; d’autre part ça concerne Jenkins et pas Docker, donc « une properties » n’est pas une solution utilisable (en tous cas pas de façon simple sans dupliquer une tâche).

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Bof

    Posté par  (site web personnel, Mastodon) . En réponse au lien La « configuration » par langage dédié (DSL), une invention de Satan. Évalué à 3.

    Tu déformes mon propos et tu réponds à la déformation, on ne va pas aller loin comme ça.

    Le problème des « cases » n'est pas « les vieilles technologies ». D'ailleurs le pire pom.xml que j'ai croisé (près de 10 000 – dix mille – lignes était un projet qui avait quatre ans, en Java 11, et qui respectait la structure habituelle des projets Maven.

    Non, quand je parle de « cases » qui sont trop petites et qui nécessitent des contournements, il ne faut pas aller chercher loin. Par exemple, avoir trois dépôts Docker séparés pour les builds snapshot / release / nightly.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Les trucs plus anciens

    Posté par  (site web personnel, Mastodon) . En réponse au journal Ces langages avec lesquels il faut tout réécrire. Évalué à 7. Dernière modification le 26 septembre 2022 à 12:09.

    Le seul truc positif que je retiens : on était obligés de coder en français, et le C# (celui de M$ uniquement ?) autorise les caractères accentués dans les identifiants. Indispensable pour conjuguer et accorder, ce qui n'existe pas (pas totalement) en anglais. D'autres langages permettent ça ?

    SQL (au moins PostgreSQL) et la JVM (au moins Java et Kotlin). On peut même utiliser des emojis ! (Ne faites pas ça !)

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Bof

    Posté par  (site web personnel, Mastodon) . En réponse au lien La « configuration » par langage dédié (DSL), une invention de Satan. Évalué à 2.

    Note qu’au moins une configuration par langage déclaratif ne te promet pas de pouvoir exécuter du code arbitraire, à effort égal ça force un système mieux documenté et plus complet. Les DSL, eux, se retrouvent avec beaucoup de « solutions » qui sont du type « utilise ce bout de code dégueu qui fait approximativement ce que tu demandes », et le problème d’origine n’est jamais résolu.

    Pour le build simple, je suis d’accord en théorie. Sauf qu’on ne bosse pas uniquement sur des projets récents et/ou dont on a maitrisé l’architecture de A à Z. En fait, je pense même que le problème source de ce genre d’outils est précisément là : ils sont conçus pour ce cas de build simple où tu rentres très exactement dans les cases prévues, mais pas pour la vie réelle où tu as des cas plus complexes sur lesquels tu n’as pas la main.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: La fin de la "stabilite" des standards ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien It's time to stop using C and C++ for new projects, says Microsoft Azure CTO. Évalué à 5.

    Je fais une différence entre « essayer de de pas consommer comme un sac en faisant n’importe quoi » et « la majorité de l’effort sur mon projet concerne les performances ».

    Ce que j’appelle « orienté performances », c’est ce deuxième cas, où tu es obligé d’utiliser des langages qui te permettent une gestion fine des ressources sans quoi le résultat est vraiment déraisonnable.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: La fin de la "stabilite" des standards ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien It's time to stop using C and C++ for new projects, says Microsoft Azure CTO. Évalué à 4.

    C’est pas du tout mon propos : Java, C#/Mono ou Python sont d’excellents langages dans leurs domaines d’application, surtout dans leurs dernières versions ; et comme dit ci-dessus, ils évoluent assez rapidement.

    Non, mon propos, c’est que je suis étonné que l’on puisse proposer ces langages pour remplacer C ou C++.

    Je sais par exemple que C# ou Java ont pu remplacer les utilisations les plus « haut niveau » de C++, mais pour moi aucun des langages de la liste n’a jamais été un candidat sérieux au remplacement de C++ pour les projets orienté performance, et encore moins au remplacement de C.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: La fin de la "stabilite" des standards ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien It's time to stop using C and C++ for new projects, says Microsoft Azure CTO. Évalué à 5.

    Il y a vraiment des gens qui ont conseillé (ou conseillent toujours) d’utiliser Java, C#/Mono ou Python pour remplacer C++ et surtout C ?

    Parce que c’est pas les mêmes domaines d’application !

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Un train qui arrive à l’heure

    Posté par  (site web personnel, Mastodon) . En réponse au journal Tout le monde (ou plutôt, trop de gens) semble se foutre des licences en 2022. Évalué à 8.

    C’est déjà libre : c’est Gradle Licence Report couplé à une tâche d’intégration continue.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Touche compose

    Posté par  (site web personnel, Mastodon) . En réponse au journal Un libriste en approfondissement. Évalué à 5.

    BÉPO, c’est bien aussi.

    Par contre le jour où tu es coincé sur un QWERTY au lieu de ton BÉPO, bon courage pour retrouver la façon de taper ton mot de passe.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Clauses anticapitalistes, antimilitaires, etc.

    Posté par  (site web personnel, Mastodon) . En réponse au journal Tout le monde (ou plutôt, trop de gens) semble se foutre des licences en 2022. Évalué à 10.

    C'est intéressant de constater à quel point on peut être intéressé par le logiciel libre et pourtant avoir des vues totalement différentes sur la question et les moyens.

    Par exemple, je diffuse presque tout mon code perso en libre (modulo des trucs par pure flemme, j'assume), et quand je le fais c'est sous licence MIT. Qui, de mon point de vue (et je comprends qu'on puisse en avoir un autre), a deux intérêts majeurs :

    1. Elle ne force pas les utilisateurs à partager mes opinions sur un point quelconque, copyleft compris ;
    2. Je la comprends.

    Alors oui, on peut utiliser mon code pour faire des truc pas cool avec, mais je considère que les bénéfices potentiels de l'ouverture la plus grave possible surpassent les inconvénients de licences plus restrictives. De plus, j'utilise beaucoup de code tiers y compris au boulot, je trouverais hypocrite de publier sur mon temps libre du code que je m'interdirais moi-même d'utiliser. Enfin, ça ne change rien pour moi, seulement pour les tiers.

    J'ai hésité avec les licences BSD (mais y'en a 2 variantes), la WTFPL (mais difficile à utiliser ne serait-ce qu'à cause du nom) et la licence Apache 2.0 (mais infiniment plus longue sans que je ne réussisse à comprendre pourquoi).

    Idem pour tout ce qui est non-code, c'est sous licence CC BY ("BY" pour éviter qu'on ne m'attribue des propos ou œuvres que je ne cautionnerais pas : qu'on reprenne ce que je fais, OK, mais qu'on ne me fasse pas dire ce que je ne dis pas). Ce qui m'oblige à préciser la licence sous les billets et dépêches publiées ici, d'ailleurs.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Un train qui arrive à l’heure

    Posté par  (site web personnel, Mastodon) . En réponse au journal Tout le monde (ou plutôt, trop de gens) semble se foutre des licences en 2022. Évalué à 10.

    Et même sans la moindre considération de liberté : les fonds de carte OpenStreetMap sont très corrects, ceux de Google Maps sont absolument inutilisables (et je soupçonne que ça soit volontaire) : manque de contraste, manque de beaucoup d’informations (à commencer par les noms de rue), présence de « points d’intérêt » parasite (principalement les commerces)…

    La connaissance libre : https://zestedesavoir.com

  • # Un train qui arrive à l’heure

    Posté par  (site web personnel, Mastodon) . En réponse au journal Tout le monde (ou plutôt, trop de gens) semble se foutre des licences en 2022. Évalué à 10.

    Parce que c’est bien aussi de parler des trains qui arrivent à l’heure : je bosse dans une entreprise (de taille moyenne) qui s’intéresse aux licence et qui les respecte.

    Ça implique, en particulier, qu’il y a un robot qui va scanner toutes les dépendances des projets et va chercher les dépendances en fonction de la version (au cas ou la licence changerait, ce qui est en fait assez courant), et qui interdit l’utilisation de toute licence qui n’est pas dans la liste des licences compatibles avec le code (fermé, hélas) qu’on produit. S’il arrive que la licence soit mal déclarée dans les métadonnées (ça aussi, c’est fréquent) on peut fournir directement le lien vers la licence.

    D’autre part, on a toute liberté pour contribuer aux projets libres qu’on utilise, parce qu’on préfère infiniment utiliser une version supportée que maintenir un fork – comme le code qui a de la valeur pour l’entreprise n’est pas dans des bibliothèques externes, je n’ai pas connaissance de cas où ça ait posé problème. Par contre, tout le monde n’a pas encore le réflexe de se dire qu’un bug peut être corrigé upstream au lieu d’être contourné (de façon plus ou moins propre).

    Ça change d’un précédent boulot où le directeur et co-fondateur considérait que si c’était sur Internet, il pouvait l’utiliser comme il voulait…

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Un pavé dans la mare

    Posté par  (site web personnel, Mastodon) . En réponse au lien les drones utilisent linux : le logiciel libre ce n’est pas suffisant. Évalué à 5.

    Je serais curieux de savoir combien de fois ce débat sur la définition de "libre" à eu lieu sur ce site. Le chiffre doit commencer à être impressionnant !

    Cela dit, la position de la FSF est assez peu critiquée alors qu'elle est paradoxale : cette association est capable d'extrémisme quand il s'agit de logiciel libre (et quelque part c'est son rôle), mais totalement absente de tous les autres domaines du libre – quand elle n'en nie pas complètement l'existence.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Le but d’un GC n’a jamais été les performances

    Posté par  (site web personnel, Mastodon) . En réponse au journal Performances et GC : détruisons les mythes. Évalué à 4. Dernière modification le 19 septembre 2022 à 11:47.

    La possibilité de pouvoir rendre de la mémoire à l’OS fait partie des possibilités des nouveaux GC de Java dont je parlais dans un autre message. Cf cet article pour plus de détails. G1 GC est le GC par défaut de Java depuis Java 9 et le fait avec les réglages par défaut (et a été amélioré sur ce point depuis Java 12).

    D’une façon plus générale, Java est un langage qui évolue significativement : des connaissances sur le langage qui datent de 10 ans datent d’avant Java 8 ; on ne code plus en Java maintenant comme il y a 10 ans, idem pour tous les paramétrages possibles (les GC par exemple). D’ailleurs, beaucoup des critiques contre Java ont été justifiées à une époque, mais n’ont plus tellement lieu d’être aujourd’hui.

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Le but d’un GC n’a jamais été les performances

    Posté par  (site web personnel, Mastodon) . En réponse au journal Performances et GC : détruisons les mythes. Évalué à 8.

    D’ailleurs les GC de Java sont liés aux implémentations et pas au langage lui-même, et il en sort régulièrement de nouveaux. Les raisons de ces nouveaux GC sont diverses :

    • Meilleure prise en compte des spécificités du matériel actuel ;
    • Meilleure efficacité « dans le cas général » (suite à des travaux de recherche) ;
    • GC spécialisés pour des cas particuliers (très gros heap, GC no-op pour les scripts, etc).

    C’est d’autant plus perturbant que le GC par défaut peut changer, être déprécié ou même supprimé, ce qui rends plein de trucs complètement inutiles.

    Je ne sais pas si les autres langages sont aussi souples sur la gestion de leur GC.

    La connaissance libre : https://zestedesavoir.com

  • # Le but d’un GC n’a jamais été les performances

    Posté par  (site web personnel, Mastodon) . En réponse au journal Performances et GC : détruisons les mythes. Évalué à 10.

    Dans la plupart des cas, l’intérêt d’avoir un GC dans le langage, c’est de ne pas avoir à gérer la mémoire. Et donc :

    • D’avoir un code plus lisible (puisqu’il n’y a pas à écrire de code pour la gestion manuelle de la mémoire).
    • D’éviter toutes les catégories de bugs et de failles de sécurité qui arrivent parce que la mémoire a (mal) été gérée à la main.

    Mais oui, ça se fait au dépend des performances : même dans le cas où le GC ne nettoie jamais rien, le simple fait de lui permettre de pouvoir passer un jour ajoute une surcharge de travail au système. C’est au point qu’on considère qu’en première approche, un GC doit passer le moins souvent possible – sauf si le passer rarement provoque un blocage complet du système si long que la solution n’est plus applicable.

    D’autre part, des techniques de programmation orienté sûreté ou fiabilité ont un impact négatif sur la pression mémoire. Par exemple les objets immutables ont beaucoup d’avantages, mais peuvent vite conduire à la création d’une grande quantité d’objets, qui devront être gérés par le GC même si leur vie est très courte (et donc n’utilisent pas significativement plus de mémoire que leur pendants mutables).

    En fait, si le GC devient un problème pour les performances, ça peut vouloir dire trois choses :

    1. Il y a vraiment pas assez de mémoire disponible et le GC passe son temps à nettoyer en boucle les quelques pourcents de mémoire qui peuvent l’être ;
    2. Soit le code est très mal branlé et surcharge inutilement le GC – généralement suite à une fuite mémoire, parce que trop souvent on confonds le GC avec de la magie ;
    3. Soit il y a un besoin réel de performances sur la mémoire que le langage ne peut pas résoudre sans y allouer une quantité déraisonnable de mémoire.

    Le point 1 se détecte facilement en espionnant l’utilisation mémoire et l’activité du GC pendant l’exécution du programme ; le point 2 en analysant un dump mémoire qui contient plein d’objets qui ne devrait pas y être. Ça ne veut pas dire que ces points sont faciles à corriger.

    Le point 3 peut très rarement se corriger avec des bidouilles de code ; en en particulier ne peut jamais se corriger efficacement avec des magouilles lourdes du type de celles présentées dans l’article, parce que dans ce cas on a le pire des deux mondes : un code difficile à comprendre (donc à maintenir et sujet à bugs) et la surcharge d’un GC. De plus, beaucoup de ces magouilles (au moins en Java, langage que je connais le mieux) sont au mieux obsolètes : le compilateur puis le GC arrivent très bien à comprendre ce qu’il faut faire sans ces indications, qui sont donc superflues et alourdissent le code pour rien.

    Enfin, les problèmes de GC sont très dépendants du contexte exact d’exécution. Sur ce point, j’ai énormément de mal à faire confiance à des microbenchmark.

    Je ne prétends pas avoir un métier représentatif, mais en 12 ans à faire du Java de façon professionnelle sur des sujets variés (y compris de l’Android), tous les problèmes de pression mémoire que j’ai rencontrés tombent dans les deux premiers cas. Je dirais trois quarts tiers de fuites mémoire et un quart de manque réel de mémoire dans le paramétrage, à la louche (souvent suite à des jeux de données irréaliste avant d’arriver en production). Et même au-delà de ça, les problèmes d’occupation mémoire que j’ai croisés sont plutôt rares, sauf sur les vieux Android : le facteur limitant des programmes que j’ai croisés sont généralement les I/O1, ou des grosses erreurs de programmation (ne me faites pas dire ce que je ne dis pas : bien sûr qu’on aurait pu faire plus rapide avec d’autres langages, mais sur les cas que j’ai croisé, une fois les erreurs de programmation corrigées, on a toujours été suffisamment rapides).

    En conclusion, lorsqu’on utilise un langage à GC, on devrait s’astreindre à conserver un code le plus lisible possible, et à ne faire des bizarreries pour gérer la mémoire que de façon très exceptionnelle et dans des contextes où il a été prouvé, en conditions réelles, que l’impact vaut la perte de lisibilité.


    1. Exception : un progicel IBM – maintenant revendu – qui était programmé en allant tellement loin dans le genre Serious Enterprise Programing caricatural qu’il arrivait à être limité par le CPU. Mais le code était vraiment horrible pour en arriver là. 

    La connaissance libre : https://zestedesavoir.com

  • [^] # Re: Les moinseurs ont-il lu ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien J.M. Jancovici sur «C Pol»: les erreurs et raisonnements fallacieux. Évalué à 10.

    du marré-motrice (très très cher)

    Et extrêmement complexe à exploiter pour finalement pas grand-chose. Wikipédia résume bien le problème :

    L'ordre de grandeur de l'énergie naturellement dissipée annuellement par les marées est évalué à 22 000 TWh soit l'équivalent de la combustion de moins de 2 Gtep. Ce chiffre est à comparer à la consommation d'énergie de l'humanité, de l'ordre de 10 Gtep.

    Seule une très faible fraction de l'énergie des marées étant récupérable, du fait de leur dispersion autour du globe, l’énergie marémotrice potentiellement récupérable pourrait fournir jusqu'à 380 TWh/an, soit 1,5 à 2 % de la consommation mondiale d'électricité.

    Sans compter les problèmes posés par les usines existantes, en particulier l’envasement qui fait baisser significativement le rendement au fil du temps. Tout ça explique pourquoi on a pas tant investi que ça dans la technologie.

    La connaissance libre : https://zestedesavoir.com