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 )
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.
La question est plutôt : pourquoi aimes-tu ces distinctions. Il y a bien certains cas précis où elles sont utiles, mais la plupart du temps, je les trouve plutôt arbitraire. Elles ne correspondent à rien dans ma conception de l'application, et n'interviennent dans la conception de bas niveau que pour des raisons techniques, et uniquement à cause de la nécessité de gerer la mémoire manuellement.
Et comme actuellement, je n'ai pas de problèmes d'allocation mémoire,
je ne ressent pas le besoin pour d'autres outils.
Ce n'est pas une question de problèmes -- j'écris bien les applications en C++ sans fuite de mémoire et sans pointeurs invalids. Mais c'est plus de travail que ça ne serait avec un GC. Il faut précisement que je pense aux types de pointeurs et d'autres balivari qui ne sont pas essentiels à l'application.
-- 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:
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.
La question est plutôt : pourquoi aimes-tu ces distinctions. Il y a
bien
certains cas précis où elles sont utiles, mais la plupart du temps,
je
les trouve plutôt arbitraire. Elles ne correspondent à rien dans ma
conception de l'application, et n'interviennent dans la conception de
bas niveau que pour des raisons techniques, et uniquement à cause de
la
nécessité de gerer la mémoire manuellement.
Et comme actuellement, je n'ai pas de problèmes d'allocation
mémoire,
je ne ressent pas le besoin pour d'autres outils.
Ce n'est pas une question de problèmes -- j'écris bien les
applications
en C++ sans fuite de mémoire et sans pointeurs invalids. Mais c'est
plus
de travail que ça ne serait avec un GC. Il faut précisement que je
pense
aux types de pointeurs et d'autres balivari qui ne sont pas essentiels
à
l'application.
--
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
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.
La question est plutôt : pourquoi aimes-tu ces distinctions. Il y a bien certains cas précis où elles sont utiles, mais la plupart du temps, je les trouve plutôt arbitraire. Elles ne correspondent à rien dans ma conception de l'application, et n'interviennent dans la conception de bas niveau que pour des raisons techniques, et uniquement à cause de la nécessité de gerer la mémoire manuellement.
Et comme actuellement, je n'ai pas de problèmes d'allocation mémoire,
je ne ressent pas le besoin pour d'autres outils.
Ce n'est pas une question de problèmes -- j'écris bien les applications en C++ sans fuite de mémoire et sans pointeurs invalids. Mais c'est plus de travail que ça ne serait avec un GC. Il faut précisement que je pense aux types de pointeurs et d'autres balivari qui ne sont pas essentiels à l'application.
-- 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
Georges Schumacher
"Gabriel Dos Reis" wrote in message news:
writes:
Moi aussi. Je n'en suis pas l'inventeur : je l'ai appris de Georges Schumacher pendant une réunion du groupe AFNOR.
Je n'en suis pas non plus l'auteur. Je tiens cette expression du monde Lisp, plus précisément de Jérôme Chailloux créateur de LeLisp, mais je ne sais pas qui a inventé cette expression.
-- Gaby
A+
-- Georges
"Gabriel Dos Reis" <gdr@integrable-solutions.net> wrote in message
news:m33by9kk24.fsf@uniton.integrable-solutions.net...
kanze@gabi-soft.fr writes:
Moi aussi. Je n'en suis pas l'inventeur : je l'ai appris de Georges
Schumacher pendant une réunion du groupe AFNOR.
Je n'en suis pas non plus l'auteur. Je tiens cette expression du monde Lisp,
plus précisément de Jérôme Chailloux créateur de LeLisp, mais je ne sais pas
qui a inventé cette expression.
Moi aussi. Je n'en suis pas l'inventeur : je l'ai appris de Georges Schumacher pendant une réunion du groupe AFNOR.
Je n'en suis pas non plus l'auteur. Je tiens cette expression du monde Lisp, plus précisément de Jérôme Chailloux créateur de LeLisp, mais je ne sais pas qui a inventé cette expression.
-- Gaby
A+
-- Georges
Jean-Marc Bourguet
Gabriel Dos Reis writes:
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.
Je connais aussi des gens immunises contre les GC. Nos applications sont relativement critiques en CPU (comme tout ce qui tourne plusieurs heures a faire du calcul -- en fait la criticite est plutot a seuil, une fois passe un seuil tant qu'on n'atteind pas le suivant les inconveniants additionnels sont faibles, mais deux choses poussent a atteindre le seuil suivant : l'evolution du code et l'augmentation de la taille des donnees donc il y a toujours des clients pour lesquels on est au seuil...). Et l'equipe dont je fais partie a une experience avec un langage (MAINSAIL pour ceux qui connaissent) qui dispose d'un GC. Avant mon arrivee dans le groupe, ils sont vires toute l'utilisation du GC avec un gain important en performance. Je me suis toujours demande si la cause etait l'implementation du GC, son utilisation de maniere non adequate alors qu'il aurait pu etre mieux utilise ou des caracteristiques de nos applis genantes pour ce GC ou tous en general (une qui doit l'etre pour toute c'est le surcout en memoire d'un GC, qui est dans notre cas une raison suffisante pour les eviter a mon avis).
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Gabriel Dos Reis <gdr@integrable-solutions.net> writes:
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.
-- Gaby, immunisé contre la smart-pointerite.
Je connais aussi des gens immunises contre les GC. Nos applications
sont relativement critiques en CPU (comme tout ce qui tourne plusieurs
heures a faire du calcul -- en fait la criticite est plutot a seuil,
une fois passe un seuil tant qu'on n'atteind pas le suivant les
inconveniants additionnels sont faibles, mais deux choses poussent a
atteindre le seuil suivant : l'evolution du code et l'augmentation de
la taille des donnees donc il y a toujours des clients pour lesquels
on est au seuil...). Et l'equipe dont je fais partie a une experience
avec un langage (MAINSAIL pour ceux qui connaissent) qui dispose d'un
GC. Avant mon arrivee dans le groupe, ils sont vires toute
l'utilisation du GC avec un gain important en performance. Je me suis
toujours demande si la cause etait l'implementation du GC, son
utilisation de maniere non adequate alors qu'il aurait pu etre mieux
utilise ou des caracteristiques de nos applis genantes pour ce GC ou
tous en general (une qui doit l'etre pour toute c'est le surcout en
memoire d'un GC, qui est dans notre cas une raison suffisante pour les
eviter a mon avis).
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
| 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.
Je connais aussi des gens immunises contre les GC. Nos applications sont relativement critiques en CPU (comme tout ce qui tourne plusieurs heures a faire du calcul -- en fait la criticite est plutot a seuil, une fois passe un seuil tant qu'on n'atteind pas le suivant les inconveniants additionnels sont faibles, mais deux choses poussent a atteindre le seuil suivant : l'evolution du code et l'augmentation de la taille des donnees donc il y a toujours des clients pour lesquels on est au seuil...). Et l'equipe dont je fais partie a une experience avec un langage (MAINSAIL pour ceux qui connaissent) qui dispose d'un GC. Avant mon arrivee dans le groupe, ils sont vires toute l'utilisation du GC avec un gain important en performance. Je me suis toujours demande si la cause etait l'implementation du GC, son utilisation de maniere non adequate alors qu'il aurait pu etre mieux utilise ou des caracteristiques de nos applis genantes pour ce GC ou tous en general (une qui doit l'etre pour toute c'est le surcout en memoire d'un GC, qui est dans notre cas une raison suffisante pour les eviter a mon avis).
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
nico
Qt ?
-- nico
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++ ?
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++ ?
L'objectif visé est le developpement de petites applications.
Quel framework OpenSource remporte vos suffrages ? ( ACE http://www.cs.wustl.edu/~schmidt/ACE.html )