N'ayant pas beaucoup de pratique en C++, je me demande si
l'apprentissage du C++ en passant par l'utilisation d'un Framework est
une bonne démarche et n'est pas plus ludique que son apprentissage via
les examples de bases en C++ ?
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ?
( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
Si tu désires bien apprendre le C++, alors, tu dois te baser sur de bonnes références.
Si tu as déjà des connaissances sur le concept Objet, alors tu peux directement te baser sur le livre de référence en la matière.
Et pour compléter le tout, il y a d'autres livres tout aussi intéressant, et te permettant d'augmenter tes connaissances en C++.
Livres de références : Le Langage C++ - Bjarne Stroustrup ISBN : 2-7440-7003-3
The C++ Standard Library : A Tutorial and Reference Nicolai M. Josuttis ISBN : 0-201-37926-0
C++ Templates - The Complete Guide David Vandervoorde & Nicolai M. Josuttis ISBN : 0-201-73484-2
Maintenant, il faut lire du code et le comprendre.
Stéphane
hackervalley wrote:
Bonjour à tous,
N'ayant pas beaucoup de pratique en C++, je me demande si l'apprentissage du C++ en passant par l'utilisation d'un Framework est une bonne démarche et n'est pas plus ludique que son apprentissage via les examples de bases en C++ ?
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ? ( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
Si tu désires bien apprendre le C++, alors, tu dois te baser sur de
bonnes références.
Si tu as déjà des connaissances sur le concept Objet, alors tu peux
directement te baser sur le livre de référence en la matière.
Et pour compléter le tout, il y a d'autres livres tout aussi
intéressant, et te permettant d'augmenter tes connaissances en C++.
Livres de références :
Le Langage C++ - Bjarne Stroustrup
ISBN : 2-7440-7003-3
The C++ Standard Library : A Tutorial and Reference
Nicolai M. Josuttis
ISBN : 0-201-37926-0
C++ Templates - The Complete Guide
David Vandervoorde & Nicolai M. Josuttis
ISBN : 0-201-73484-2
Maintenant, il faut lire du code et le comprendre.
Stéphane
hackervalley wrote:
Bonjour à tous,
N'ayant pas beaucoup de pratique en C++, je me demande si
l'apprentissage du C++ en passant par l'utilisation d'un Framework est
une bonne démarche et n'est pas plus ludique que son apprentissage via
les examples de bases en C++ ?
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ?
( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
Si tu désires bien apprendre le C++, alors, tu dois te baser sur de bonnes références.
Si tu as déjà des connaissances sur le concept Objet, alors tu peux directement te baser sur le livre de référence en la matière.
Et pour compléter le tout, il y a d'autres livres tout aussi intéressant, et te permettant d'augmenter tes connaissances en C++.
Livres de références : Le Langage C++ - Bjarne Stroustrup ISBN : 2-7440-7003-3
The C++ Standard Library : A Tutorial and Reference Nicolai M. Josuttis ISBN : 0-201-37926-0
C++ Templates - The Complete Guide David Vandervoorde & Nicolai M. Josuttis ISBN : 0-201-73484-2
Maintenant, il faut lire du code et le comprendre.
Stéphane
hackervalley wrote:
Bonjour à tous,
N'ayant pas beaucoup de pratique en C++, je me demande si l'apprentissage du C++ en passant par l'utilisation d'un Framework est une bonne démarche et n'est pas plus ludique que son apprentissage via les examples de bases en C++ ?
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ? ( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
N'ayant pas beaucoup de pratique en C++, je me demande si l'apprentissage du C++ en passant par l'utilisation d'un Framework est une bonne démarche et n'est pas plus ludique que son apprentissage via les examples de bases en C++ ? Un framework qui fait quoi? Tout dépend de ton doamine d'application. Les
quelques "frameworks généralistes" qui existent en C++ et prétendent couvrir tous les besoins sont généralement de qualité assez médiocre.
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ? ( ACE http://www.cs.wustl.edu/~schmidt/ACE.html ) ACE est une très bonne librairie pour fair du réseau et construire un
système distribué. Pour aire du GUI, des expressions régulières, du calcul numérique, de l'animation ou dieu sait quoi d'autre, ca ne te servira strictement à rien!
Commences par définir le ou les domaines dont tu va avoir besoin / qui t'intéressent, et on pourra peut être de conseiller une librairie ou un framework utile dans ton cas.
Arnaud
hackervalley wrote:
Bonjour à tous,
N'ayant pas beaucoup de pratique en C++, je me demande si
l'apprentissage du C++ en passant par l'utilisation d'un Framework est
une bonne démarche et n'est pas plus ludique que son apprentissage via les
examples de bases en C++ ?
Un framework qui fait quoi? Tout dépend de ton doamine d'application. Les
quelques "frameworks généralistes" qui existent en C++ et prétendent couvrir
tous les besoins sont généralement de qualité assez médiocre.
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ?
( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
ACE est une très bonne librairie pour fair du réseau et construire un
système distribué. Pour aire du GUI, des expressions régulières, du calcul
numérique, de l'animation ou dieu sait quoi d'autre, ca ne te servira
strictement à rien!
Commences par définir le ou les domaines dont tu va avoir besoin / qui
t'intéressent, et on pourra peut être de conseiller une librairie ou un
framework utile dans ton cas.
N'ayant pas beaucoup de pratique en C++, je me demande si l'apprentissage du C++ en passant par l'utilisation d'un Framework est une bonne démarche et n'est pas plus ludique que son apprentissage via les examples de bases en C++ ? Un framework qui fait quoi? Tout dépend de ton doamine d'application. Les
quelques "frameworks généralistes" qui existent en C++ et prétendent couvrir tous les besoins sont généralement de qualité assez médiocre.
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ? ( ACE http://www.cs.wustl.edu/~schmidt/ACE.html ) ACE est une très bonne librairie pour fair du réseau et construire un
système distribué. Pour aire du GUI, des expressions régulières, du calcul numérique, de l'animation ou dieu sait quoi d'autre, ca ne te servira strictement à rien!
Commences par définir le ou les domaines dont tu va avoir besoin / qui t'intéressent, et on pourra peut être de conseiller une librairie ou un framework utile dans ton cas.
Arnaud
abdera
Arnaud Debaene wrote:
hackervalley wrote:
Bonjour à tous,
N'ayant pas beaucoup de pratique en C++, je me demande si l'apprentissage du C++ en passant par l'utilisation d'un Framework est une bonne démarche et n'est pas plus ludique que son apprentissage via les examples de bases en C++ ?
Un framework qui fait quoi? Tout dépend de ton doamine d'application. Les quelques "frameworks généralistes" qui existent en C++ et prétendent couvrir tous les besoins sont généralement de qualité assez médiocre.
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ? ( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
ACE est une très bonne librairie pour fair du réseau et construire un système distribué. Pour aire du GUI, des expressions régulières, du calcul numérique, de l'animation ou dieu sait quoi d'autre, ca ne te servira strictement à rien!
Commences par définir le ou les domaines dont tu va avoir besoin / qui t'intéressent, et on pourra peut être de conseiller une librairie ou un framework utile dans ton cas.
Arnaud
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Krost.
Arnaud Debaene wrote:
hackervalley wrote:
Bonjour à tous,
N'ayant pas beaucoup de pratique en C++, je me demande si
l'apprentissage du C++ en passant par l'utilisation d'un Framework est
une bonne démarche et n'est pas plus ludique que son apprentissage via les
examples de bases en C++ ?
Un framework qui fait quoi? Tout dépend de ton doamine d'application. Les
quelques "frameworks généralistes" qui existent en C++ et prétendent couvrir
tous les besoins sont généralement de qualité assez médiocre.
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ?
( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
ACE est une très bonne librairie pour fair du réseau et construire un
système distribué. Pour aire du GUI, des expressions régulières, du calcul
numérique, de l'animation ou dieu sait quoi d'autre, ca ne te servira
strictement à rien!
Commences par définir le ou les domaines dont tu va avoir besoin / qui
t'intéressent, et on pourra peut être de conseiller une librairie ou un
framework utile dans ton cas.
Arnaud
Le choix du framework ou d'une librairie se fait selon l'aplication que
tu veux réaliser.
Mais si u veux vraiment utiliser un framework ou une librairie, aloes au
moins regarde boost.
C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
N'ayant pas beaucoup de pratique en C++, je me demande si l'apprentissage du C++ en passant par l'utilisation d'un Framework est une bonne démarche et n'est pas plus ludique que son apprentissage via les examples de bases en C++ ?
Un framework qui fait quoi? Tout dépend de ton doamine d'application. Les quelques "frameworks généralistes" qui existent en C++ et prétendent couvrir tous les besoins sont généralement de qualité assez médiocre.
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ? ( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )
ACE est une très bonne librairie pour fair du réseau et construire un système distribué. Pour aire du GUI, des expressions régulières, du calcul numérique, de l'animation ou dieu sait quoi d'autre, ca ne te servira strictement à rien!
Commences par définir le ou les domaines dont tu va avoir besoin / qui t'intéressent, et on pourra peut être de conseiller une librairie ou un framework utile dans ton cas.
Arnaud
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Krost.
Loïc Joly
abdera wrote:
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Je dirais (pour chipoter) que certains morceaux de boost vont probablement servir de modèles pour des extensions du langage.
J'espère que certains morceaux de boost ne seront pas intégrés. Par exemple, boost::lambda représente un travail formidable et étonnant, mais pour le standard, je préfère (et ne suis pas seul) une véritable prise en compte des lambda expressions dans le "core language", plutôt que boost::lambda, qui n'est quand même qu'un "workaround".
-- Loïc
abdera wrote:
Le choix du framework ou d'une librairie se fait selon l'aplication que
tu veux réaliser.
Mais si u veux vraiment utiliser un framework ou une librairie, aloes au
moins regarde boost.
C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Je dirais (pour chipoter) que certains morceaux de boost vont
probablement servir de modèles pour des extensions du langage.
J'espère que certains morceaux de boost ne seront pas intégrés. Par
exemple, boost::lambda représente un travail formidable et étonnant,
mais pour le standard, je préfère (et ne suis pas seul) une véritable
prise en compte des lambda expressions dans le "core language", plutôt
que boost::lambda, qui n'est quand même qu'un "workaround".
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Je dirais (pour chipoter) que certains morceaux de boost vont probablement servir de modèles pour des extensions du langage.
J'espère que certains morceaux de boost ne seront pas intégrés. Par exemple, boost::lambda représente un travail formidable et étonnant, mais pour le standard, je préfère (et ne suis pas seul) une véritable prise en compte des lambda expressions dans le "core language", plutôt que boost::lambda, qui n'est quand même qu'un "workaround".
-- Loïc
Alexandre
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Krost.
bonjour; il me semblait qu'en français on parlait de "bibliothèque" pour traduire *library* et non "librairie"... M'enfin, c'est vraiment histoire de dire qq chose ;-) c'est un fil qui s'est déroulé il y a trop longtemps pour que j'aie gardé le message :-(
Le choix du framework ou d'une librairie se fait selon l'aplication que
tu veux réaliser.
Mais si u veux vraiment utiliser un framework ou une librairie, aloes au
moins regarde boost.
C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Krost.
bonjour;
il me semblait qu'en français on parlait de "bibliothèque" pour traduire
*library* et non "librairie"...
M'enfin, c'est vraiment histoire de dire qq chose ;-)
c'est un fil qui s'est déroulé il y a trop longtemps pour que j'aie gardé le
message :-(
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Krost.
bonjour; il me semblait qu'en français on parlait de "bibliothèque" pour traduire *library* et non "librairie"... M'enfin, c'est vraiment histoire de dire qq chose ;-) c'est un fil qui s'est déroulé il y a trop longtemps pour que j'aie gardé le message :-(
kanze
Loïc Joly wrote:
abdera wrote:
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework
ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Je dirais (pour chipoter) que certains morceaux de boost vont probablement servir de modèles pour des extensions du langage.
J'espère que certains morceaux de boost ne seront pas intégrés. Par
exemple, boost::lambda représente un travail formidable et étonnant,
mais pour le standard, je préfère (et ne suis pas seul) une véritable
prise en compte des lambda expressions dans le "core language", plutôt
que boost::lambda, qui n'est quand même qu'un "workaround".
Je suis bien d'accord avec toi pour lambda -- de même, je trouve qu'une véritable rémasse-miettes serait préférable à boost::shared_ptr. J'ajouterais qu'il y a des éléments de Boost qui sont bien trop spécialisés pour faire partie de la norme : je verrais mal crc ou graph dans la norme, par exemple.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Loïc Joly wrote:
abdera wrote:
Le choix du framework ou d'une librairie se fait selon l'aplication
que tu veux réaliser. Mais si u veux vraiment utiliser un
framework
ou une librairie, aloes au moins regarde boost. C'est ne librairie
qui va probablement étre intégrer dans le stans de c++.
Je dirais (pour chipoter) que certains morceaux de boost vont
probablement servir de modèles pour des extensions du langage.
J'espère que certains morceaux de boost ne seront pas intégrés.
Par
exemple, boost::lambda représente un travail formidable et
étonnant,
mais pour le standard, je préfère (et ne suis pas seul) une
véritable
prise en compte des lambda expressions dans le "core language",
plutôt
que boost::lambda, qui n'est quand même qu'un "workaround".
Je suis bien d'accord avec toi pour lambda -- de même, je trouve
qu'une
véritable rémasse-miettes serait préférable à boost::shared_ptr.
J'ajouterais qu'il y a des éléments de Boost qui sont bien trop
spécialisés pour faire partie de la norme : je verrais mal crc ou
graph
dans la norme, par exemple.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Le choix du framework ou d'une librairie se fait selon l'aplication que tu veux réaliser. Mais si u veux vraiment utiliser un framework
ou une librairie, aloes au moins regarde boost. C'est ne librairie qui va probablement étre intégrer dans le stans de c++.
Je dirais (pour chipoter) que certains morceaux de boost vont probablement servir de modèles pour des extensions du langage.
J'espère que certains morceaux de boost ne seront pas intégrés. Par
exemple, boost::lambda représente un travail formidable et étonnant,
mais pour le standard, je préfère (et ne suis pas seul) une véritable
prise en compte des lambda expressions dans le "core language", plutôt
que boost::lambda, qui n'est quand même qu'un "workaround".
Je suis bien d'accord avec toi pour lambda -- de même, je trouve qu'une véritable rémasse-miettes serait préférable à boost::shared_ptr. J'ajouterais qu'il y a des éléments de Boost qui sont bien trop spécialisés pour faire partie de la norme : je verrais mal crc ou graph dans la norme, par exemple.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Loïc Joly
wrote:
Je suis bien d'accord avec toi pour lambda -- de même, je trouve qu'une véritable rémasse-miettes serait préférable à boost::shared_ptr.
Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. En particulier, j'aime bien la distinction faite entre différents types de pointeurs intelligents (weak, shared...) et je me demande si un ramasse miette n'a pas tendance à faire entrer tous les pointeurs dans le même moule, quitte à forcer. Et comme actuellement, je n'ai pas de problèmes d'allocation mémoire, je ne ressent pas le besoin pour d'autres outils.
-- Loïc
kanze@gabi-soft.fr wrote:
Je suis bien d'accord avec toi pour lambda -- de même, je trouve
qu'une
véritable rémasse-miettes serait préférable à boost::shared_ptr.
Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes.
En particulier, j'aime bien la distinction faite entre différents types
de pointeurs intelligents (weak, shared...) et je me demande si un
ramasse miette n'a pas tendance à faire entrer tous les pointeurs dans
le même moule, quitte à forcer. Et comme actuellement, je n'ai pas de
problèmes d'allocation mémoire, je ne ressent pas le besoin pour
d'autres outils.
Je suis bien d'accord avec toi pour lambda -- de même, je trouve qu'une véritable rémasse-miettes serait préférable à boost::shared_ptr.
Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. En particulier, j'aime bien la distinction faite entre différents types de pointeurs intelligents (weak, shared...) et je me demande si un ramasse miette n'a pas tendance à faire entrer tous les pointeurs dans le même moule, quitte à forcer. Et comme actuellement, je n'ai pas de problèmes d'allocation mémoire, je ne ressent pas le besoin pour d'autres outils.
-- Loïc
Gabriel Dos Reis
Loïc Joly writes:
| wrote: | > Je suis bien d'accord avec toi pour lambda -- de même, je trouve | > qu'une | > véritable rémasse-miettes serait préférable à boost::shared_ptr. | | Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. | En particulier, j'aime bien la distinction faite entre différents | types de pointeurs intelligents (weak, shared...) et je me demande si | un ramasse miette n'a pas tendance à faire entrer tous les pointeurs | dans le même moule, quitte à forcer. Et comme actuellement, je n'ai | pas de problèmes d'allocation mémoire, je ne ressent pas le besoin | pour d'autres outils.
Mais, je crois qu'il faut bien aussi comprendre le coût des pointeurs intelligents. Donné le choix entre un boost::shared_ptr et un glaneur de cellules (GC) -- par exemple celui de Boehm -- je choisirai presque toujours le GC. Mais c'est vrai que le « type » de programmation que cela implique diffère.
-- Gaby, immunisé contre la smart-pointerite.
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
| kanze@gabi-soft.fr wrote:
| > Je suis bien d'accord avec toi pour lambda -- de même, je trouve
| > qu'une
| > véritable rémasse-miettes serait préférable à boost::shared_ptr.
|
| Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes.
| En particulier, j'aime bien la distinction faite entre différents
| types de pointeurs intelligents (weak, shared...) et je me demande si
| un ramasse miette n'a pas tendance à faire entrer tous les pointeurs
| dans le même moule, quitte à forcer. Et comme actuellement, je n'ai
| pas de problèmes d'allocation mémoire, je ne ressent pas le besoin
| pour d'autres outils.
Mais, je crois qu'il faut bien aussi comprendre le coût des pointeurs
intelligents. Donné le choix entre un boost::shared_ptr et un glaneur
de cellules (GC) -- par exemple celui de Boehm -- je choisirai presque
toujours le GC. Mais c'est vrai que le « type » de programmation que
cela implique diffère.
| wrote: | > Je suis bien d'accord avec toi pour lambda -- de même, je trouve | > qu'une | > véritable rémasse-miettes serait préférable à boost::shared_ptr. | | Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. | En particulier, j'aime bien la distinction faite entre différents | types de pointeurs intelligents (weak, shared...) et je me demande si | un ramasse miette n'a pas tendance à faire entrer tous les pointeurs | dans le même moule, quitte à forcer. Et comme actuellement, je n'ai | pas de problèmes d'allocation mémoire, je ne ressent pas le besoin | pour d'autres outils.
Mais, je crois qu'il faut bien aussi comprendre le coût des pointeurs intelligents. Donné le choix entre un boost::shared_ptr et un glaneur de cellules (GC) -- par exemple celui de Boehm -- je choisirai presque toujours le GC. Mais c'est vrai que le « type » de programmation que cela implique diffère.
-- Gaby, immunisé contre la smart-pointerite.
kanze
Gabriel Dos Reis wrote:
Loïc Joly writes:
| wrote: | > Je suis bien d'accord avec toi pour lambda -- de même, je trouve | > qu'une véritable rémasse-miettes serait préférable à | > boost::shared_ptr.
| Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. En
| particulier, j'aime bien la distinction faite entre différents types
| de pointeurs intelligents (weak, shared...) et je me demande si un | ramasse miette n'a pas tendance à faire entrer tous les pointeurs | dans le même moule, quitte à forcer. Et comme actuellement, je n'ai
| pas de problèmes d'allocation mémoire, je ne ressent pas le besoin
| pour d'autres outils.
L'existence d'un glaneur de cellules (j'aime bien l'expression) n'interdirait pas l'utilisation des pointeurs intelligents pour des cas particuliers, où tu as besoin d'une sémantique autre que simplement « récupérer la mémoire quand je n'en ai plus besoin ».
D'après mon expérience, ces cas représentent au plus 10% de tous les pointeurs, typiquement même beaucoup moins. Et mon expérience avec des pointeurs intelligents pour gerer la mémoire n'est pas que positifs -- j'ai déjà eu à contourner des cycles, par exemple. Et dans un cas, même, un problème de vitesse.
Mais, je crois qu'il faut bien aussi comprendre le coût des pointeurs
intelligents. Donné le choix entre un boost::shared_ptr et un glaneur
de cellules (GC) -- par exemple celui de Boehm -- je choisirai presque
toujours le GC. Mais c'est vrai que le « type » de programmation que
cela implique diffère.
Pas forcement -- j'utilise beaucoup les pointeurs à comptage de référence, dans les cas où un glaneur de cellules aurait bien fait l'affaire. Mais c'est vrai qu'il y a des utilisations particulières -- avec les threads, j'utilise beaucoup std::auto_ptr, par exemple, avec un passage par valeur de façon à invalider le pointeur chez l'appelant. Avec un GC, je m'en serais probablement passé, et le pointeur chez l'appelant serait resté valide. (L'intérêt, évidemment, c'est que la fonction transfère l'objet à un autre thread. Et que le thread appelant n'a plus le droit d'y accéder.)
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Gabriel Dos Reis wrote:
Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
| kanze@gabi-soft.fr wrote:
| > Je suis bien d'accord avec toi pour lambda -- de même, je trouve
| > qu'une véritable rémasse-miettes serait préférable à
| > boost::shared_ptr.
| Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes.
En
| particulier, j'aime bien la distinction faite entre différents
types
| de pointeurs intelligents (weak, shared...) et je me demande si un
| ramasse miette n'a pas tendance à faire entrer tous les pointeurs
| dans le même moule, quitte à forcer. Et comme actuellement, je
n'ai
| pas de problèmes d'allocation mémoire, je ne ressent pas le
besoin
| pour d'autres outils.
L'existence d'un glaneur de cellules (j'aime bien l'expression)
n'interdirait pas l'utilisation des pointeurs intelligents pour des cas
particuliers, où tu as besoin d'une sémantique autre que simplement
« récupérer la mémoire quand je n'en ai plus besoin ».
D'après mon expérience, ces cas représentent au plus 10% de tous les
pointeurs, typiquement même beaucoup moins. Et mon expérience avec
des
pointeurs intelligents pour gerer la mémoire n'est pas que positifs --
j'ai déjà eu à contourner des cycles, par exemple. Et dans un cas,
même,
un problème de vitesse.
Mais, je crois qu'il faut bien aussi comprendre le coût des
pointeurs
intelligents. Donné le choix entre un boost::shared_ptr et un
glaneur
de cellules (GC) -- par exemple celui de Boehm -- je choisirai
presque
toujours le GC. Mais c'est vrai que le « type » de programmation
que
cela implique diffère.
Pas forcement -- j'utilise beaucoup les pointeurs à comptage de
référence, dans les cas où un glaneur de cellules aurait bien fait
l'affaire. Mais c'est vrai qu'il y a des utilisations particulières --
avec les threads, j'utilise beaucoup std::auto_ptr, par exemple, avec
un
passage par valeur de façon à invalider le pointeur chez l'appelant.
Avec un GC, je m'en serais probablement passé, et le pointeur chez
l'appelant serait resté valide. (L'intérêt, évidemment, c'est que
la
fonction transfère l'objet à un autre thread. Et que le thread
appelant
n'a plus le droit d'y accéder.)
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
| wrote: | > Je suis bien d'accord avec toi pour lambda -- de même, je trouve | > qu'une véritable rémasse-miettes serait préférable à | > boost::shared_ptr.
| Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. En
| particulier, j'aime bien la distinction faite entre différents types
| de pointeurs intelligents (weak, shared...) et je me demande si un | ramasse miette n'a pas tendance à faire entrer tous les pointeurs | dans le même moule, quitte à forcer. Et comme actuellement, je n'ai
| pas de problèmes d'allocation mémoire, je ne ressent pas le besoin
| pour d'autres outils.
L'existence d'un glaneur de cellules (j'aime bien l'expression) n'interdirait pas l'utilisation des pointeurs intelligents pour des cas particuliers, où tu as besoin d'une sémantique autre que simplement « récupérer la mémoire quand je n'en ai plus besoin ».
D'après mon expérience, ces cas représentent au plus 10% de tous les pointeurs, typiquement même beaucoup moins. Et mon expérience avec des pointeurs intelligents pour gerer la mémoire n'est pas que positifs -- j'ai déjà eu à contourner des cycles, par exemple. Et dans un cas, même, un problème de vitesse.
Mais, je crois qu'il faut bien aussi comprendre le coût des pointeurs
intelligents. Donné le choix entre un boost::shared_ptr et un glaneur
de cellules (GC) -- par exemple celui de Boehm -- je choisirai presque
toujours le GC. Mais c'est vrai que le « type » de programmation que
cela implique diffère.
Pas forcement -- j'utilise beaucoup les pointeurs à comptage de référence, dans les cas où un glaneur de cellules aurait bien fait l'affaire. Mais c'est vrai qu'il y a des utilisations particulières -- avec les threads, j'utilise beaucoup std::auto_ptr, par exemple, avec un passage par valeur de façon à invalider le pointeur chez l'appelant. Avec un GC, je m'en serais probablement passé, et le pointeur chez l'appelant serait resté valide. (L'intérêt, évidemment, c'est que la fonction transfère l'objet à un autre thread. Et que le thread appelant n'a plus le droit d'y accéder.)
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Gabriel Dos Reis
writes:
| Gabriel Dos Reis wrote: | > Loïc Joly writes: | | > | wrote: | > | > Je suis bien d'accord avec toi pour lambda -- de même, je trouve | > | > qu'une véritable rémasse-miettes serait préférable à | > | > boost::shared_ptr. | | > | Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. | En | > | particulier, j'aime bien la distinction faite entre différents | types | > | de pointeurs intelligents (weak, shared...) et je me demande si un | > | ramasse miette n'a pas tendance à faire entrer tous les pointeurs | > | dans le même moule, quitte à forcer. Et comme actuellement, je | n'ai | > | pas de problèmes d'allocation mémoire, je ne ressent pas le | besoin | > | pour d'autres outils. | | L'existence d'un glaneur de cellules (j'aime bien l'expression)
Moi aussi. Je n'en suis pas l'inventeur : je l'ai appris de Georges Schumacher pendant une réunion du groupe AFNOR.
-- Gaby
kanze@gabi-soft.fr writes:
| Gabriel Dos Reis wrote:
| > Loïc Joly <loic.actarus.joly@wanadoo.fr> writes:
|
| > | kanze@gabi-soft.fr wrote:
| > | > Je suis bien d'accord avec toi pour lambda -- de même, je trouve
| > | > qu'une véritable rémasse-miettes serait préférable à
| > | > boost::shared_ptr.
|
| > | Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes.
| En
| > | particulier, j'aime bien la distinction faite entre différents
| types
| > | de pointeurs intelligents (weak, shared...) et je me demande si un
| > | ramasse miette n'a pas tendance à faire entrer tous les pointeurs
| > | dans le même moule, quitte à forcer. Et comme actuellement, je
| n'ai
| > | pas de problèmes d'allocation mémoire, je ne ressent pas le
| besoin
| > | pour d'autres outils.
|
| L'existence d'un glaneur de cellules (j'aime bien l'expression)
Moi aussi. Je n'en suis pas l'inventeur : je l'ai appris de Georges
Schumacher pendant une réunion du groupe AFNOR.
| Gabriel Dos Reis wrote: | > Loïc Joly writes: | | > | wrote: | > | > Je suis bien d'accord avec toi pour lambda -- de même, je trouve | > | > qu'une véritable rémasse-miettes serait préférable à | > | > boost::shared_ptr. | | > | Sur ce point, j'hésite, n'ayant jamais utilisé ramasse-miettes. | En | > | particulier, j'aime bien la distinction faite entre différents | types | > | de pointeurs intelligents (weak, shared...) et je me demande si un | > | ramasse miette n'a pas tendance à faire entrer tous les pointeurs | > | dans le même moule, quitte à forcer. Et comme actuellement, je | n'ai | > | pas de problèmes d'allocation mémoire, je ne ressent pas le | besoin | > | pour d'autres outils. | | L'existence d'un glaneur de cellules (j'aime bien l'expression)
Moi aussi. Je n'en suis pas l'inventeur : je l'ai appris de Georges Schumacher pendant une réunion du groupe AFNOR.