Et quoi que tu dises, sur ce point, le langage C ne se classe pas la
catégorie des langages fournis avec planche savonnée au savon noir.
Et quoi que tu dises, sur ce point, le langage C ne se classe pas la
catégorie des langages fournis avec planche savonnée au savon noir.
Et quoi que tu dises, sur ce point, le langage C ne se classe pas la
catégorie des langages fournis avec planche savonnée au savon noir.
Le gars qui n'a pas fait d'etudes, et qui n'est pas autodidacte
genial, il va avoir beaucoup, beaucoup de mal a comprendre certains
trucs par lui-meme. C'est la realite, ca n'est pas moi qui en
decide.
La ou je trouve que ca devient dangereux, c'est quand on va confier
a ce type (qui a dix ans d'experience) du code critique qui se
trouvera dans cette frange d'algorithmes qu'il ne comprend pas.
Et la ou je trouve que c'est absurde, c'est quand il va se retrouver
a se demener trois heures pour reinventer une roue tordue alors que
la belle roue bien ronde vient `naturellement' avec les bonnes
bases.
A cote de ca, j'ai decouvert pas mal de trucs par moi-meme, ou j'ai
bute sur pas mal de choses qui m'ont rendu les notions mathematiques
ou informatiques vues ensuite interessantes. La notion de
dichotomie, par exemple, que j'ai presque retrouvee en resolvant des
equations; ou la notion de section critique, que j'ai trouve en
reparant le pilote d'imprimante de ma seikosha GP100 qui begayait...
mais je ne regrette
absolument pas d'avoir vu ensuite le formalisme correspondant.
Le gars qui n'a pas fait d'etudes, et qui n'est pas autodidacte
genial, il va avoir beaucoup, beaucoup de mal a comprendre certains
trucs par lui-meme. C'est la realite, ca n'est pas moi qui en
decide.
La ou je trouve que ca devient dangereux, c'est quand on va confier
a ce type (qui a dix ans d'experience) du code critique qui se
trouvera dans cette frange d'algorithmes qu'il ne comprend pas.
Et la ou je trouve que c'est absurde, c'est quand il va se retrouver
a se demener trois heures pour reinventer une roue tordue alors que
la belle roue bien ronde vient `naturellement' avec les bonnes
bases.
A cote de ca, j'ai decouvert pas mal de trucs par moi-meme, ou j'ai
bute sur pas mal de choses qui m'ont rendu les notions mathematiques
ou informatiques vues ensuite interessantes. La notion de
dichotomie, par exemple, que j'ai presque retrouvee en resolvant des
equations; ou la notion de section critique, que j'ai trouve en
reparant le pilote d'imprimante de ma seikosha GP100 qui begayait...
mais je ne regrette
absolument pas d'avoir vu ensuite le formalisme correspondant.
Le gars qui n'a pas fait d'etudes, et qui n'est pas autodidacte
genial, il va avoir beaucoup, beaucoup de mal a comprendre certains
trucs par lui-meme. C'est la realite, ca n'est pas moi qui en
decide.
La ou je trouve que ca devient dangereux, c'est quand on va confier
a ce type (qui a dix ans d'experience) du code critique qui se
trouvera dans cette frange d'algorithmes qu'il ne comprend pas.
Et la ou je trouve que c'est absurde, c'est quand il va se retrouver
a se demener trois heures pour reinventer une roue tordue alors que
la belle roue bien ronde vient `naturellement' avec les bonnes
bases.
A cote de ca, j'ai decouvert pas mal de trucs par moi-meme, ou j'ai
bute sur pas mal de choses qui m'ont rendu les notions mathematiques
ou informatiques vues ensuite interessantes. La notion de
dichotomie, par exemple, que j'ai presque retrouvee en resolvant des
equations; ou la notion de section critique, que j'ai trouve en
reparant le pilote d'imprimante de ma seikosha GP100 qui begayait...
mais je ne regrette
absolument pas d'avoir vu ensuite le formalisme correspondant.
According to mips :Pour moi un source lisible est un source qui se comprend du
premier coup d'oeil. Or ce genre de construction je ne fais pas
qu'y jeter qu'un coup d'oeil vu qu'il est si facile de se
meprendre.
Un code source est lisible s'il est facilement compris en le lisant.
C'est une tautologie. Mais il faut bien prendre conscience que la
lisibilité dépend beaucoup de celui qui lit, et qu'on suppose
toujours une base de connaissance de la part du lecteur, fût-ce
implicitement.
En l'occurrence, quand on montre un code source en C à un lecteur,
on suppose que ce lecteur saura suffisamment de C pour en faire
quelque chose. Il y a pas mal de choses en C qui ne sont pas
évidentes du tout pour celui qui n'en a jamais appris la syntaxe,
According to mips <mips@cyberspace.org>:
Pour moi un source lisible est un source qui se comprend du
premier coup d'oeil. Or ce genre de construction je ne fais pas
qu'y jeter qu'un coup d'oeil vu qu'il est si facile de se
meprendre.
Un code source est lisible s'il est facilement compris en le lisant.
C'est une tautologie. Mais il faut bien prendre conscience que la
lisibilité dépend beaucoup de celui qui lit, et qu'on suppose
toujours une base de connaissance de la part du lecteur, fût-ce
implicitement.
En l'occurrence, quand on montre un code source en C à un lecteur,
on suppose que ce lecteur saura suffisamment de C pour en faire
quelque chose. Il y a pas mal de choses en C qui ne sont pas
évidentes du tout pour celui qui n'en a jamais appris la syntaxe,
According to mips :Pour moi un source lisible est un source qui se comprend du
premier coup d'oeil. Or ce genre de construction je ne fais pas
qu'y jeter qu'un coup d'oeil vu qu'il est si facile de se
meprendre.
Un code source est lisible s'il est facilement compris en le lisant.
C'est une tautologie. Mais il faut bien prendre conscience que la
lisibilité dépend beaucoup de celui qui lit, et qu'on suppose
toujours une base de connaissance de la part du lecteur, fût-ce
implicitement.
En l'occurrence, quand on montre un code source en C à un lecteur,
on suppose que ce lecteur saura suffisamment de C pour en faire
quelque chose. Il y a pas mal de choses en C qui ne sont pas
évidentes du tout pour celui qui n'en a jamais appris la syntaxe,
Oui mais la on ne parle pas de neophytes en C. On parle du fait qu'un
meme code peut etre formate de differentes facons.
Oui mais la on ne parle pas de neophytes en C. On parle du fait qu'un
meme code peut etre formate de differentes facons.
Oui mais la on ne parle pas de neophytes en C. On parle du fait qu'un
meme code peut etre formate de differentes facons.
On Mon, 26 Apr 2004 13:57:09 +0000 (UTC)
(Marc Espie) wrote:Le gars qui n'a pas fait d'etudes, et qui n'est pas autodidacte
genial, il va avoir beaucoup, beaucoup de mal a comprendre certains
trucs par lui-meme. C'est la realite, ca n'est pas moi qui en
decide.
J'en connais qui ont fait des etudes et qui ne se debrouillent pas
mieux.
Et la ou je trouve que c'est absurde, c'est quand il va se retrouver
a se demener trois heures pour reinventer une roue tordue alors que
la belle roue bien ronde vient `naturellement' avec les bonnes
bases.
Tu n'as pas du voir beaucoup de projets sortant de bureaux d'etudes :/
Je pourrais dire idem pour moi (avec par exemple des equations
d'affichage 3D que j'ai retrouvees presque 10 ans plus tard en BTS).
Le formalisme me manque surement mais je me rend compte quand meme que
certaines personnes qui ont eu ce formalisme ont quand meme du mal.
On Mon, 26 Apr 2004 13:57:09 +0000 (UTC)
espie@tetto.gentiane.org (Marc Espie) wrote:
Le gars qui n'a pas fait d'etudes, et qui n'est pas autodidacte
genial, il va avoir beaucoup, beaucoup de mal a comprendre certains
trucs par lui-meme. C'est la realite, ca n'est pas moi qui en
decide.
J'en connais qui ont fait des etudes et qui ne se debrouillent pas
mieux.
Et la ou je trouve que c'est absurde, c'est quand il va se retrouver
a se demener trois heures pour reinventer une roue tordue alors que
la belle roue bien ronde vient `naturellement' avec les bonnes
bases.
Tu n'as pas du voir beaucoup de projets sortant de bureaux d'etudes :/
Je pourrais dire idem pour moi (avec par exemple des equations
d'affichage 3D que j'ai retrouvees presque 10 ans plus tard en BTS).
Le formalisme me manque surement mais je me rend compte quand meme que
certaines personnes qui ont eu ce formalisme ont quand meme du mal.
On Mon, 26 Apr 2004 13:57:09 +0000 (UTC)
(Marc Espie) wrote:Le gars qui n'a pas fait d'etudes, et qui n'est pas autodidacte
genial, il va avoir beaucoup, beaucoup de mal a comprendre certains
trucs par lui-meme. C'est la realite, ca n'est pas moi qui en
decide.
J'en connais qui ont fait des etudes et qui ne se debrouillent pas
mieux.
Et la ou je trouve que c'est absurde, c'est quand il va se retrouver
a se demener trois heures pour reinventer une roue tordue alors que
la belle roue bien ronde vient `naturellement' avec les bonnes
bases.
Tu n'as pas du voir beaucoup de projets sortant de bureaux d'etudes :/
Je pourrais dire idem pour moi (avec par exemple des equations
d'affichage 3D que j'ai retrouvees presque 10 ans plus tard en BTS).
Le formalisme me manque surement mais je me rend compte quand meme que
certaines personnes qui ont eu ce formalisme ont quand meme du mal.
Comme quoi manipuler ce genre d'expression en faisant attention aux
effets de bord est loin d'être trivial.
Ce qui tombe pile poil dans mon discours.
Comme quoi manipuler ce genre d'expression en faisant attention aux
effets de bord est loin d'être trivial.
Ce qui tombe pile poil dans mon discours.
Comme quoi manipuler ce genre d'expression en faisant attention aux
effets de bord est loin d'être trivial.
Ce qui tombe pile poil dans mon discours.
Maitenant, j'aurais tendance à dire qu'il ne vaut mieux pas toucher
au C(ou à des langages du même genre) lorsque l'on a pas un minimum
de compréhension de ce qu'il se passe derrière. Je m'explique,
lorsque l'onécrit du code qui touche un minimum à la mémoire (ce qui
arrive très rapidement en C, genre, dès que l'on a dépassé le stade
du hello world) la plus part des problèmes (mise à part les
étouderies) que l'on rencontre sont liés à une mauvaise gestion de
celle-ci. Or, si l'on ne comprend pas un minimum la tête du résultat
après compilation (notamment la façon dont les envirronnements de
fonction sont gérés par exemple) on se retrouve avec du code qui
paraît par fois pas trop mal, mais qui pourtant peut être très
dangereux ... Il suffit de voir la quantité de bof qui sort
régulièrement, dont certains sont toujours des cas très"bateau"
(genre strcopy et compagnie ... ) pour se rendre compte du danger
que cela représente ...
Alors pinailler sur la lisibilité des && et || vs un if imbriqué ...
si on a du mal à lire ce genre de code ... je dirais qu'il vaut
mieux arreter tout de suite, reprendre un bon (un très bon) cours de
C ou changer de langage (tant qu'à faire, du fonctionnel ;)
Maintenant, hein, tout ça, ça sent le troll, malheureusement ...
Maitenant, j'aurais tendance à dire qu'il ne vaut mieux pas toucher
au C(ou à des langages du même genre) lorsque l'on a pas un minimum
de compréhension de ce qu'il se passe derrière. Je m'explique,
lorsque l'onécrit du code qui touche un minimum à la mémoire (ce qui
arrive très rapidement en C, genre, dès que l'on a dépassé le stade
du hello world) la plus part des problèmes (mise à part les
étouderies) que l'on rencontre sont liés à une mauvaise gestion de
celle-ci. Or, si l'on ne comprend pas un minimum la tête du résultat
après compilation (notamment la façon dont les envirronnements de
fonction sont gérés par exemple) on se retrouve avec du code qui
paraît par fois pas trop mal, mais qui pourtant peut être très
dangereux ... Il suffit de voir la quantité de bof qui sort
régulièrement, dont certains sont toujours des cas très"bateau"
(genre strcopy et compagnie ... ) pour se rendre compte du danger
que cela représente ...
Alors pinailler sur la lisibilité des && et || vs un if imbriqué ...
si on a du mal à lire ce genre de code ... je dirais qu'il vaut
mieux arreter tout de suite, reprendre un bon (un très bon) cours de
C ou changer de langage (tant qu'à faire, du fonctionnel ;)
Maintenant, hein, tout ça, ça sent le troll, malheureusement ...
Maitenant, j'aurais tendance à dire qu'il ne vaut mieux pas toucher
au C(ou à des langages du même genre) lorsque l'on a pas un minimum
de compréhension de ce qu'il se passe derrière. Je m'explique,
lorsque l'onécrit du code qui touche un minimum à la mémoire (ce qui
arrive très rapidement en C, genre, dès que l'on a dépassé le stade
du hello world) la plus part des problèmes (mise à part les
étouderies) que l'on rencontre sont liés à une mauvaise gestion de
celle-ci. Or, si l'on ne comprend pas un minimum la tête du résultat
après compilation (notamment la façon dont les envirronnements de
fonction sont gérés par exemple) on se retrouve avec du code qui
paraît par fois pas trop mal, mais qui pourtant peut être très
dangereux ... Il suffit de voir la quantité de bof qui sort
régulièrement, dont certains sont toujours des cas très"bateau"
(genre strcopy et compagnie ... ) pour se rendre compte du danger
que cela représente ...
Alors pinailler sur la lisibilité des && et || vs un if imbriqué ...
si on a du mal à lire ce genre de code ... je dirais qu'il vaut
mieux arreter tout de suite, reprendre un bon (un très bon) cours de
C ou changer de langage (tant qu'à faire, du fonctionnel ;)
Maintenant, hein, tout ça, ça sent le troll, malheureusement ...
Je ne me positionne pas dans le cas du neophyte qui se prend un manche
de pioche dans la gueule en faisant ses debuts avec le language C. Je
suis plutot dans le cas du gars qui a deja plusieures annees
d'experience derriere lui et qui fait de la maintenance de code. Et
quand on se tape quelques centaines de lignes de code il me semble
impensable de ne pas avoir a revenir plusieurs fois sur certaines
parties du code a cause de leur formatage (que je traite d'illisible).
Malgre certains propos j'ai vraiment un gros doute sur l'existence de
"terminators" du language C qui puissent se taper et surtout
comprendre parfaitement des centaines de lignes de code en une seule
passe.
C'etait juste une perche pour parler de la lisibilite du code C en
general. Maintenant je peux te trouver des lignes avec quelques
operateurs imbriques qui auraient vite fait de te faire reflechir a
deux fois avant de dire ce que ca effectue.
Je ne me positionne pas dans le cas du neophyte qui se prend un manche
de pioche dans la gueule en faisant ses debuts avec le language C. Je
suis plutot dans le cas du gars qui a deja plusieures annees
d'experience derriere lui et qui fait de la maintenance de code. Et
quand on se tape quelques centaines de lignes de code il me semble
impensable de ne pas avoir a revenir plusieurs fois sur certaines
parties du code a cause de leur formatage (que je traite d'illisible).
Malgre certains propos j'ai vraiment un gros doute sur l'existence de
"terminators" du language C qui puissent se taper et surtout
comprendre parfaitement des centaines de lignes de code en une seule
passe.
C'etait juste une perche pour parler de la lisibilite du code C en
general. Maintenant je peux te trouver des lignes avec quelques
operateurs imbriques qui auraient vite fait de te faire reflechir a
deux fois avant de dire ce que ca effectue.
Je ne me positionne pas dans le cas du neophyte qui se prend un manche
de pioche dans la gueule en faisant ses debuts avec le language C. Je
suis plutot dans le cas du gars qui a deja plusieures annees
d'experience derriere lui et qui fait de la maintenance de code. Et
quand on se tape quelques centaines de lignes de code il me semble
impensable de ne pas avoir a revenir plusieurs fois sur certaines
parties du code a cause de leur formatage (que je traite d'illisible).
Malgre certains propos j'ai vraiment un gros doute sur l'existence de
"terminators" du language C qui puissent se taper et surtout
comprendre parfaitement des centaines de lignes de code en une seule
passe.
C'etait juste une perche pour parler de la lisibilite du code C en
general. Maintenant je peux te trouver des lignes avec quelques
operateurs imbriques qui auraient vite fait de te faire reflechir a
deux fois avant de dire ce que ca effectue.
Mais j'ai bien compris ... mais ce que l'on te dis, c'est que
justement, la sémantique des opérateurs feignants est clair. Il faut
juste la lire de la bonne façon.
Enfin, pour moi, ce n'est pas franchement un exemple particulier de
code illisible.
On ne parle pas de lire des centaines de lignes en une seule passe.
Par contre, une trentaine ... mais bien sûr, si tous les cas où l'on
aurait pu utiliser un || ou un && on a utilisé un double if, on voit
plus grand chose dans 30 lignes. Enfin, pour moi un code plus "long"
n'est pas forcément plus lisible (en plus dans le cas du double if,
on se retrouve avec une hierarchie de "if" suffisament ambigue, pour
justement rendre les choses moins lisible.)
Maintenant, comme je l'ai dit, ça dépend de ce que tu utilises.
Typiquement, le while (--i) pour savoir ce qui se passe ... en une
seule passe ...
Le truc, c'est que je ne suis pas sûr que des if imbriqués se soient
tellement plus lisible (en fait, personnellement, malgrès
l'indentation, une série de if imbriqués fait partie des trucs que
je considère comme dure à lire.) Mais vision personnelle est de
réduire le bruit pour rendre un code lisible autant que d'éviter les
expressions bourrées d'effets de bord, d'autant plus que dans le cas
qui nous interesse, il n'y a pas réellement d'effet de bord.
Mais j'ai bien compris ... mais ce que l'on te dis, c'est que
justement, la sémantique des opérateurs feignants est clair. Il faut
juste la lire de la bonne façon.
Enfin, pour moi, ce n'est pas franchement un exemple particulier de
code illisible.
On ne parle pas de lire des centaines de lignes en une seule passe.
Par contre, une trentaine ... mais bien sûr, si tous les cas où l'on
aurait pu utiliser un || ou un && on a utilisé un double if, on voit
plus grand chose dans 30 lignes. Enfin, pour moi un code plus "long"
n'est pas forcément plus lisible (en plus dans le cas du double if,
on se retrouve avec une hierarchie de "if" suffisament ambigue, pour
justement rendre les choses moins lisible.)
Maintenant, comme je l'ai dit, ça dépend de ce que tu utilises.
Typiquement, le while (--i) pour savoir ce qui se passe ... en une
seule passe ...
Le truc, c'est que je ne suis pas sûr que des if imbriqués se soient
tellement plus lisible (en fait, personnellement, malgrès
l'indentation, une série de if imbriqués fait partie des trucs que
je considère comme dure à lire.) Mais vision personnelle est de
réduire le bruit pour rendre un code lisible autant que d'éviter les
expressions bourrées d'effets de bord, d'autant plus que dans le cas
qui nous interesse, il n'y a pas réellement d'effet de bord.
Mais j'ai bien compris ... mais ce que l'on te dis, c'est que
justement, la sémantique des opérateurs feignants est clair. Il faut
juste la lire de la bonne façon.
Enfin, pour moi, ce n'est pas franchement un exemple particulier de
code illisible.
On ne parle pas de lire des centaines de lignes en une seule passe.
Par contre, une trentaine ... mais bien sûr, si tous les cas où l'on
aurait pu utiliser un || ou un && on a utilisé un double if, on voit
plus grand chose dans 30 lignes. Enfin, pour moi un code plus "long"
n'est pas forcément plus lisible (en plus dans le cas du double if,
on se retrouve avec une hierarchie de "if" suffisament ambigue, pour
justement rendre les choses moins lisible.)
Maintenant, comme je l'ai dit, ça dépend de ce que tu utilises.
Typiquement, le while (--i) pour savoir ce qui se passe ... en une
seule passe ...
Le truc, c'est que je ne suis pas sûr que des if imbriqués se soient
tellement plus lisible (en fait, personnellement, malgrès
l'indentation, une série de if imbriqués fait partie des trucs que
je considère comme dure à lire.) Mais vision personnelle est de
réduire le bruit pour rendre un code lisible autant que d'éviter les
expressions bourrées d'effets de bord, d'autant plus que dans le cas
qui nous interesse, il n'y a pas réellement d'effet de bord.
Marwan Burelle writes:Maitenant, j'aurais tendance à dire qu'il ne vaut mieux pas
toucher au C(ou à des langages du même genre) lorsque l'on a pas
un minimum de compréhension de ce qu'il se passe derrière.
Voilà, il faut y aller progressivement: code machine -> assembleur
-> C
Maintenant, hein, tout ça, ça sent le troll, malheureusement ...
mais non
Marwan Burelle <burelle@lri.fr> writes:
Maitenant, j'aurais tendance à dire qu'il ne vaut mieux pas
toucher au C(ou à des langages du même genre) lorsque l'on a pas
un minimum de compréhension de ce qu'il se passe derrière.
Voilà, il faut y aller progressivement: code machine -> assembleur
-> C
Maintenant, hein, tout ça, ça sent le troll, malheureusement ...
mais non
Marwan Burelle writes:Maitenant, j'aurais tendance à dire qu'il ne vaut mieux pas
toucher au C(ou à des langages du même genre) lorsque l'on a pas
un minimum de compréhension de ce qu'il se passe derrière.
Voilà, il faut y aller progressivement: code machine -> assembleur
-> C
Maintenant, hein, tout ça, ça sent le troll, malheureusement ...
mais non