Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Avis sur les includes files

59 réponses
Avatar
Gégé
Salut,

Dans mon projet, j'ai cr=E9e un global.h qui contient tous les includes
des librairies annexes que j'utilise.
Du coup je mets ce global.h dans l'ent=EAte de mes classes ( qui
n'utilisent pas n=E9cessairement toutes les librairies =E0 la fois ).

Question : Est-ce qu'il vaut mieux mettre les #include au cas par cas
dans chaque header de les classes ? ( Et pourquoi ? )

Merci
G

ma principale motivation =E9tait de ne pas copier / coller des tonnes de
#include dans chaque .h

10 réponses

2 3 4 5 6
Avatar
pjb
Michael DOUBEZ writes:
Ce qui nous ramène au point 2; ce qui est possible: je vois beaucoup
de jeunes pour qui l'informatique est un travail comme un autre. Dans
ma génération c'était encore une histoire de passion ou de réelle
envie de faire de l'informatique. Alors peut être y a-t-il une
adaptation à faire de la part des enseignants pour adresser ce type
d'élève; je ne sais pas.



C'est un point important. En fait, en noyant les passionnées dans un
immense troupeau qui n'arrive à l'informatique que par défaut (et ça
paye bien alors pourquoi pas?), on peut même arriver à les dégoûter
des cursus, ce qui va encore plus faire baisser le niveau des
diplomés. Je connais personnellement plusieurs bon programmeurs qui
n'ont pas de diplome, mais qui sont entièrement autodidactes.

De plus l'informatique s'est beaucoup diversifiée avec les années, et
il faut forcément des formations différentes. Entre un
"informaticien" qui configure un progiciel comme SAP et un développeur
Linux embarqué, à part le clavier, je ne vois pas de point commun (mais
la secrétaire utilise aussi un clavier).

Il faut certainement diversifier les filières, et avoir des critères
et des exigences différentes.

