OVH Cloud OVH Cloud

[ C++ et framework ]

14 réponses
Avatar
hackervalley
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 )

Merci pour vos réponses.

hackervalley(AT)free.fr
http://hackervalley.free.fr

10 réponses

1 2
Avatar
Stephane Wirtel
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 )

Merci pour vos réponses.

hackervalley(AT)free.fr
http://hackervalley.free.fr


Avatar
Arnaud Debaene
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

Avatar
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.


Avatar
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

Avatar
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 :-(

Avatar
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


Avatar
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

Avatar
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.
Avatar
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

Avatar
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
1 2