Chercher un livre sur le C avec certains critères.
200 réponses
Francois
Bonjour à tous,
Je débute dans le C et personnellement j'apprends surtout avec les
livres. J'ai commencé "Livre du C premier langage" de Delannoy (je
précise que j'avais quand même des petites notions de programmations,
même si, à mon sens, j'étais [ et suis encore ? ] vraiment ce qu'on
appelle un débutant).
Je suis en train de lire le K&R (deuxième édition) qui est bien sûr
beaucoup plus difficile. C'est du concentré, mais quand on y regarde de
prêt, c'est quand assez précis et bien fait. Ceci étant, il y a des
choses qui ne me satisfont pas complètement.
Je trouve que ce livre à une approche trop éloignée de la machine
(comment une donnée est encodée ? comment se passe l'histoire du signed
ou unsigned du point de vue de la machine etc.). Je m'explique.
Bien sûr, le langage C est un langage abstrait de "haut niveau" qui se
doit (en principe) de ne pas faire référence à la machine. Donc c'est
normal qu'un livre sur le C ne parle pas (trop) des problèmes qui
dépendent de l'architecture. Ceci étant, j'aimerais savoir si un tel
livre existe malgré tout. Un livre qui expose le langage C et qui
n'hésite pas de temps en temps à parler de ce qui se passe dans la
machine (bien sûr, justement, ce qui se passe dépend de la machine et
n'est pas universel, mais le livre pourrait présenter les choses sur
seulement une architecture "classique" par exemple). Bon, si je pouvais
éviter les circuits électroniques et compagnie quand même, ça serait
bien. Qu'on me dise que "le complément à 2 fait que l'addition devient
plus simple pour l'ordinateur puisqu'il suffit de faire une addition
classique" me suffit amplement. Une preuve de cela en passant des
explications sur des circuits électroniques peut-être me serait un peu
indigeste.
Bref, j'espère avoir été clair sur cette sorte de compromis que je
recherche (existe-t-il ?). Vous pouvez aller voir cette discussion (où
mon pseudo est sisco)
Le nom d'une chose n'est pas ce qu'il nomme. C'est peut être un peu métaphysique comme idée mais la différence est fondamentale en informatique.
Je pense que tu as raison de faire cette remarque dont la non-observation est en effet source de confusion.
Il n'y aucune différence entre une expression de type tableau réduite au nom d'une variable et une expression plus complexe de même type.
Oui mais ce n'est pas évident de prendre conscience de tout ça quand on est débutant (franchement, il a fallu que je lise la norme pour comprendre qu'une expression avait un type, avant j'étais comme Monsieur Jourdain)
Son adresse peut être fixée ou pas (pense à une variable locale à une fonction, son adresse ne sera fixée que quand la fonction commencera).
Tiens oui, en effet. Mais il ne parle pas de l'adresse du tableau, il parle de la valeur du "nom du tableau", disons de la valeur du tableau.
Francois <mathsattacks@free.fr> writes:
« Le nom t d'un tableau
Le nom d'une chose n'est pas ce qu'il nomme. C'est peut être un peu
métaphysique comme idée mais la différence est fondamentale en
informatique.
Je pense que tu as raison de faire cette remarque dont la
non-observation est en effet source de confusion.
Il n'y aucune différence entre une expression de type tableau réduite au
nom d'une variable et une expression plus complexe de même type.
Oui mais ce n'est pas évident de prendre conscience de tout ça quand on
est débutant (franchement, il a fallu que je lise la norme pour
comprendre qu'une expression avait un type, avant j'étais comme Monsieur
Jourdain)
Son adresse peut être fixée ou pas (pense à une variable locale à une
fonction, son adresse ne sera fixée que quand la fonction commencera).
Tiens oui, en effet. Mais il ne parle pas de l'adresse du tableau, il
parle de la valeur du "nom du tableau", disons de la valeur du tableau.
Le nom d'une chose n'est pas ce qu'il nomme. C'est peut être un peu métaphysique comme idée mais la différence est fondamentale en informatique.
Je pense que tu as raison de faire cette remarque dont la non-observation est en effet source de confusion.
Il n'y aucune différence entre une expression de type tableau réduite au nom d'une variable et une expression plus complexe de même type.
Oui mais ce n'est pas évident de prendre conscience de tout ça quand on est débutant (franchement, il a fallu que je lise la norme pour comprendre qu'une expression avait un type, avant j'étais comme Monsieur Jourdain)
Son adresse peut être fixée ou pas (pense à une variable locale à une fonction, son adresse ne sera fixée que quand la fonction commencera).
Tiens oui, en effet. Mais il ne parle pas de l'adresse du tableau, il parle de la valeur du "nom du tableau", disons de la valeur du tableau.
Marc Boyer
On 2008-03-14, candide wrote:
Parce que le projet a de *multiples* objectifs. C'est d'abord un projet Java, Dans ton précédent message, tu parlais d'un projet des étudiants en
............ java ????????
Oui. Parce que je pense que la question des variables globales est assez indépendante du langage. Non ?
Ne fais pas semblant de ne pas comprendre le sens de mes points de suspension et mes points d'interrogation.
Je ne fais pas semblant. Je suppose que tes "??????" signifie un grand étonnement, et je te dis que oui, je pense que ça n'a pas grand importance dans ce contexte là.
2°) Et tu crois qu'un étudiant qui devra coder en C l'équivalent de tes 5000 lignes de code en java (donc sans doute BEAUCOUP plus de lignes en C pour faire la même chose) pourra le faire sans "avoir réellement besoin de conception, méthode" ? permets-moi d'en douter.
Ben, si. Bon, sauf que ce projet là estfait pour montrer l'intérêt de la liaison tardive / typage dynamique / méthode virtuelle. Mais bon vu la taille du projet, un petit switch à 12 entrées ferait aussi bien l'affaire. Donc, non, ce projet (hormis son IHM) se ferait sans beaucoup plus de difficulté en C. Et la rigueur dans la conception permet de gagner pas mal de temps (il y a un facteur 3 environ dans les temps de développement entre ceux qui suivent en cours et ceux qui decouvrent le langage lors du projet), mais ne sont pas indispendables.
A t'entendre, on pourrait considérer que quelqu'un qui sait programmer au moyen cours en Java saura le faire en C par simple transposition.
A condition d'avoir eu un cours de C dans les jambes quand même ;-)
La prochaine veuille faire preuve de plus de précision dans tes propos et veuille trouver les exemples adéquats.
J'irais faire un tour si tu veux dans les archives de projet C pour voir le nombre de lignes. Là, je parlais du projet dont je sors et dont j'ai les chiffres en tête.
Marc Boyer
On 2008-03-14, candide <c-candide@wanadoo.fr> wrote:
Parce que le projet a de *multiples* objectifs. C'est d'abord
un projet Java,
Dans ton précédent message, tu parlais d'un projet des étudiants en
............ java ????????
Oui.
Parce que je pense que la question des variables globales
est assez indépendante du langage. Non ?
Ne fais pas semblant de ne pas comprendre le sens de mes points de
suspension et mes points d'interrogation.
Je ne fais pas semblant. Je suppose que tes "??????" signifie un grand
étonnement, et je te dis que oui, je pense que ça n'a pas grand
importance dans ce contexte là.
2°) Et tu crois qu'un étudiant qui devra coder en C l'équivalent de tes
5000 lignes de code en java (donc sans doute BEAUCOUP plus de lignes en
C pour faire la même chose) pourra le faire sans "avoir réellement
besoin de conception, méthode" ? permets-moi d'en douter.
Ben, si.
Bon, sauf que ce projet là estfait pour montrer l'intérêt de la
liaison tardive / typage dynamique / méthode virtuelle.
Mais bon vu la taille du projet, un petit switch à 12 entrées
ferait aussi bien l'affaire.
Donc, non, ce projet (hormis son IHM) se ferait sans beaucoup
plus de difficulté en C.
Et la rigueur dans la conception permet de gagner pas mal de temps
(il y a un facteur 3 environ dans les temps de développement entre
ceux qui suivent en cours et ceux qui decouvrent le langage
lors du projet), mais ne sont pas indispendables.
A t'entendre, on pourrait considérer que quelqu'un qui sait programmer
au moyen cours en Java saura le faire en C par simple transposition.
A condition d'avoir eu un cours de C dans les jambes quand même ;-)
La prochaine veuille faire preuve de plus de précision dans tes propos
et veuille trouver les exemples adéquats.
J'irais faire un tour si tu veux dans les archives de projet C pour
voir le nombre de lignes. Là, je parlais du projet dont je sors et
dont j'ai les chiffres en tête.
Parce que le projet a de *multiples* objectifs. C'est d'abord un projet Java, Dans ton précédent message, tu parlais d'un projet des étudiants en
............ java ????????
Oui. Parce que je pense que la question des variables globales est assez indépendante du langage. Non ?
Ne fais pas semblant de ne pas comprendre le sens de mes points de suspension et mes points d'interrogation.
Je ne fais pas semblant. Je suppose que tes "??????" signifie un grand étonnement, et je te dis que oui, je pense que ça n'a pas grand importance dans ce contexte là.
2°) Et tu crois qu'un étudiant qui devra coder en C l'équivalent de tes 5000 lignes de code en java (donc sans doute BEAUCOUP plus de lignes en C pour faire la même chose) pourra le faire sans "avoir réellement besoin de conception, méthode" ? permets-moi d'en douter.
Ben, si. Bon, sauf que ce projet là estfait pour montrer l'intérêt de la liaison tardive / typage dynamique / méthode virtuelle. Mais bon vu la taille du projet, un petit switch à 12 entrées ferait aussi bien l'affaire. Donc, non, ce projet (hormis son IHM) se ferait sans beaucoup plus de difficulté en C. Et la rigueur dans la conception permet de gagner pas mal de temps (il y a un facteur 3 environ dans les temps de développement entre ceux qui suivent en cours et ceux qui decouvrent le langage lors du projet), mais ne sont pas indispendables.
A t'entendre, on pourrait considérer que quelqu'un qui sait programmer au moyen cours en Java saura le faire en C par simple transposition.
A condition d'avoir eu un cours de C dans les jambes quand même ;-)
La prochaine veuille faire preuve de plus de précision dans tes propos et veuille trouver les exemples adéquats.
J'irais faire un tour si tu veux dans les archives de projet C pour voir le nombre de lignes. Là, je parlais du projet dont je sors et dont j'ai les chiffres en tête.
Marc Boyer
Marc Boyer
On 2008-03-15, Jean-Marc Bourguet wrote:
candide writes:
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant l'impression que nous sommes d'accord.
Il me semble aussi, chacun apportant un éclairage particulier en fonction de l'état courant de la discussion et de son expérience propre.
D'expérience, on constate qu'on abuse plus facile des variables globales qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche donc contre.
Oui, de même que quand on dit de faire attention aux matière grasses dans l'alimentation, c'est en général pour protester contre l'excès, alors que la pénurie serait grave elle aussi.
Marc Boyer
On 2008-03-15, Jean-Marc Bourguet <jm@bourguet.org> wrote:
candide <c-candide@wanadoo.fr> writes:
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton
collègue informaticien du lundi dit qu'une variable globale, c'est pas
difficile à comprendre et il n'avance pas l'argument de la taille
critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant l'impression que nous sommes d'accord.
Il me semble aussi, chacun apportant un éclairage particulier en
fonction de l'état courant de la discussion et de son expérience propre.
D'expérience, on constate qu'on abuse plus facile des variables globales
qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche
donc contre.
Oui, de même que quand on dit de faire attention aux matière grasses
dans l'alimentation, c'est en général pour protester contre l'excès,
alors que la pénurie serait grave elle aussi.
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant l'impression que nous sommes d'accord.
Il me semble aussi, chacun apportant un éclairage particulier en fonction de l'état courant de la discussion et de son expérience propre.
D'expérience, on constate qu'on abuse plus facile des variables globales qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche donc contre.
Oui, de même que quand on dit de faire attention aux matière grasses dans l'alimentation, c'est en général pour protester contre l'excès, alors que la pénurie serait grave elle aussi.
Marc Boyer
candide
On 2008-03-15, Jean-Marc Bourguet wrote:
candide writes:
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable). J'ai pourtant l'impression que nous sommes d'accord.
Il me semble aussi, chacun apportant un éclairage particulier en fonction de l'état courant de la discussion et de son expérience propre.
D'expérience, on constate qu'on abuse plus facile des variables globales qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche donc contre.
Oui, de même que quand on dit de faire attention aux matière grasses dans l'alimentation, c'est en général pour protester contre l'excès, alors que la pénurie serait grave elle aussi.
Je répète que je n'ai jamais prôné l'utilisation de variables globales et de toute façon, je ne suis pas assez expérimenté pour prôner quoi que ce soit. Pour moduler ce que j'ai dit l'autre fois, je viens de faire un tour sur le dépot de sources de gnome :
http://ftp.acc.umu.se/pub/GNOME/sources/
et j'ai pu constater en examinant quelques fichiers (evince, gnome-bluetooth, gnome-desktop par ex.) qu'il n'y avait aucune variable globale.
On 2008-03-15, Jean-Marc Bourguet <jm@bourguet.org> wrote:
candide <c-candide@wanadoo.fr> writes:
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton
collègue informaticien du lundi dit qu'une variable globale, c'est pas
difficile à comprendre et il n'avance pas l'argument de la taille
critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant l'impression que nous sommes d'accord.
Il me semble aussi, chacun apportant un éclairage particulier en
fonction de l'état courant de la discussion et de son expérience propre.
D'expérience, on constate qu'on abuse plus facile des variables globales
qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche
donc contre.
Oui, de même que quand on dit de faire attention aux matière grasses
dans l'alimentation, c'est en général pour protester contre l'excès,
alors que la pénurie serait grave elle aussi.
Je répète que je n'ai jamais prôné l'utilisation de variables globales
et de toute façon, je ne suis pas assez expérimenté pour prôner quoi que
ce soit. Pour moduler ce que j'ai dit l'autre fois, je viens de faire un
tour sur le dépot de sources de gnome :
http://ftp.acc.umu.se/pub/GNOME/sources/
et j'ai pu constater en examinant quelques fichiers (evince,
gnome-bluetooth, gnome-desktop par ex.) qu'il n'y avait aucune variable
globale.
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable). J'ai pourtant l'impression que nous sommes d'accord.
Il me semble aussi, chacun apportant un éclairage particulier en fonction de l'état courant de la discussion et de son expérience propre.
D'expérience, on constate qu'on abuse plus facile des variables globales qu'on ne pèche en ne les utilisant pas où elles sont adéquates. On prèche donc contre.
Oui, de même que quand on dit de faire attention aux matière grasses dans l'alimentation, c'est en général pour protester contre l'excès, alors que la pénurie serait grave elle aussi.
Je répète que je n'ai jamais prôné l'utilisation de variables globales et de toute façon, je ne suis pas assez expérimenté pour prôner quoi que ce soit. Pour moduler ce que j'ai dit l'autre fois, je viens de faire un tour sur le dépot de sources de gnome :
http://ftp.acc.umu.se/pub/GNOME/sources/
et j'ai pu constater en examinant quelques fichiers (evince, gnome-bluetooth, gnome-desktop par ex.) qu'il n'y avait aucune variable globale.
Thierry B.
--{ Francois a plopé ceci: }--
Désolé de m'immiscer dans vos conversations techniques, mais je voulais juste avoir votre avis sur ce livre :
http://www.amazon.fr/
Quel titre, quel auteur, quel éditeur, quelle année ?
-- RM> Mauvais OS, changer d'OS (c)(r)(tm) J'ai windows 98 et comment faire pour changer l'os de windows 98? Dans ajout et suppression du programme et il ne parle pas d'os. -+- DN in : GNU -+- L'O.S. est las, hélas, c'est là qu'est l'os -+-
--{ Francois a plopé ceci: }--
Désolé de m'immiscer dans vos conversations techniques, mais je voulais
juste avoir votre avis sur ce livre :
http://www.amazon.fr/
Quel titre, quel auteur, quel éditeur, quelle année ?
--
RM> Mauvais OS, changer d'OS (c)(r)(tm)
J'ai windows 98 et comment faire pour changer l'os de windows 98?
Dans ajout et suppression du programme et il ne parle pas d'os.
-+- DN in : GNU -+- L'O.S. est las, hélas, c'est là qu'est l'os -+-
Désolé de m'immiscer dans vos conversations techniques, mais je voulais juste avoir votre avis sur ce livre :
http://www.amazon.fr/
Quel titre, quel auteur, quel éditeur, quelle année ?
-- RM> Mauvais OS, changer d'OS (c)(r)(tm) J'ai windows 98 et comment faire pour changer l'os de windows 98? Dans ajout et suppression du programme et il ne parle pas d'os. -+- DN in : GNU -+- L'O.S. est las, hélas, c'est là qu'est l'os -+-
Marc Boyer
On 2008-03-14, candide wrote:
Le terme de "norme" est particulièrement inadapté ici (à moins que tu ne l'aies choisi volontairement mais je ne vois pas en quoi les variables globales ne respectent pas la norme). Et je ne vois pas le rapport avec ce que je dis et je te signale que vous n'êtes pas d'accord entre vous (toi et l'informaticien du lundi), lui il dit qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur faute, c'est le matos qui est trop vieux ou inadapté.
Parce que je travaille surtout avec des débutants, et pas du vieux code, et Jean-Marc, ce soit être l'inverse ;-)
entre en compte. En gros tu as les étapes ou ça devient trop gros pour
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre
Ben, tu trouve ça difficile à comprendre ? Une variable globale, c'est une variable accessible par tous...
et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant écrit
Un problème de fond du génie logiciel, c'est qu'il est là pour permettre de passer à l'échelle ("programming in the large"), ce qui me semble être un argument sur la taille.
Ce que je dis c'est que la réalité n'est pas conforme à ce que vous racontez
Ben on sait. D'ailleurs, je sais aussi que les codes plantent, que les fusées explosent, que les logiciels qui se vendent le mieux ne sont pas forcément les moins bugués, et que moi même, quand je reprend mon propre code après 3 mois d'interruption, je me dis que j'aurais mieux fait de documenter sur le moment...
Est-ce que cela signifie qu'il ne faut pas essayer de réfléchir sur les bonnes pratiques ?
les variables globales, c'est à cause de la flemme MDR ! dans le genre débilités franchement !
Et pourtant, c'est une facilité (en général, j'exclue bien sur tous les cas particuliers peu fréquents mais réels où on ne peut pas faire autrement).
c'est tout juste s'il ne nous as pas fait une étude comparative entre les codeurs du nord de la France et les codeurs des pays de la sieste.
Ben, la bière est meilleure au nord.
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu d'expérience. Je dirais même que des variables globales peuvent aider à structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc pas à bannir, elles sont même parfois à recommander !!!!! MDR. Une fois de plus, vous n'êtes même pas d'accord entre vous.
Non, toujours le "passage à l'échelle": une bonne solution à un petit problème n'est pas forcément bonne pour un gros problème. Par exemple, le menu déroulant, c'est bien pour 2-50 entrées. Quand il y a 5000 choix, un arbre, c'est pas mal... On ne conçoit pas une mobilette comme on conçoit un trente tonne. On n'organise pas le rangement des bouquins sur une étagère de bureau comme dans une bibliotèque à 400.000 ouvrages. Tiens, mon étagère est classée en pile: les plus récemment utilisés sur le dessus. Ma bibliothèque poche, elle, par ordre alphabétique. Et la bibliothèque de mon université, par thèmes, sous-thèmes, etc.
Un problème de l'informatique, c'est qu'un petit code écrit un jour comme une mobilette, on va le trouver pas mal, on va le customiser, l'alourdir, et le retrouver dans un trente tonne un jour...
Marc Boyer
On 2008-03-14, candide <c-candide@wanadoo.fr> wrote:
Le terme de "norme" est particulièrement inadapté ici (à moins que tu
ne l'aies choisi volontairement mais je ne vois pas en quoi les
variables globales ne respectent pas la norme). Et je ne vois pas le
rapport avec ce que je dis et je te signale que vous n'êtes pas
d'accord entre vous (toi et l'informaticien du lundi), lui il dit
qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur
faute, c'est le matos qui est trop vieux ou inadapté.
Parce que je travaille surtout avec des débutants, et pas du vieux
code, et Jean-Marc, ce soit être l'inverse ;-)
entre en compte. En gros tu as les étapes ou ça devient trop gros pour
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton
collègue informaticien du lundi dit qu'une variable globale, c'est pas
difficile à comprendre
Ben, tu trouve ça difficile à comprendre ?
Une variable globale, c'est une variable accessible par tous...
et il n'avance pas l'argument de la taille
critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant écrit
Un problème de fond du génie logiciel, c'est qu'il est là
pour permettre de passer à l'échelle ("programming in the large"),
ce qui me semble être un argument sur la taille.
Ce que je dis c'est que la réalité n'est pas conforme à
ce que vous racontez
Ben on sait. D'ailleurs, je sais aussi que les codes plantent,
que les fusées explosent, que les logiciels qui se vendent le mieux
ne sont pas forcément les moins bugués, et que moi même, quand je
reprend mon propre code après 3 mois d'interruption, je me dis que
j'aurais mieux fait de documenter sur le moment...
Est-ce que cela signifie qu'il ne faut pas essayer de réfléchir
sur les bonnes pratiques ?
les variables globales, c'est à cause de la flemme MDR ! dans le genre
débilités franchement !
Et pourtant, c'est une facilité (en général, j'exclue bien sur tous
les cas particuliers peu fréquents mais réels où on ne peut pas
faire autrement).
c'est tout juste s'il ne nous as pas fait une
étude comparative entre les codeurs du nord de la France et les
codeurs des pays de la sieste.
Ben, la bière est meilleure au nord.
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu
d'expérience. Je dirais même que des variables globales peuvent aider à
structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc
pas à bannir, elles sont même parfois à recommander !!!!! MDR. Une
fois de plus, vous n'êtes même pas d'accord entre vous.
Non, toujours le "passage à l'échelle": une bonne solution à un petit
problème n'est pas forcément bonne pour un gros problème. Par exemple,
le menu déroulant, c'est bien pour 2-50 entrées. Quand il y a 5000
choix, un arbre, c'est pas mal... On ne conçoit pas une mobilette
comme on conçoit un trente tonne. On n'organise pas le rangement des
bouquins sur une étagère de bureau comme dans une bibliotèque à
400.000 ouvrages. Tiens, mon étagère est classée en pile: les plus
récemment utilisés sur le dessus. Ma bibliothèque poche, elle, par
ordre alphabétique. Et la bibliothèque de mon université, par thèmes,
sous-thèmes, etc.
Un problème de l'informatique, c'est qu'un petit code écrit un jour
comme une mobilette, on va le trouver pas mal, on va le customiser,
l'alourdir, et le retrouver dans un trente tonne un jour...
Le terme de "norme" est particulièrement inadapté ici (à moins que tu ne l'aies choisi volontairement mais je ne vois pas en quoi les variables globales ne respectent pas la norme). Et je ne vois pas le rapport avec ce que je dis et je te signale que vous n'êtes pas d'accord entre vous (toi et l'informaticien du lundi), lui il dit qu'il y a de mauvais artisan et toi tu dis que, ce n'est pas de leur faute, c'est le matos qui est trop vieux ou inadapté.
Parce que je travaille surtout avec des débutants, et pas du vieux code, et Jean-Marc, ce soit être l'inverse ;-)
entre en compte. En gros tu as les étapes ou ça devient trop gros pour
Une fois de plus, vous n'êtes même pas d'accord entre vous, ton collègue informaticien du lundi dit qu'une variable globale, c'est pas difficile à comprendre
Ben, tu trouve ça difficile à comprendre ? Une variable globale, c'est une variable accessible par tous...
et il n'avance pas l'argument de la taille critique du code (ce que j'appelle l'argument à géométrie variable).
J'ai pourtant écrit
Un problème de fond du génie logiciel, c'est qu'il est là pour permettre de passer à l'échelle ("programming in the large"), ce qui me semble être un argument sur la taille.
Ce que je dis c'est que la réalité n'est pas conforme à ce que vous racontez
Ben on sait. D'ailleurs, je sais aussi que les codes plantent, que les fusées explosent, que les logiciels qui se vendent le mieux ne sont pas forcément les moins bugués, et que moi même, quand je reprend mon propre code après 3 mois d'interruption, je me dis que j'aurais mieux fait de documenter sur le moment...
Est-ce que cela signifie qu'il ne faut pas essayer de réfléchir sur les bonnes pratiques ?
les variables globales, c'est à cause de la flemme MDR ! dans le genre débilités franchement !
Et pourtant, c'est une facilité (en général, j'exclue bien sur tous les cas particuliers peu fréquents mais réels où on ne peut pas faire autrement).
c'est tout juste s'il ne nous as pas fait une étude comparative entre les codeurs du nord de la France et les codeurs des pays de la sieste.
Ben, la bière est meilleure au nord.
Non. 5000 lignes de code, ça s'improvise sans problème avec un peu d'expérience. Je dirais même que des variables globales peuvent aider à structurer quelque chose d'aussi petit
Voilà, encore un nouvel argument, les variables globales ne sont donc pas à bannir, elles sont même parfois à recommander !!!!! MDR. Une fois de plus, vous n'êtes même pas d'accord entre vous.
Non, toujours le "passage à l'échelle": une bonne solution à un petit problème n'est pas forcément bonne pour un gros problème. Par exemple, le menu déroulant, c'est bien pour 2-50 entrées. Quand il y a 5000 choix, un arbre, c'est pas mal... On ne conçoit pas une mobilette comme on conçoit un trente tonne. On n'organise pas le rangement des bouquins sur une étagère de bureau comme dans une bibliotèque à 400.000 ouvrages. Tiens, mon étagère est classée en pile: les plus récemment utilisés sur le dessus. Ma bibliothèque poche, elle, par ordre alphabétique. Et la bibliothèque de mon université, par thèmes, sous-thèmes, etc.
Un problème de l'informatique, c'est qu'un petit code écrit un jour comme une mobilette, on va le trouver pas mal, on va le customiser, l'alourdir, et le retrouver dans un trente tonne un jour...
Marc Boyer
Marc Boyer
On 2008-03-14, candide wrote:
Non, c'est un petit coup de provoc assumé. Je n'en crois pas un mot : ou bien c'est délibéré
Oui, c'est ce que je dis.
Non, tu n'es pas très courageux et tu ne veux pas assumer tes propos. Je ne pense pas qu'il y ait la moindre part de provo dans ton propos,
Ben, si.
c'est bel et bien à prendre tel quel, en tous les cas c'est comme ça que je le comprends et il me semble que c'est suffisant.
Comme tu veux.
M'enfin bon, s'il faut le redire, je le redis "un programmeur qui utilise des variables globales sans voir leur danger,
où-ai-je dis cela ?
c'est un programmeur du dimanche, un amateur".
Non, tu essayes d'édulcorer ton propos : assume
J'assume.
et démontres
Démontrer une intention, c'est au delà de mes compétences.
ou excuse-toi. Ton jugement de valeur allait bien au-delà de cette histoire de variables globales. Il suffit de relire dans quel contexte tu as répondu cela.
Je viens de relire. Nous avions passé un temps certain à présenter des arguments, avec des éclairages différents, et tu avais résumé par:
Donc pour résumer vos points de vue, il y a plein de raisons simples à utiliser des variables globales et plein de raison très compliquées et très obscures de ne pas les utiliser.
Ce qui me semblait une pointe de mauvaise foi, un brin de provocation. J'ai continué dans la même veine...
Ce n'est pas parce que toi tu es un mauvais jardinier que je vais te laisser me parler de façon méprisante sans réagir.
Réagit donc.
Avant de donner une réponse, faudrait d'abord lire et comprendre la question.
Quelle était donc la question restée sans réponse ?
Marc Boyer
On 2008-03-14, candide <c-candide@wanadoo.fr> wrote:
Non, c'est un petit coup de provoc assumé.
Je n'en crois pas un mot : ou bien c'est délibéré
Oui, c'est ce que je dis.
Non, tu n'es pas très courageux et tu ne veux pas assumer tes propos. Je
ne pense pas qu'il y ait la moindre part de provo dans ton propos,
Ben, si.
c'est bel et bien à prendre tel quel, en tous les cas c'est comme ça que
je le comprends et il me semble que c'est suffisant.
Comme tu veux.
M'enfin bon, s'il faut le redire, je le redis "un programmeur
qui utilise des variables globales sans voir leur danger,
où-ai-je dis cela ?
c'est un programmeur du dimanche, un amateur".
Non, tu essayes d'édulcorer ton propos : assume
J'assume.
et démontres
Démontrer une intention, c'est au delà de mes compétences.
ou
excuse-toi. Ton jugement de valeur allait bien au-delà de cette histoire
de variables globales. Il suffit de relire dans quel contexte tu as
répondu cela.
Je viens de relire.
Nous avions passé un temps certain à présenter des arguments, avec
des éclairages différents, et tu avais résumé par:
Donc pour résumer vos points de vue, il y a plein de raisons simples à
utiliser des variables globales et plein de raison très compliquées et
très obscures de ne pas les utiliser.
Ce qui me semblait une pointe de mauvaise foi, un brin de provocation.
J'ai continué dans la même veine...
Ce n'est pas parce que toi tu es un mauvais jardinier que je vais te
laisser me parler de façon méprisante sans réagir.
Réagit donc.
Avant de donner une réponse, faudrait d'abord lire et comprendre la
question.
Quelle était donc la question restée sans réponse ?
Non, c'est un petit coup de provoc assumé. Je n'en crois pas un mot : ou bien c'est délibéré
Oui, c'est ce que je dis.
Non, tu n'es pas très courageux et tu ne veux pas assumer tes propos. Je ne pense pas qu'il y ait la moindre part de provo dans ton propos,
Ben, si.
c'est bel et bien à prendre tel quel, en tous les cas c'est comme ça que je le comprends et il me semble que c'est suffisant.
Comme tu veux.
M'enfin bon, s'il faut le redire, je le redis "un programmeur qui utilise des variables globales sans voir leur danger,
où-ai-je dis cela ?
c'est un programmeur du dimanche, un amateur".
Non, tu essayes d'édulcorer ton propos : assume
J'assume.
et démontres
Démontrer une intention, c'est au delà de mes compétences.
ou excuse-toi. Ton jugement de valeur allait bien au-delà de cette histoire de variables globales. Il suffit de relire dans quel contexte tu as répondu cela.
Je viens de relire. Nous avions passé un temps certain à présenter des arguments, avec des éclairages différents, et tu avais résumé par:
Donc pour résumer vos points de vue, il y a plein de raisons simples à utiliser des variables globales et plein de raison très compliquées et très obscures de ne pas les utiliser.
Ce qui me semblait une pointe de mauvaise foi, un brin de provocation. J'ai continué dans la même veine...
Ce n'est pas parce que toi tu es un mauvais jardinier que je vais te laisser me parler de façon méprisante sans réagir.
Réagit donc.
Avant de donner une réponse, faudrait d'abord lire et comprendre la question.
Quelle était donc la question restée sans réponse ?
Marc Boyer
Francois
--{ Francois a plopé ceci: }--
Désolé de m'immiscer dans vos conversations techniques, mais je voulais juste avoir votre avis sur ce livre :
http://www.amazon.fr/
Quel titre, quel auteur, quel éditeur, quelle année ?
Je parlais de ce livre : Expert C Programming: Deep C Secrets de Peter Van Der Linden Editeur : Prentice Hall PTR (6 juillet 1994)
François
--{ Francois a plopé ceci: }--
Désolé de m'immiscer dans vos conversations techniques, mais je voulais
juste avoir votre avis sur ce livre :
http://www.amazon.fr/
Quel titre, quel auteur, quel éditeur, quelle année ?
Je parlais de ce livre :
Expert C Programming: Deep C Secrets
de Peter Van Der Linden
Editeur : Prentice Hall PTR (6 juillet 1994)
Désolé de m'immiscer dans vos conversations techniques, mais je voulais juste avoir votre avis sur ce livre :
http://www.amazon.fr/
Quel titre, quel auteur, quel éditeur, quelle année ?
Je parlais de ce livre : Expert C Programming: Deep C Secrets de Peter Van Der Linden Editeur : Prentice Hall PTR (6 juillet 1994)
François
Ael Rowen Terence
"Marc Boyer" a écrit dans le message de news:
On 2008-03-14, Ael Rowen Terence wrote:
"Marc Boyer" a écrit dans le message de news:
On 2008-03-13, candide wrote:
Diabolisant ? Diantre ! Non, je redis mon propos: les variables globales sont des *paramètres* cachés (les variables elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise).
Je ne comprends pas. Ce que tu dis au sujet des variables globales, me parait tout aussi valable pour une fonction. "les XXXXX elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise".
Quand à la notion de petite ou grosse application... De toute façon, une petite application, on peut toujours l'écrire n'importe comment et arriver à la faire tourner au moins une fois sur une plateforme.
Oui, c'est une façon de voir. Moi je préfère : petite ou grosse une application mérite tous les soins. Ou plus précisément, avant d'entreprendre une grosse application, il est impératif savoir bien rédiger plein de petites.
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr.invalid> a écrit dans le message
de news: slrnftkgea.vq3.Marc.Boyer@ubu.enseeiht.fr...
On 2008-03-14, Ael Rowen Terence <Sans.Reponse@mail.fr> wrote:
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr.invalid> a écrit dans le
message
de news: slrnftkeom.vq3.Marc.Boyer@ubu.enseeiht.fr...
On 2008-03-13, candide <c-candide@wanadoo.fr> wrote:
Diabolisant ? Diantre !
Non, je redis mon propos: les variables globales sont des *paramètres*
cachés (les variables elles même ne sont pas cachées: on les trouve
vite, la question est de savoir qui les utilise).
Je ne comprends pas. Ce que tu dis au sujet des variables globales, me
parait tout aussi valable pour une fonction.
"les XXXXX elles même ne sont pas cachées: on les trouve vite, la question
est de savoir qui les utilise".
Quand à la notion de petite ou grosse application... De toute façon,
une petite application, on peut toujours l'écrire n'importe comment
et arriver à la faire tourner au moins une fois sur une plateforme.
Oui, c'est une façon de voir.
Moi je préfère : petite ou grosse une application mérite tous les soins.
Ou plus précisément, avant d'entreprendre une grosse application, il est
impératif savoir bien rédiger plein de petites.
Diabolisant ? Diantre ! Non, je redis mon propos: les variables globales sont des *paramètres* cachés (les variables elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise).
Je ne comprends pas. Ce que tu dis au sujet des variables globales, me parait tout aussi valable pour une fonction. "les XXXXX elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise".
Quand à la notion de petite ou grosse application... De toute façon, une petite application, on peut toujours l'écrire n'importe comment et arriver à la faire tourner au moins une fois sur une plateforme.
Oui, c'est une façon de voir. Moi je préfère : petite ou grosse une application mérite tous les soins. Ou plus précisément, avant d'entreprendre une grosse application, il est impératif savoir bien rédiger plein de petites.
Marc Boyer
On 2008-03-17, Ael Rowen Terence wrote:
"Marc Boyer" a écrit dans le message de news:
On 2008-03-14, Ael Rowen Terence wrote:
"Marc Boyer" a écrit dans le Diabolisant ? Diantre !
Non, je redis mon propos: les variables globales sont des *paramètres* cachés (les variables elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise).
Je ne comprends pas. Ce que tu dis au sujet des variables globales, me parait tout aussi valable pour une fonction. "les XXXXX elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise".
Tout à fait. Sauf qu'une fonction ne manipule que les paramètres qu'on lui fournit (plus les variables globales).
Quand à la notion de petite ou grosse application... De toute façon, une petite application, on peut toujours l'écrire n'importe comment et arriver à la faire tourner au moins une fois sur une plateforme.
Oui, c'est une façon de voir.
Non, c'est un constat.
Moi je préfère : petite ou grosse une application mérite tous les soins.
Bof. Pas forcément non. De même que c'est pas la peine d'achetter un monospace pour aller chercher le pain. Tiens, la dernière appli que j'ai écrite n'a pas une ligne de commentaire, pas de doc: c'est un script awk que j'ai utilisé une unique fois pour convertir un fichier avant de l'inclure dans un rapport. Y consacrer plus d'effort eut été une perte d'énergie.
Ou plus précisément, avant d'entreprendre une grosse application, il est impératif savoir bien rédiger plein de petites.
Là, je suis tout à fait d'accord. Et puis il y a aussi le fait qu'une petite appli peut se retrouver avec une bonne partie de son code récupérée dans une plus grosse, qui grossira elle aussi, durera, etc. Et que des erreurs de conception sur une petite appli, on peut les trainer pendant des années... Là encore, pas de réponse toute faite: des équilibres à trouver. Un copain rigole encore d'avoir vu un interpreteur développé, super beau et complet, pour lire un fichier de config... Bon, si un jour on veut faire des config super complexes, auto-référentes et tout ça, l'interpréteur est pret. En attendant...
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)
On 2008-03-17, Ael Rowen Terence <Sans.Reponse@mail.fr> wrote:
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr.invalid> a écrit dans le message
de news: slrnftkgea.vq3.Marc.Boyer@ubu.enseeiht.fr...
On 2008-03-14, Ael Rowen Terence <Sans.Reponse@mail.fr> wrote:
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr.invalid> a écrit dans le
Diabolisant ? Diantre !
Non, je redis mon propos: les variables globales sont des *paramètres*
cachés (les variables elles même ne sont pas cachées: on les trouve
vite, la question est de savoir qui les utilise).
Je ne comprends pas. Ce que tu dis au sujet des variables globales, me
parait tout aussi valable pour une fonction.
"les XXXXX elles même ne sont pas cachées: on les trouve vite, la question
est de savoir qui les utilise".
Tout à fait.
Sauf qu'une fonction ne manipule que les paramètres qu'on lui
fournit (plus les variables globales).
Quand à la notion de petite ou grosse application... De toute façon,
une petite application, on peut toujours l'écrire n'importe comment
et arriver à la faire tourner au moins une fois sur une plateforme.
Oui, c'est une façon de voir.
Non, c'est un constat.
Moi je préfère : petite ou grosse une application mérite tous les soins.
Bof. Pas forcément non. De même que c'est pas la peine d'achetter
un monospace pour aller chercher le pain.
Tiens, la dernière appli que j'ai écrite n'a pas une ligne de
commentaire, pas de doc: c'est un script awk que j'ai utilisé une
unique fois pour convertir un fichier avant de l'inclure dans un
rapport.
Y consacrer plus d'effort eut été une perte d'énergie.
Ou plus précisément, avant d'entreprendre une grosse application, il est
impératif savoir bien rédiger plein de petites.
Là, je suis tout à fait d'accord. Et puis il y a aussi le fait
qu'une petite appli peut se retrouver avec une bonne partie de
son code récupérée dans une plus grosse, qui grossira elle
aussi, durera, etc.
Et que des erreurs de conception sur une petite appli,
on peut les trainer pendant des années...
Là encore, pas de réponse toute faite: des équilibres
à trouver. Un copain rigole encore d'avoir vu un interpreteur
développé, super beau et complet, pour lire un fichier de
config... Bon, si un jour on veut faire des config super
complexes, auto-référentes et tout ça, l'interpréteur est
pret. En attendant...
Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. André Maurois)
"Marc Boyer" a écrit dans le Diabolisant ? Diantre !
Non, je redis mon propos: les variables globales sont des *paramètres* cachés (les variables elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise).
Je ne comprends pas. Ce que tu dis au sujet des variables globales, me parait tout aussi valable pour une fonction. "les XXXXX elles même ne sont pas cachées: on les trouve vite, la question est de savoir qui les utilise".
Tout à fait. Sauf qu'une fonction ne manipule que les paramètres qu'on lui fournit (plus les variables globales).
Quand à la notion de petite ou grosse application... De toute façon, une petite application, on peut toujours l'écrire n'importe comment et arriver à la faire tourner au moins une fois sur une plateforme.
Oui, c'est une façon de voir.
Non, c'est un constat.
Moi je préfère : petite ou grosse une application mérite tous les soins.
Bof. Pas forcément non. De même que c'est pas la peine d'achetter un monospace pour aller chercher le pain. Tiens, la dernière appli que j'ai écrite n'a pas une ligne de commentaire, pas de doc: c'est un script awk que j'ai utilisé une unique fois pour convertir un fichier avant de l'inclure dans un rapport. Y consacrer plus d'effort eut été une perte d'énergie.
Ou plus précisément, avant d'entreprendre une grosse application, il est impératif savoir bien rédiger plein de petites.
Là, je suis tout à fait d'accord. Et puis il y a aussi le fait qu'une petite appli peut se retrouver avec une bonne partie de son code récupérée dans une plus grosse, qui grossira elle aussi, durera, etc. Et que des erreurs de conception sur une petite appli, on peut les trainer pendant des années... Là encore, pas de réponse toute faite: des équilibres à trouver. Un copain rigole encore d'avoir vu un interpreteur développé, super beau et complet, pour lire un fichier de config... Bon, si un jour on veut faire des config super complexes, auto-référentes et tout ça, l'interpréteur est pret. En attendant...
Marc Boyer -- Si tu peux supporter d'entendre tes paroles Travesties par des gueux pour exciter des sots IF -- Rudyard Kipling (Trad. André Maurois)