Leurs arguments ça ne suffit pas sont bidons: par exemple celui du coût en bande passante des podcasts alors que rien ne leur interdit d'utiliser Bittorrent ou de permettre les miroirs...
libgdx, pygame,... sont en C ou C++ plus qu'en python ou java quand ce n'est pas simplement sdl qui fait toutes la partie critique en terme de perf par exemple
Bref les GC modernes ne sont pas un problĂšme dans les jeux. Ni dans les applis web, ni dans 99% des applis. Il faut simplement ne pas te rater quand tu es dans le 1% des cas qui demande une gestion manuelle.
Je ne sais pas trop ce que tu veux dire par "en frontend", mais beaucoup de jeux utilisent un langage GC comme langage principal et pas seulement comme langage de script.
Regarde ce qui se fait avec les cadriciels Java (libgdx, lwjgl), Python (pygame), C# (monogame, Unity), Lua (Löve).
On fait ça aussi en C ou en C++. C'est parfois utile, mais ça ne change pas le problÚme: au lieu de faire attention à mes pointeurs, je dois faire attention à mes indexes.
The flexibility (i.e. expressiveness) of non LIFO-semantics means that in general the compiler cannot automatically infer at compile-time where memory should be freed; it has to rely on dynamic protocols, potentially from outside the language itself, to drive deallocation (reference counting, as used by Rc and Arc, is one example of this).
Donc Rust fait juste comme C++ et ses smart pointers?
Je comprends mieux le ticket pour ajouter un ramasse miette Ă Rust.
[^] # Re: C'est pas pour casser l'ambiance
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Java 15 est sorti. ĂvaluĂ© Ă 3.
Le seul problÚme de Java, c'est qu'il est grassouillet. Espérons qu'il se mette au régime un jour.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Quel est l'intĂ©rĂȘt ?
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au journal C++ vin va vous faire tourner en barrique !. ĂvaluĂ© Ă 5.
Si tu as du code qui varie selon le type, il vaut mieux utiliser des templates que des macros, non?
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: RÚglement anti-libéral?
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au lien La justice europĂ©enne confirme que le «trafic gratuit» enfreint les rĂšgles sur la neutralitĂ© du net. ĂvaluĂ© Ă 9.
Le fonctionnement naturel du capitalisme est de naßtre par le renversement de la noblesse par la bourgeoisie qui s'approprie les terres et les Hommes en changeant les lois au nom de la Liberté puis concentre toutes les richesses à travers la prolétarisation de la paysannerie et des artisans avant de mourir sous le coup d'une révolte ouvriÚre ou suite à l'épuisement des ressources.
Heureusement on a adopté une démocratie sociale et écologique pour éviter tout ça !
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
# Pourquoi juste citer les voitures électriques?
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au lien Batteries des voitures Ă©lectriques - 40.000 enfants travaillent dans des mines en Afrique. ĂvaluĂ© Ă 5.
D'aprĂšs wikipedia, c'est 50% de l'usage pour des batteries et pas seulement pour les voitures.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: La BBC aussi!
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au journal France Inter fait des podcasts. ĂvaluĂ© Ă 5.
L'idéal serait de proposer de payer cette redevance pour ne pas avoir de pub !
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Aller écouter ailleurs
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au journal France Inter fait des podcasts. ĂvaluĂ© Ă 6.
Ils peuvent décider de la licence de leurs propres émissions :-)
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: AMD dans les consoles next-gen
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au journal Le dĂ©but de la fin pour Intel ?. ĂvaluĂ© Ă 4.
Question de compétences !
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
# Aller écouter ailleurs
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au journal France Inter fait des podcasts. ĂvaluĂ© Ă 10. DerniĂšre modification le 11 septembre 2020 Ă 09:29.
La publicité est sur Radio France est une honte: la radio est déjà financée par la redevance, ils n'ont pas besoin de faire de la pub.
Leurs arguments ça ne suffit pas sont bidons: par exemple celui du coût en bande passante des podcasts alors que rien ne leur interdit d'utiliser Bittorrent ou de permettre les miroirs...
Mais comme ils ne changeront pas, le plus simple n'est pas de contourner la publicité, mais d'aller écouter d'autres podcasts gratuits et sans pub.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Article L224-33
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au journal Les pratiques commerciales de BouyguesTelecom. ĂvaluĂ© Ă 9.
Une bonne Loi devrait imposer deux choses pour une nouvelle offre:
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 3.
Ăa me rappelle ce nourjal https://linuxfr.org/users/devnewton/journaux/veuillez-instancier-ce-journal-avant-de-le-lire !
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Quelles voitures?
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au lien Coup de tonnerre : les voitures Ă©lectriques ne seraient pas Ă©cologiques !. ĂvaluĂ© Ă 3.
Ce que je voulais dire par ma question, c'est que si on veut réduire l'impact écologique des voitures, il va falloir changer à la fois de type d'énergie, mais aussi de type de véhicule.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
# Quelles voitures?
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au lien Coup de tonnerre : les voitures Ă©lectriques ne seraient pas Ă©cologiques !. ĂvaluĂ© Ă 5. DerniĂšre modification le 08 septembre 2020 Ă 17:11.
Une Tesla de plus de deux tonnes ou une Citroën Ami de moins 500kg?
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 3.
C'est souvent utilisé dans le moteur physique qui est critique.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 3. DerniĂšre modification le 08 septembre 2020 Ă 14:50.
Logique ce sont des bindings, mais une bonne partie du code est quand mĂȘme dans le langage Ă GC. Avec le code des jeux qui l'utilisent, ça fait une majoritĂ© du code final sous GC.
Logique aussi, une bonne partie de la mĂ©moire dans un jeu, ce sont les vertices, les shaders et les textures qui ne sont mĂȘme pas en RAM et qu'il faut de toute façon gĂ©rer Ă la main, GC ou pas GC.
Il y a aussi beaucoup d'autres données, par exemple le moteur physique qui lui bombarde bien la RAM et là aussi il faut optimiser à coup de préallocations et de piscines. GC ou pas.
Bref les GC modernes ne sont pas un problĂšme dans les jeux. Ni dans les applis web, ni dans 99% des applis. Il faut simplement ne pas te rater quand tu es dans le 1% des cas qui demande une gestion manuelle.
Ca ne veut pas dire que les GC sont une meilleure approche que les "pointeurs intelligents", mais juste une solution plus simple et plus générale.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 6.
Je ne sais pas trop ce que tu veux dire par "en frontend", mais beaucoup de jeux utilisent un langage GC comme langage principal et pas seulement comme langage de script.
Regarde ce qui se fait avec les cadriciels Java (libgdx, lwjgl), Python (pygame), C# (monogame, Unity), Lua (Löve).
L'accÚs aux API graphique/sonore/inputs se font toujours en C, mais la majorité du code et donc des allocations mémoires sont pris en charge par le GC.
Pourquoi ces jeux sont fluides et n'ont pas de gros ralentissements dĂ» Ă un ramasse miette ArrĂȘte Le Monde? Parce que d'une part, comme je l'ai dĂ©jĂ dit, les GC modernes ramassent les mettes de façon incrĂ©mentales et concurrentes, d'autre part les dĂ©veloppeurs de jeux font la chasse aux allocations/dĂ©sallocations en prĂ©-allouant un maximum de choses, en utilisant des pools, en prĂ©fĂ©rant des tableaux fixes aux hashmaps dynamiques...
Cette chasse est faite aussi dans les jeux en C/C++, car comme je l'ai déjà dit aussi, les malloc/free, c'est coûteux pour tout le monde, pas seulement quand c'est un GC qui les fait.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 3.
Comme dit plus haut, regarde le nombre de jeux écrit avec un langage à GC.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 5.
Aujourd'hui les vraies pauses sont si petites qu'on ne les remarque plus (CTB !).
Il y a mĂȘme un GC pauseless pour Java, mais il n'est pas libre :(
Note aussi que le temps d'exécution des autres modes de libération de la mémoire n'est pas NULL non plus.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 3.
Les premiers GC stoppaient le monde. Les modernes travaillent de façon incrémentale et parallÚle.
Beaucoup de jeux utilisent un langage Ă ramasse miettes sans problĂšme: tous les jeux Java, html5, Unity, Lua...
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 5.
J'ai rarement eu besoin des weak references et à chaque fois c'était pour des ressources systÚmes (les textures dans Newton Adventure par exemple :-) ) qui de toute façon demande une gestion particuliÚre.
Est-ce qu'il ne vaut pas mieux un langage avec un GC pour 99% des allocations et gérer à la main le 1% qui reste?
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 4.
On fait ça aussi en C ou en C++. C'est parfois utile, mais ça ne change pas le problÚme: au lieu de faire attention à mes pointeurs, je dois faire attention à mes indexes.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 6.
Ce qui me vient en tĂȘte immĂ©diatement, c'est un code qui manipule des graphes.
En java ou C, je vais avoir des classes ou structures Graph, Edge et Node.
En C, il faudra faire bien attention Ă passer free partout, au bon moment et dans le bon ordre.
En C++, on va choisir avec soin quelles références seront des unique_ptr, des shared_ptr ou des weak_ptr selon les cas d'usage.
Avec un ramasse miette, chacune peut avoir des références sur les autres, on ne va pas se préoccuper de la durée de vie des objets, des pointeurs forts ou faibles... Osef on a de la RAM et le GC passera le balai !
Et avec Rust ?
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Lien avec la censure des GAFAM à propos de la pseudo-pandémie ?
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse au lien Les clients Mastodon seraient bannis de Google Play pour cause d'incitation Ă la haine. ĂvaluĂ© Ă 4.
Ca peut intéresser nos lecteurs pour rire un bon coup !
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 3.
Donc Rust fait juste comme C++ et ses smart pointers?
Je comprends mieux le ticket pour ajouter un ramasse miette Ă Rust.
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 4.
En analysant le code, on peut éviter d'utiliser le ramasse miette pour les allocations / désallocations les plus courantes.
Si tu as un code simple comme:
Un bon compilateur va déduire que les objets LinuxfrBoard et Date ne s'échappe pas de la fonction. Il peut décider de ne pas les laisser au ramasse miette, mais de les allouer sur la pile.function postCoincoinDuJour() {
let linuxfr = new LinuxfrBoard();
let message = "Coincoin du " + new Date().getDay(Lang.FR);
linuxfr.post("Coincoin");
}
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board
[^] # Re: Pffff
PostĂ© par devnewton đș (site web personnel) . En rĂ©ponse Ă la dĂ©pĂȘche Rust a 5 ans, rĂ©trospective. ĂvaluĂ© Ă 4.
Comment Rust gÚre les cas non triviaux de libération de la mémoire (ce qu'un bon compilo pour langage à garbage collector peut gérer automagiquement) ? Par exemple une structure de type graphe ou récursive?
En les interdisant?
https://github.com/rust-lang/rfcs/issues/415
Ce post est offensant ? Prévenez moi sur https://linuxfr.org/board