Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#2001 Le 14/02/2011, à 13:48

Kanor

Re : /* Topic des codeurs couche-tard [3] */

avec un tabulation de 8

8 ça me semble vraiment important 4 c'est suffisant je trouve

Hors ligne

#2002 Le 14/02/2011, à 13:57

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Idem, je trouve que 8 c'est vraiment trop : 4 c'est très bien (par contre, rien à redire sur la limite des 80 caractères par ligne).
Mais bon, c'est le genre de discussion sans fin comme tabulation vs espace (mort aux tabulations ! tongue)…

Hors ligne

#2003 Le 14/02/2011, à 14:08

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

Linux Kernel coding style a écrit :

Tabs are 8 characters, and thus indentations are also 8 characters.
There are heretic movements that try to make indentations 4 (or even 2!)
characters deep, and that is akin to trying to define the value of PI to
be 3.

Bande d'hérétiques! tongue

grim7reaper a écrit :

mort aux tabulations !

C'était pas une blague? Il y en a vraiment qui codent avec des espaces? yikes

Hors ligne

#2004 Le 14/02/2011, à 19:21

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Oui. neutral


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#2005 Le 14/02/2011, à 19:23

Elzen

Re : /* Topic des codeurs couche-tard [3] */

On peut même utiliser les deux à la fois dans certains cas, le tout est de gérer ça proprement.

On fait des tabulations quand il s'agit de décaler, pour des raisons principalement sémantiques, le début d'une ligne (par exemple, pour séparer les blocs), là où il faut laisser laisser la possibilité au lecteur d'adapter ça à ses goûts bizarres (quoique dans certains cas, une largeur de 4 puisse être appréciable, mais en théorie ça reste 8 tout le temps tongue), et des espaces là où il s'agit, pour des raisons principalement esthétiques, d'aligner des lettres verticalement.

Par exemple, dans un code Lex ou Yacc (ici un bout de calculatrice en Yacc) :

T : T '*' F                    {
                                 /* Multiplication */
                                 $$ = $1 * $3;
                               }
  | T '/' F                    {
                                 /* Division */
                                 if ($3 == 0)
                                     $$ = NAN;
                                 else
                                     $$ = $1 / $3;
                               }
  ;

On utilise ici des espaces pour garantir que le début des blocs de code C se trouve toujours à la même colonne, par contre, dans le code lui-même, on tabule comme on le ferait normalement si le début de la ligne était à la colonne 0.

Hors ligne

#2006 Le 14/02/2011, à 19:26

:!pakman

Re : /* Topic des codeurs couche-tard [3] */

Merci grim et Rohlin et ArkSeth ! smile
Explications claires nettes et précises !

grim, tu dit qu'il faut privilégier les chemins relatifs, mais quand je met dans mon exe des chemins du genre ./Images/fond.png, lorsque je place un raccourcis de l'exe dans un autre dossier, par exemple /usr/bin, il ne me trouve pas les ressources, il cherche dans le dossier du raccourcis de l'exe et pas de l'exe lui-même... Forcement, le dossier courant (.) est celui du raccourcis, pas de la source... Embêtant...

Dernière modification par :!pakman (Le 14/02/2011, à 19:31)


...

Hors ligne

#2007 Le 14/02/2011, à 19:44

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Rolinh a écrit :
Linux Kernel coding style a écrit :

Tabs are 8 characters, and thus indentations are also 8 characters.
There are heretic movements that try to make indentations 4 (or even 2!)
characters deep, and that is akin to trying to define the value of PI to
be 3.

Bande d'hérétiques! tongue

Ouais enfin les guides de styles de gros projets c'est pas toujours une référence (Cf. GNU, je mets Linux dans le même panier (mais pas au même niveau, GNU ça reste le pire)).

Rolinh a écrit :
grim7reaper a écrit :

mort aux tabulations !

C'était pas une blague? Il y en a vraiment qui codent avec des espaces? yikes

Bien sûr, le rendu est identique partout comme ça (pas besoin de m'emmerder à trifouiller l'éditeur), et puis j'utilise quand même la touche Tab pour indenter avec des espaces donc je ne perds pas non plus de temps à marteler la touche espace smile


