Oui, pour moi le comptage de références (reference counting) est une forme de GC, mais une différence importante entre C++ et les langages managés est que, en C++, les constructions du langage ne t'imposent pas l'usage de shared_ptr ou d'un autre schéma automatique pour tracer les allocations mémoires, donc c'est facile de s'en passer et il y a des pratiques reconnues pour écrire du code où tout est géré manuellement. On peut aussi écrire du code qui n'utilise pas le GC dans un langage managé, mais c'est souvent beaucoup moins bien compris et donc plus délicat, et ça peut mal interagir avec le reste de l'écosystème logiciel.
C'est utilisé par de grosses applications industrielles (robotique, CAO, etc.) qui exigent pourtant des performances élevées.
Oui enfin tout le monde "exige des performances élevées", ça ne veut pas dire qu'un GC n'aurait pas été un choix raisonnable aussi—on peut écrire des applications performantes dans des langages avec GC, et d'ailleurs pas mal de code à haute performance côté serveur est écrit en Java.
[^] # Re: Phobie du GC
Posté par gasche . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 10.
Oui, pour moi le comptage de références (reference counting) est une forme de GC, mais une différence importante entre C++ et les langages managés est que, en C++, les constructions du langage ne t'imposent pas l'usage de
shared_ptrou d'un autre schéma automatique pour tracer les allocations mémoires, donc c'est facile de s'en passer et il y a des pratiques reconnues pour écrire du code où tout est géré manuellement. On peut aussi écrire du code qui n'utilise pas le GC dans un langage managé, mais c'est souvent beaucoup moins bien compris et donc plus délicat, et ça peut mal interagir avec le reste de l'écosystème logiciel.Oui enfin tout le monde "exige des performances élevées", ça ne veut pas dire qu'un GC n'aurait pas été un choix raisonnable aussi—on peut écrire des applications performantes dans des langages avec GC, et d'ailleurs pas mal de code à haute performance côté serveur est écrit en Java.