--
__Pascal Bourguignon__
Avatar
espie
In article <498ab645$0$18363$,
Wykaaa wrote:
On ne peut pas raisonner en disant "les attentes des pros sont trop
hautes". Leurs attentes, on s'en fiche. C'est chaque application qui a
ses exigences. Si on fait un logiciel pour le pilotage d'une centrale
nucléaire, le niveau d'exigence qualité ne va pas être le même que si on
fait un logiciel de facturation... (ce sont les fameux "cost drivers" du
modèle d'estimation de coût des logiciels de Barry Boehm).
En résumé, ce ne sont pas les pros qui ont des exigences trop hautes, ce
sont les applications, en fonction de leur caractéristiques, qui
requièrent certains types d'exigences.



Moi je trouve au contraire que les attentes de l'industrie sont trop basses.
C'est pour ca qu'on se retrouve avec plein de logiciels qui ne marchent pas
bien, plein de problemes de securite, et des maitrise d'ouvrages debordees
sur des "evolutions" qui ne devraient pas avoir lieu d'etre.

A l'exception de quelques domaines specifiques (nucleaire, militaire), les
applications sont programmees comme des gorets par des non passionnes. On
se retrouve avec des trucs lourds qui plombent la vie de la secretaire, ou
des applications de gestion de stock ou de telephone qui plantouillent (ce qui
peut etre dommage si celles-ci sont utilisees pour gerer les stocks d'un
hopital, ou un centre d'appel pompiers/samu...)

Microsoft n'a pas du tout aide dans l'histoire: windows a totalement habitue
les gens a avoir des applis qui, parfois fonctionnent, et tres souvent
finissent en ecran bleu. Le tres fameux "c'est la faute a l'ordinateur", alors
que derriere il y a un debile leger a qui on a file une tache de programmation
qui outrepassait ses competences.

Si on fabriquait les immeubles comme on fait du logiciel, nous habiterions
tous dans des cabanes en bois...
Avatar
Marc Boyer
On 2009-02-04, Marc Espie wrote:
In article <4989af4b$0$4057$,
Wykaaa wrote:
Non, le rôle du professeur ne se limite pas à donner "tout juste les
bases" comme vous dites, surtout en programmation. Il ne peut éviter de
parler de la pratique du langage (comment il DOIT se pratiquer)



Je vais etre tres mauvaise langue, mais j'ai vu suffisamment de charges
de TD occupes a faire des cours de C montrer de super-mauvaises pratiques
pour ne pas avoir envie de faire pareil (exemple: des bouts de code utilisant
gets! ou des bouts de code utilisant scanf sans verification de la valeur de
retour).



Non, tu peux dire que les enseignements ne sont pas tous bons.
De toute façon, comme l'enseignement compte pour quasiment rien
dans la carrière d'un enseignant chercheur, et les cours
entre BAC+1 et BAC+3 encore moins que les autres...

Et puis il y a le status spécifique du C: comme c'est encore
*le* langage utilisé par pas mal de filière non informatique,
mais qu'on répugne à recruter quelqu'un qui ne fasse que ça.
Un peu comme si on faisait donner des cours d'anglais
par des chercheurs en bio en fac de bio...

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...
Avatar
Marc Boyer
On 2009-02-04, Wykaaa wrote:
Marc Espie a écrit :
In article <4989af4b$0$4057$,
Wykaaa wrote:
Non, le rôle du professeur ne se limite pas à donner "tout juste les
bases" comme vous dites, surtout en programmation. Il ne peut éviter de
parler de la pratique du langage (comment il DOIT se pratiquer)



Je vais etre tres mauvaise langue, mais j'ai vu suffisamment de charges
de TD occupes a faire des cours de C montrer de super-mauvaises pratiques
pour ne pas avoir envie de faire pareil (exemple: des bouts de code utilisant
gets! ou des bouts de code utilisant scanf sans verification de la valeur de
retour).



Hélas ! C'est cela que j'essaie de dénoncer.

Un autre exemple : combien j'ai vu d'étudiants fraîchement émoulus de la
fac ou d'une grande école, incapables d'établir correctement les
dépendances en C++ d'une dizaine de .h et autant de .cpp et n'avoir
toujours pas compris la différence entre une déclaration et une
définition d'externe...



Et ils avaient un diplome dans quelle spécialité ?
Un des problèmes, c'est que les besoins en informatique
(au sens large) sont largement supérieurs aux capacités de
formation. Du coup, un ingénieur info va se retrouver à
travailler en SSII avec des ingénieurs du batiment, des
agronomes, etc.
Ils auront tous eut un cours de C ou C++ ou Java.
Mais pas avec les mêmes volumes, le même environnement
(un cours de C entre 4 cours d'ASM, Compil, Caml,
Java ne donne pas la même chose qu'un cours de C sec)...

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...
Avatar
Marc Boyer
On 2009-02-05, Michael DOUBEZ wrote:
Wykaaa wrote:
Marc Espie a écrit :
In article <4989af4b$0$4057$,
Wykaaa wrote:
Non, le rôle du professeur ne se limite pas à donner "tout juste les
bases" comme vous dites, surtout en programmation. Il ne peut éviter
de parler de la pratique du langage (comment il DOIT se pratiquer)



Je vais etre tres mauvaise langue, mais j'ai vu suffisamment de charges
de TD occupes a faire des cours de C montrer de super-mauvaises pratiques
pour ne pas avoir envie de faire pareil (exemple: des bouts de code
utilisant
gets! ou des bouts de code utilisant scanf sans verification de la
valeur de
retour).



Un autre exemple : combien j'ai vu d'étudiants fraîchement émoulus de la
fac ou d'une grande école, incapables d'établir correctement les
dépendances en C++ d'une dizaine de .h et autant de .cpp et n'avoir
toujours pas compris la différence entre une déclaration et une
définition d'externe...

Je trouve cela vraiment triste !



Sans vouloir déprécier ton ressenti, j'entends tellement de plaintes de
ce genre que:
1. soit il y à un problème d'éducation
2. soit la génération baisse
3. soit les attentes des pros sont trop haute



C'est systémique:
2. Le niveau baisse: depuis que l'homme a inventé l'écriture, il a
écrit pour se plaindre du niveau des jeunes (babylone, grece, rome, etc).
3. Tout le monde (et les industriels avec) cherche le mouton a 5 pates:
le diplomé jeune, spécialiste mais polyvalent, avec 5 ans d'expérience
mais travaillant pour un salaire de débutant, excellent technicien
avec un profil de futur cadre.

Ce qui nous ramène au point 2; ce qui est possible: je vois beaucoup de
jeunes pour qui l'informatique est un travail comme un autre. Dans ma
génération c'était encore une histoire de passion ou de réelle envie de
faire de l'informatique. Alors peut être y a-t-il une adaptation à faire
de la part des enseignants pour adresser ce type d'élève; je ne sais pas.



Les enseignants font leur possible: mais avec des gens pas motivés,
c'est toujours plus dur.
Et puis les programmes enflent en informatique.
Au tout début, on apprenait
electronique / Algorithmique / ASM
et puis, sont arrivés le C et le LISP (et Pascal, etc.)
circuits logique / Algorithmique / ASM / C / LISP / Compilation / OS
et puis sont arrivées les langage 3G (C++, Java, Ada, POO)
circuits logique / Algorithmique / ASM / C / LISP / Compilation / OS / POO / LOO
et puis on a maintenant toutes les Weberies JSP, ASP, J2EEE, etc.

Je parle pas des BD, des réseaux, de la sécu...

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...
Avatar
Marc Boyer
On 2009-02-05, Marc Espie wrote:
In article <498ab645$0$18363$,
Wykaaa wrote:
On ne peut pas raisonner en disant "les attentes des pros sont trop
hautes". Leurs attentes, on s'en fiche. C'est chaque application qui a
ses exigences. Si on fait un logiciel pour le pilotage d'une centrale
nucléaire, le niveau d'exigence qualité ne va pas être le même que si on
fait un logiciel de facturation... (ce sont les fameux "cost drivers" du
modèle d'estimation de coût des logiciels de Barry Boehm).
En résumé, ce ne sont pas les pros qui ont des exigences trop hautes, ce
sont les applications, en fonction de leur caractéristiques, qui
requièrent certains types d'exigences.



Moi je trouve au contraire que les attentes de l'industrie sont trop basses.
C'est pour ca qu'on se retrouve avec plein de logiciels qui ne marchent pas
bien, plein de problemes de securite, et des maitrise d'ouvrages debordees
sur des "evolutions" qui ne devraient pas avoir lieu d'etre.



Disons que, dans l'industrie en général, il faut un équilibre entre
qualité et coût final, mais en effet, en ce qui concerne l'informatique
des années 80 à nos jours, on serait plutôt globalement en déficit
de qualité il me semble.

A l'exception de quelques domaines specifiques (nucleaire, militaire), les
applications sont programmees comme des gorets par des non passionnes. On
se retrouve avec des trucs lourds qui plombent la vie de la secretaire, ou
des applications de gestion de stock ou de telephone qui plantouillent (ce qui
peut etre dommage si celles-ci sont utilisees pour gerer les stocks d'un
hopital, ou un centre d'appel pompiers/samu...)



Sur les téléphones, un fournisseur (dont je terrais le nom) nous avait
expliqué le principe des "offres limitées". Histoire d'être les premiers
sur le marché, il font une "offre limitée" avec pas trop d'utilisateurs.
Ils savent que ça marche pas trop, mais bon, avec un nombre raisonnable
d'utilisateurs, beaucoup de devéloppeurs, ils limittent la casse, et
ils font leur pub...

Marc Boyer
--
Au XXIème siècle, notre projet de société s'est réduit
à un projet économique...
Avatar
Wykaaa
Marc Espie a écrit :
In article <498ab645$0$18363$,
Wykaaa wrote:
On ne peut pas raisonner en disant "les attentes des pros sont trop
hautes". Leurs attentes, on s'en fiche. C'est chaque application qui a
ses exigences. Si on fait un logiciel pour le pilotage d'une centrale
nucléaire, le niveau d'exigence qualité ne va pas être le même que si on
fait un logiciel de facturation... (ce sont les fameux "cost drivers" du
modèle d'estimation de coût des logiciels de Barry Boehm).
En résumé, ce ne sont pas les pros qui ont des exigences trop hautes, ce
sont les applications, en fonction de leur caractéristiques, qui
requièrent certains types d'exigences.



Moi je trouve au contraire que les attentes de l'industrie sont trop basses.
C'est pour ca qu'on se retrouve avec plein de logiciels qui ne marchent pas
bien, plein de problemes de securite, et des maitrise d'ouvrages debordees
sur des "evolutions" qui ne devraient pas avoir lieu d'etre.

A l'exception de quelques domaines specifiques (nucleaire, militaire), les
applications sont programmees comme des gorets par des non passionnes. On
se retrouve avec des trucs lourds qui plombent la vie de la secretaire, ou
des applications de gestion de stock ou de telephone qui plantouillent (ce qui
peut etre dommage si celles-ci sont utilisees pour gerer les stocks d'un
hopital, ou un centre d'appel pompiers/samu...)

Microsoft n'a pas du tout aide dans l'histoire: windows a totalement habitue
les gens a avoir des applis qui, parfois fonctionnent, et tres souvent
finissent en ecran bleu. Le tres fameux "c'est la faute a l'ordinateur", alors
que derriere il y a un debile leger a qui on a file une tache de programmation
qui outrepassait ses competences.

Si on fabriquait les immeubles comme on fait du logiciel, nous habiterions
tous dans des cabanes en bois...



Je suis à 110% d'accord avec toi.
Une autre image : si les ponts étaient conçus et construits comme les
logiciels, je n'emprunterais jamais un pont...
Avatar
Wykaaa
Marc Boyer a écrit :
On 2009-02-05, Michael DOUBEZ wrote:
Wykaaa wrote:
Marc Espie a écrit :
In article <4989af4b$0$4057$,
Wykaaa wrote:
Non, le rôle du professeur ne se limite pas à donner "tout juste les
bases" comme vous dites, surtout en programmation. Il ne peut éviter
de parler de la pratique du langage (comment il DOIT se pratiquer)


Je vais etre tres mauvaise langue, mais j'ai vu suffisamment de charges
de TD occupes a faire des cours de C montrer de super-mauvaises pratiques
pour ne pas avoir envie de faire pareil (exemple: des bouts de code
utilisant
gets! ou des bouts de code utilisant scanf sans verification de la
valeur de
retour).


Un autre exemple : combien j'ai vu d'étudiants fraîchement émoulus de la
fac ou d'une grande école, incapables d'établir correctement les
dépendances en C++ d'une dizaine de .h et autant de .cpp et n'avoir
toujours pas compris la différence entre une déclaration et une
définition d'externe...

Je trouve cela vraiment triste !


Sans vouloir déprécier ton ressenti, j'entends tellement de plaintes de
ce genre que:
1. soit il y à un problème d'éducation
2. soit la génération baisse
3. soit les attentes des pros sont trop haute



C'est systémique:
2. Le niveau baisse: depuis que l'homme a inventé l'écriture, il a
écrit pour se plaindre du niveau des jeunes (babylone, grece, rome, etc).
3. Tout le monde (et les industriels avec) cherche le mouton a 5 pates:
le diplomé jeune, spécialiste mais polyvalent, avec 5 ans d'expérience
mais travaillant pour un salaire de débutant, excellent technicien
avec un profil de futur cadre.

Ce qui nous ramène au point 2; ce qui est possible: je vois beaucoup de
jeunes pour qui l'informatique est un travail comme un autre. Dans ma
génération c'était encore une histoire de passion ou de réelle envie de
faire de l'informatique. Alors peut être y a-t-il une adaptation à faire
de la part des enseignants pour adresser ce type d'élève; je ne sais pas.



Les enseignants font leur possible: mais avec des gens pas motivés,
c'est toujours plus dur.
Et puis les programmes enflent en informatique.
Au tout début, on apprenait
electronique / Algorithmique / ASM
et puis, sont arrivés le C et le LISP (et Pascal, etc.)
circuits logique / Algorithmique / ASM / C / LISP / Compilation / OS
et puis sont arrivées les langage 3G (C++, Java, Ada, POO)
circuits logique / Algorithmique / ASM / C / LISP / Compilation / OS / POO / LOO
et puis on a maintenant toutes les Weberies JSP, ASP, J2EEE, etc.

Je parle pas des BD, des réseaux, de la sécu...

Marc Boyer



Je parlais d'étudiants fraîchement sortis d'un cursus informatique en
fac ou de l'option informatique de dernière année dans telle ou telle
grande école et non pas des étudiants sortant d'une obscure option
informatique dans un cursus de biologie, de chimie voire de géologie
(j'en ai vus pourtant. Ils étaient totalement nuls mais ce n'étaient pas
de leur faute...)

Perso, à l'époque où j'encadrais des développeurs (dans le domaine des
compilateurs, c'était entre 78 et 88), les seuls valables que j'ai vus
sont ceux qui sortait de l'ENSIMAG à Grenoble et quelques DESS ou DEA,
en particulier Orsay et Nancy. Mais je ne généralise pas. Déjà, à
l'époque, c'était pas très facile de trouver des ingénieurs motivés par
la programmation, passionnés et, qui plus est, prêts à affronter le
difficile domaine des compilateurs/interpréteurs. L'équipe les encadrait
fortement et nous considérions que, pour qu'ils soient autonomes sur le
domaine (conception et programmation), il fallait compter environ 18
mois (pour des très bons).
Certains ont fait des choses extraordinaires dans le domaine et je leur
faisais confiance les yeux fermés. Il y avait cependant peu d'élus !

Cette discussion n'ayant plus grand-chose à voir avec le problème
initial (quoique...), si cela intéresse les personnes qui participent à
cette partie du fil, je propose d'ouvrir un fil dans
fr.comp.lang.general (ça ferait revivre ce groupe) sur l'enseignement de
la programmation.
Ca vous dirait ?
Avatar
pjb
Wykaaa writes:
Je suis d'accord qu'il n'y a plus le côté "passionné" car
l'informatique n'est plus quelque chose de "nouveau" pour la
génération actuelle. Elle est "née avec" alors que pour nous ce
n'était pas le cas.
D'ailleurs lors d'une évaluation d'un de mes cours (j'ai fait des
formations d'adultes en entreprise : conception objet, C, C++, Java,
Ada, JavaScript, etc.), un (jeune) participant avait mis en remarque :
"trop passionné". Ceci m'avait choqué car pour moi c'était une
qualité...



Oui, c'est une qualité. Ne pas se laisser submerger par le fâdisme!


Concernant le point 3, c'est à la discrétion de chacun. Je me
demande, vu la multiplicité des technologies aujourd'hui si il est
normal d'avoir les même attentes sur un domaine particulier.



On ne peut pas raisonner en disant "les attentes des pros sont trop
hautes". Leurs attentes, on s'en fiche. C'est chaque application qui a
ses exigences. Si on fait un logiciel pour le pilotage d'une centrale
nucléaire, le niveau d'exigence qualité ne va pas être le même que si
on fait un logiciel de facturation... (ce sont les fameux "cost
drivers" du modèle d'estimation de coût des logiciels de Barry Boehm).
En résumé, ce ne sont pas les pros qui ont des exigences trop hautes,
ce sont les applications, en fonction de leur caractéristiques, qui
requièrent certains types d'exigences.



Ouh là il faudrait évaluer ce qui est le plus mortel. Une petite
fuite d'une centrale nucléaire, ou une crise économique mondiale due à
un logiciel de comptabilité pourri, qui aura pour conséquence du
méga-chômage, des famines, et peut être des guerres!?

Pour moi, on n'y coupe pas, il faut assurrer la qualité de tous les
logiciels. Le problème, c'est qu'une fois vendus, ou publiés sur le
web, on ne maitrise pas ce qu'en font les utilisateurs. Les companies
comme Apple et Microsoft indiquent dans leurs licences que leurs
logiciels/matériels ne sont pas à utilisé dans des centrales
nucléaires ou pour des activité liées à des questions de vie ou de
mort, mais ça n'empêche pas de les y trouver dans de telles
applications. Alors la responsabilité légale des constructeurs est
dégagée, mais pas la responsabilité morale des développeurs.


Pour revenir au sujet originel, je suis d'accord qu'il vaut mieux
montrer à l'élève la bonne pratique dès le début et qu'un TP ne doit
pas saborder cet objectif à la restriction que cela ne brouille pas
le message: je ne vois pas l'intérêt de faire écrire std:: ou
boost::bidule::subtruc:: à tout bout de champ si cela ne sers pas
l'objectif pédagogique du TP.



Oui mais si ça sert l'objectif qualité ou l'objectif de "c'est comme
ça qu'on doit faire dans ce cas précis" ?



--
__Pascal Bourguignon__
Avatar
pjb
(Marc Espie) writes:

In article <498ab645$0$18363$,
Wykaaa wrote:
On ne peut pas raisonner en disant "les attentes des pros sont trop
hautes". Leurs attentes, on s'en fiche. C'est chaque application qui a
ses exigences. Si on fait un logiciel pour le pilotage d'une centrale
nucléaire, le niveau d'exigence qualité ne va pas être le même que si on
fait un logiciel de facturation... (ce sont les fameux "cost drivers" du
modèle d'estimation de coût des logiciels de Barry Boehm).
En résumé, ce ne sont pas les pros qui ont des exigences trop hautes, ce
sont les applications, en fonction de leur caractéristiques, qui
requièrent certains types d'exigences.



Moi je trouve au contraire que les attentes de l'industrie sont trop basses.
C'est pour ca qu'on se retrouve avec plein de logiciels qui ne marchent pas
bien, plein de problemes de securite, et des maitrise d'ouvrages debordees
sur des "evolutions" qui ne devraient pas avoir lieu d'etre.

A l'exception de quelques domaines specifiques (nucleaire, militaire), les
applications sont programmees comme des gorets par des non passionnes. On
se retrouve avec des trucs lourds qui plombent la vie de la secretaire, ou
des applications de gestion de stock ou de telephone qui plantouillent (ce qui
peut etre dommage si celles-ci sont utilisees pour gerer les stocks d'un
hopital, ou un centre d'appel pompiers/samu...)

Microsoft n'a pas du tout aide dans l'histoire: windows a totalement habitue
les gens a avoir des applis qui, parfois fonctionnent, et tres souvent
finissent en ecran bleu. Le tres fameux "c'est la faute a l'ordinateur", alors
que derriere il y a un debile leger a qui on a file une tache de programmation
qui outrepassait ses competences.

Si on fabriquait les immeubles comme on fait du logiciel, nous habiterions
tous dans des cabanes en bois...



Parfaitement.

--
__Pascal Bourguignon__
2 3 4 5 6