ArkSeth a écrit :

On peut même utiliser les deux à la fois dans certains cas, le tout est de gérer ça proprement.

Non c'est toujours foireux de mélanger les deux, vive le rendu pseudo-aléatoire.
Espace partout, pas de problème tongue


:!pakman a écrit :

Merci grim et Rohlin et ArkSeth ! smile
Explications claires nettes et précises !

grim, tu dit qu'il faut privilégier les chemins relatifs, mais quand je met dans mon exe des chemins du genre ./Images/fond.png, lorsque je place un raccourcis de l'exe dans un autre dossier, par exemple /usr/bin, il ne me trouve pas les ressources, il cherche dans le dossier du raccourcis de l'exe et pas de l'exe lui-même... Forcement, le dossier courant (.) est celui du raccourcis, pas de la source... Embêtant...

Hum ouais, au pire tu peux faire un coup de chdir (c'est POSIX, mais bon c'est moyennement élégant, le mieux étant le fichier de conf je pense).

Hors ligne

#2008 Le 14/02/2011, à 19:56

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Non c'est toujours foireux de mélanger les deux, vive le rendu pseudo-aléatoire.
Espace partout, pas de problème tongue

Le rendu est très bien déterminé et tout à fait propre.

À part ton allergie aux tabulations, trouve moi un truc qui ne va pas dans mon exemple ci-dessus tongue

Hors ligne

#2009 Le 14/02/2011, à 20:01

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :
grim7reaper a écrit :

Non c'est toujours foireux de mélanger les deux, vive le rendu pseudo-aléatoire.
Espace partout, pas de problème tongue

Le rendu est très bien déterminé et tout à fait propre.

Bah non, il dépend de la configuration de l'éditeur que tu utilises (pour les tabulations).
Alors oui, quand j'utilise le mien je n'ai pas de surprise mais je n'ai pas toujours cette chance…
Et le truc c'est que je ne sais pas forcément comment configurer le-dit éditeur, ou que je n'ai pas que ça à faire (chercher dans la tétra-chié de menu de certains clicodrome, très peu pour moi) ou encore que je ne peux pas (je vais pas modif' la conf' d'un gars just for fun…)

ArkSeth a écrit :

À part ton allergie aux tabulations, trouve moi un truc qui ne va pas dans mon exemple ci-dessus tongue

Cf. remarque précédente : rendu dépendant de l'éditeur et de sa conf.

Hors ligne

#2010 Le 14/02/2011, à 20:04

Kanor

Re : /* Topic des codeurs couche-tard [3] */

Use 4 spaces per indentation level.

    For really old code that you don't want to mess up, you can continue to
    use 8-space tabs.

http://www.python.org/dev/peps/pep-0008/

Hors ligne

#2011 Le 14/02/2011, à 20:09

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Une fois n'est pas coutume : vive le Python (enfin la PEP8 en l'occurence) \o/

Hors ligne

#2012 Le 14/02/2011, à 20:12

Elzen

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Bah non, il dépend de la configuration de l'éditeur que tu utilises (pour les tabulations).

Bah oui, c'est le principe des tabulations : elles font 8 caractères de longs chez les gens normaux, mais si les gens ont des goûts bizarres, elles peuvent faire moins.
C'est précisément l'un des intérêts d'utiliser la tabulation : ça permet au lecteur d'adapter à ses goûts particuliers sans avoir à faire un search&replace ou autres trucs pas forcément cools.

Et le rendu est déterminé quand tu utilises proprement les deux, dans la mesure où (comme dans mon exemple) changer la taille des tabulations n'impacte pas l'alignement des caractères, puisque les tabulations sont utilisées pour délimiter un bloc commun.

J'veux bien que tu me trouves une vraie raison de ne pas utiliser des tabulations, hein, mais là, t'es juste en train de dire « faut pas les utiliser parce que j'sais pas m'en servir » tongue

Hors ligne

#2013 Le 14/02/2011, à 20:19

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

C'est pas que je ne sais pas m'en servir vu que je ne les utilises pas -_-"
C'est pas de ma fautes si ce putain de caractères est rendu différemment selon l'éditeur…

Sinon c'est cool, tu as esquivé le problème que j'ai soulevé (on n'utilise pas toujours ses outils), donc je ne vais pas me fatiguer à répondre a la tienne.

Hors ligne

#2014 Le 14/02/2011, à 20:31

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Ah, t'as soulevé un problème ? yikes

Que ça puisse nous arriver de coder hors de notre environnement et qu'on ne puisse/sache pas changer la taille des tabulations ?

Bah dans ce cas-là, tu es juste obligé de subir des tabulations de taille fantaisiste, mais je ne vois pas en quoi ça devrait empêcher d'utiliser les tabulations… c'est juste que ce ne sera pas super agréable pour toi tant que tu n'auras pas retrouver ta config, mais ça, c'est de toute façon vrai pour plein d'autres raisons quand on change de config…

Le truc, c'est juste d'utiliser les tabulations pour indenter les blocs et pour s'aligner avec d'autres tabulations déjà présentes (et uniquement d'autres tabulations), et d'utiliser les espaces pour s'aligner avec n'importe quel autre caractère.

Autre exemple (foireux), dans une fonction JavaScript :

function machin(a, b) {
    if (a == 0
     && b == 2) {
        return b;
    }
}

On utilise ici une tabulation pour intenter le corps de la fonction (deuxième niveau de bloc), deux tabulations pour indenter le code conditionnel situé dans cette fonction (troisième niveau de bloc), et une tabulation plus un espace pour aligner les deux conditionnelles ensemble (deuxième niveau de bloc + alignement de caractères).

De cette manière, quelle que soit la longueur d'une tabulation,
-/ Les blocs seront visuellement identifiables (tabulations pour la sémantique)
-/ Les conditions seront alignées l'une sur l'autre (espaces pour l'esthétique)

Ça mélange les deux, c'est propre, et il n'y a aucun problème de rendu.

Dernière modification par ArkSeth (Le 14/02/2011, à 20:32)

Hors ligne

#2015 Le 14/02/2011, à 20:43

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

Ah, t'as soulevé un problème ? yikes

ArkSeth a écrit :

Bah dans ce cas-là, tu es juste obligé de subir des tabulations de taille fantaisiste mais je ne vois pas en quoi ça devrait empêcher d'utiliser les tabulations…

Bah justement, si je n'utilise que des espaces je ne suis pas emmerdé par le changement d'environnement.

ArkSeth a écrit :

Le truc, c'est juste d'utiliser les tabulations pour indenter les blocs et pour s'aligner avec d'autres tabulations déjà présentes (et uniquement d'autres tabulations), et d'utiliser les espaces pour s'aligner avec n'importe quel autre caractère.

Ok, comme je n'ai aucune tabulation alors je n'ai pas besoin d'en utiliser.
Ça me conviens big_smile

ArkSeth a écrit :

Autre exemple (foireux), dans une fonction JavaScript :

function machin(a, b) {
    if (a == 0
     && b == 2) {
        return b;
    }
}

La présentation de ce code est particulièrement dégueu (point de vue 100% subjectif, je ne le cache pas), c'est voulu ?

ArkSeth a écrit :

On utilise ici une tabulation pour intenter le corps de la fonction (deuxième niveau de bloc), deux tabulations pour indenter le code conditionnel situé dans cette fonction (troisième niveau de bloc), et une tabulation plus un espace pour aligner les deux conditionnelles ensemble (deuxième niveau de bloc + alignement de caractères).

De cette manière, quelle que soit la longueur d'une tabulation,
-/ Les blocs seront visuellement identifiables (tabulations pour la sémantique)
-/ Les conditions seront alignées l'une sur l'autre (espaces pour l'esthétique)

J'obtiens exactement la même chose en utilisant que des espaces.

ArkSeth a écrit :

Ça mélange les deux, c'est propre, et il n'y a aucun problème de rendu.

Tout dépend ce que tu appelles « rendu »…
Oui le code gardera globalement sa présentation (il sera peut-être tout moche, mais restera « lisible »).

Hors ligne

#2016 Le 14/02/2011, à 20:52

The Uploader

Re : /* Topic des codeurs couche-tard [3] */

La présentation de ce code est particulièrement dégueu (point de vue 100% subjectif, je ne le cache pas), c'est voulu ?

+1.

function machin(a, b) {
    if (a == 0 && b == 2) {
        return b;
    }
}

Mieux! tongue (avec des tabulations de 4)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#2017 Le 14/02/2011, à 20:53

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Bref, en clair, la seule raison pour laquelle tu ne veux pas de tabulations est qu'à titre personnel, tu n'aimes pas les tabulations. T'as aucun argument recevable contre tongue

(Je reconnais que de mon côté, je n'ai pas d'autres arguments pour que celui de permettre au lecteur le réglage à la taille qu'il veut si ça lui chante, et celui de séparer l'aspect sémantique de l'aspect esthétique. Mais ça m'en fait quand même deux tongue)


Après, c'est principalement une question de goût, et ça rentre probablement dans les raisons pour lesquelles le code des programmes dépend du même domaine juridique que les œuvres artistiques ^^

Le débat perdure tout simplement parce que c'est nettement plus une question de goût et d'habitude que de véritables raisons objectives (à partir du moment, bien sûr, ou on ne fait pas un gros mélange crade entre les deux).

(D'ailleurs, j'ai beau défendre les tabulations, quand je fais du shell, je préfère utiliser des espaces dans les if, pour des raisons d'alignement de caractères totalement subjectives)


Sinon, je n'avais pas vraiment pas remarqué que tu parlais d'un problème spécifique aux tabulations (ne pas coder sur sa propre config, c'est perturbant pour plein d'autres raisons ^^)

Edit : et pour la conditionnelle sur deux lignes, c'est sûr qu'on ne fait pas ça pour un si petit machin, mais j'avais la flemme de faire une conditionnelle qui fasse une ligne de code trop longue ^^

Dernière modification par ArkSeth (Le 14/02/2011, à 20:55)

Hors ligne

#2018 Le 14/02/2011, à 20:59

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

Bref, en clair, la seule raison pour laquelle tu ne veux pas de tabulations est qu'à titre personnel, tu n'aimes pas les tabulations. T'as aucun argument recevable contre tongue

Bah justement, si je n'utilise que des espaces je ne suis pas emmerdé au niveau présentation par le changement d'environnement.
En gras, c'est plus visible tongue ?
Après, oui, je n'ai pas vraiment d'autres arguments.

ArkSeth a écrit :

Le débat perdure tout simplement parce que c'est nettement plus une question de goût et d'habitude que de véritables raisons objectives (à partir du moment, bien sûr, ou on ne fait pas un gros mélange crade entre les deux).

Tout à fait.
Comme le placement des accolades et 2-3 autres choses encore.

Hors ligne

#2019 Le 14/02/2011, à 21:11

:!pakman

Re : /* Topic des codeurs couche-tard [3] */

Personnellement, j'utilise les tabulations, car supprimer une tabulation avec backspace c'est plus vite fait que de supprimer 8 espaces, et à la longue c'est vachement pratique, car appuyer 8x sur backspace pour les espaces vs 1x pour les tabs, mon choix est vite fait !
Pareil pour les placer, 8 pressions sur la touche espace c'est vite chiant, alors qu'une seule sur tab c'est vite fait et c'est cool !


...

Hors ligne

#2020 Le 14/02/2011, à 21:13

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Ça c'est parce que tu utilises un éditeur moisi.
Je dis pas ça pour rire en plus…
Avec Vim (mais c'est faisable avec d'autres éditeurs aussi) la touche Tab me donne quatre espaces et Backspace me supprime bien quatre espaces quand il le faut.
En gros j'ai le comportement des tabulations, mais avec des espaces.

Dernière modification par grim7reaper (Le 14/02/2011, à 21:48)

Hors ligne

#2021 Le 14/02/2011, à 22:01

:!pakman

Re : /* Topic des codeurs couche-tard [3] */

Y'a ça avec gedit aussi.
Mais je l'active jamais, pas l'habitude...


...

Hors ligne

#2022 Le 14/02/2011, à 22:06

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Il y a des gens qui codent sérieusement avec Gedit ?

Respect !

Bon, je connais quelqu'un qui a fait tout un projet sous bloc-note (oui je sais, Gedit a au moins la coloration syntaxique), mais quand même…

Dernière modification par grim7reaper (Le 14/02/2011, à 22:07)

Hors ligne

#2023 Le 14/02/2011, à 22:13

Pylades

Re : /* Topic des codeurs couche-tard [3] */

ArkSeth a écrit :

On peut même utiliser les deux à la fois dans certains cas, le tout est de gérer ça proprement.

On fait des tabulations quand il s'agit de décaler, pour des raisons principalement sémantiques, le début d'une ligne (par exemple, pour séparer les blocs), là où il faut laisser laisser la possibilité au lecteur d'adapter ça à ses goûts bizarres (quoique dans certains cas, une largeur de 4 puisse être appréciable, mais en théorie ça reste 8 tout le temps tongue), et des espaces là où il s'agit, pour des raisons principalement esthétiques, d'aligner des lettres verticalement.

Par exemple, dans un code Lex ou Yacc (ici un bout de calculatrice en Yacc) :

T : T '*' F                    {
                                 /* Multiplication */
                                 $$ = $1 * $3;
                               }
  | T '/' F                    {
                                 /* Division */
                                 if ($3 == 0)
                                     $$ = NAN;
                                 else
                                     $$ = $1 / $3;
                               }
  ;

On utilise ici des espaces pour garantir que le début des blocs de code C se trouve toujours à la même colonne, par contre, dans le code lui-même, on tabule comme on le ferait normalement si le début de la ligne était à la colonne 0.

Cool. En fonction de la largeur de tabulation, tu vas avoir une largeur du premier niveau d'indentation totalement fantaisiste.
CQFD.

D'autres questions ?


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#2024 Le 14/02/2011, à 22:32

:!pakman

Re : /* Topic des codeurs couche-tard [3] */

grim7reaper a écrit :

Il y a des gens qui codent sérieusement avec Gedit ?

Respect !

Bon, je connais quelqu'un qui a fait tout un projet sous bloc-note (oui je sais, Gedit a au moins la coloration syntaxique), mais quand même…

C'est un kamikaze ! yikes

Sinon oui, je me suis créé un gedit complétement personnalisé -> extraits de code, thème, nouveaux mots clefs colorés...
Moi, je le trouve vraiment sympa ! smile
Sinon, j'ai décidé à partir de maintenant de coder comme tu dis, avec les 4 espaces au lieu de la tabulation.
Autant prendre de bonnes habitudes jeune ! tongue


...

Hors ligne

#2025 Le 14/02/2011, à 22:50

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

:!pakman a écrit :
grim7reaper a écrit :

Il y a des gens qui codent sérieusement avec Gedit ?

Respect !

Bon, je connais quelqu'un qui a fait tout un projet sous bloc-note (oui je sais, Gedit a au moins la coloration syntaxique), mais quand même…

C'est un kamikaze ! yikes

En l'occurence c'est plutôt une, mais oui « kamikaze » est un bon qualificatif ^^

:!pakman a écrit :

Sinon oui, je me suis créé un gedit complétement personnalisé -> extraits de code, thème, nouveaux mots clefs colorés...
Moi, je le trouve vraiment sympa ! smile

Ha ok, ça semble déjà mieux que le Gedit de base.

:!pakman a écrit :

Sinon, j'ai décidé à partir de maintenant de coder comme tu dis, avec les 4 espaces au lieu de la tabulation.
Autant prendre de bonnes habitudes jeune ! tongue

\o/

Dernière modification par grim7reaper (Le 15/02/2011, à 05:29)

Hors ligne