Partage
  • Partager sur Facebook
  • Partager sur Twitter

Nomenclature en programmation : Francais ou Anglais ?

    3 janvier 2012 à 19:08:24

    Bonjour à tous,

    J'essaie de finalement règler ce problème depuis longtemps de savoir si je devrais écrire mes programmes avec des noms de variables anglais ou français ? C'est pas vraiment un débat, mais j'aimerais connaitre le nombre de personnes qui utilise le français dans leurs noms de variables et classes et surtout pourquoi?. Bien entendu ceci exclut les commentaires.

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      3 janvier 2012 à 19:15:51

      En français parce que j'ai jamais pensé à les mettre en anglais ...
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        3 janvier 2012 à 19:32:05

        Pour ma part, tout le code ainsi que les variables sont en anglais pour coller aux nombreux frameworks anglais et garder une certaine cohérence au niveau du code.
        J'avoue cependant utiliser le français pour les commentaires et la doc car VS me propose une documentation de la lib standard dans ma langue native donc pourquoi se priver.

        De toute façon, à partir du moment où tu dois partager ton code avec beaucoup de monde, l'anglais s'impose pour le code comme pour la doc.
        • Partager sur Facebook
        • Partager sur Twitter
          3 janvier 2012 à 19:38:16

          J'avais lu un article à ce propos sur je ne sais plus quel blog. En gros, il était conseillé de coder en anglais pour la cohérence avec l'ensemble des codes qu'on peut trouver, et ne pas avoir de problèmes d'accentuation.
          • Partager sur Facebook
          • Partager sur Twitter
            3 janvier 2012 à 19:48:20

            Citation : entwanne

            J'avais lu un article à ce propos sur je ne sais plus quel blog. En gros, il était conseillé de coder en anglais pour la cohérence avec l'ensemble des codes qu'on peut trouver, et ne pas avoir de problèmes d'accentuation.


            Ça devait être ça.
            • Partager sur Facebook
            • Partager sur Twitter
              3 janvier 2012 à 23:52:17

              Parfais. Je vous remercie de vos commentaires. L'article ma convaincu d'opter pour l'anglais (malheureusement).
              • Partager sur Facebook
              • Partager sur Twitter
                4 janvier 2012 à 8:38:02

                Tu peux aussi coder en français sans mettre d'accent. De toute façon, va trouver un langage où les lettres accentuées sont acceptées dans la syntaxe, doit pas y en avoir des tonnes. Parce que si tu sais que ceux qui vont reprendre ton code sont anglophobes, si tu t'amuses à créer des fonctions retrieveAndEraseItemsWithBlankSpaces(), tu vas pas leur faciliter la vie.
                • Partager sur Facebook
                • Partager sur Twitter
                  4 janvier 2012 à 10:09:03

                  Je code en anglais. Perso quand j'utilise du

                  For myBook = 2 to 9451 ... Next x
                  

                  Je préfère avoir tout dans la même "langue" afin de garder cette fameuse homogénéité. :-°
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le Kansas City Shuffle.. c’est quand tout le monde regarde à gauche et que tu vas à droite.

                    4 janvier 2012 à 11:35:53

                    Tout dépend la situation si tu te trouve dans une entreprise tu dois respecter leur façon de faire.

                    Mais si tu es seul il faut juste que ce soit tout cohérent (les commentaires sont une autre chose) en pensant bien qu'il est possbile que tu passe à quelqu'un ton code
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
                      4 janvier 2012 à 13:52:38

                      Personnellement, je nomme mes fonctions / variables / classes exclusivement en anglais, pour les mêmes raisons citées plus haut (cohérence et lisibilité), mais il est vrai qu'en entreprise ce n'est plus une affaire de choix peronnel : il y a en général une nomenclature et un coding-style fixés (et parfois complètement arbitraires, parfois même débiles) à respecter. Cela dit, je n'ai jamais vu de code en français dans aucune boîte…

                      Pour les commentaires, je ne fais d'exception à la règle que lorsque le code est destiné à être affiché sur ce site.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Zeste de Savoir, le site qui en a dans le citron !
                      Anonyme
                        4 janvier 2012 à 13:54:27

                        Il est tout aussi cohérent de coder en français si le site est français...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 janvier 2012 à 13:57:30

                          Ben non, parce que for, while, if, etc., c'est de l'anglais, que ton site/programme soit en français ou en anglais
                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 janvier 2012 à 13:59:16

                            Citation : WebDev

                            Il est tout aussi cohérent de coder en français si le site est français...



                            Non. Ce serait cohérent si le langage que tu utilises pour ça contenait des mots-clé en français, donc "pour" à la place de for, "pourchaque" à la place de foreach, "si", "amoinsque" et "sinon" à la place de if, unless, else, etc.

                            Edit : Grilled by Taguan
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Zeste de Savoir, le site qui en a dans le citron !
                              4 janvier 2012 à 14:59:35

                              Perso je code en anglais : en effet :

                              getUserName est plus rapide que recupererNomUtilisateur
                              Ça fait gagner énormément de temps au final ;)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                4 janvier 2012 à 15:04:26

                                Donc imaginons que le prochain langage à la mode ait toutes ses instructions en allemand (c'es utopique je sais), tu te forcerais à écrire toutes variables, fonctions, membres et méthodes en allemand ?

                                Perso, dans ma boîte, c'est particulier. J'écris des scripts tournant très bien chez nous, mais qui doivent être adaptés à 2-3 endroits chez d'autres prestations. Le problème est que les gens chargés de cette adaptation...ne sont pas développeurs (même amateurs). C'est très con je sais, mais quand tu dois gérer ce genre de personne, qui ne savent pas ce qu'est un DOM et ne comprennent pas ce que fait CheckDocumentString(), ben pour éviter qu'ils t'appellent toutes les 5 minutes alors que t'as autre chose à foutre au taf, ben tu mets le plus de trucs possibles en français.

                                Et puis bon écrire un getTelephone() ou un setCodePostal(), moi ça me choque absolument pas. Je pars du principe qu'un développeur sait au minimum ce que sont des getter/setter et que j'ai pas besoin d'écrire à la place recupererTelephone() ou definirCodePostal().
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 janvier 2012 à 15:07:35

                                  tout dépend ou tu travaille des fois c'est même pas logique :-D
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
                                    4 janvier 2012 à 15:09:17

                                    Citation : rotoclap

                                    Donc imaginons que le prochain langage à la mode ait toutes ses instructions en allemand (c'es utopique je sais), tu te forcerais à écrire toutes variables, fonctions, membres et méthodes en allemand ?



                                    Non, mais si j'utilisais un langage avec instructions en français, ça me dérangerait moins de mettre mes variables en français.

                                    if (telephoneEstBleu()), y a rien à faire, ça sonne bizarre dans mon cerveau. C'est pas cohérent.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      4 janvier 2012 à 15:21:04

                                      Citation : rotoclap

                                      Donc imaginons que le prochain langage à la mode ait toutes ses instructions en allemand (c'es utopique je sais), tu te forcerais à écrire toutes variables, fonctions, membres et méthodes en allemand ?



                                      L'anglais est une langue universelle, elle est bien plus parlée que l'allemand.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        4 janvier 2012 à 15:42:01

                                        Totalement d'accord avec rotoclap.

                                        Moi perso quand je crée un site anglais il me semble normal de mettre les noms en anglais mais quand il est français je les met en français (Bon pas tout le temps), ce qui me semble le plus logique, le contenu est français donc mon code aussi.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        Anonyme
                                          4 janvier 2012 à 15:43:38

                                          Je sais bien je disais que j'étais d'accord et APRES j'ai parlé de mon cas. J'aurais du sauter une ligne, elles n'avaient rien à voir.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            4 janvier 2012 à 15:57:19

                                            Je plussoie totalement Rotoclap : pour moi les instructions du langage (et dérivées, typiquement les getters et setters) ne sont pas "dans une langue" mais sont juste des instructions. Ca pourrait être des symboles mathématiques, ça serait pareil (d'ailleurs beaucoup d'instructions *sont* des symboles).
                                            A tel point que quand je vois :
                                            if (variable == 0) {
                                                faireUnTruc();
                                            }
                                            

                                            Dans ma tête je lis :

                                            Citation : Mon cerveau

                                            Si variable égal zéro, faire un truc.


                                            Si tout le code est en anglais, je le lirai en anglais dans ma tête d'ailleurs.

                                            Pour moi tant qu'il n'y a pas de contrainte imposée il y a seulement deux points importants :
                                            • Ne pas mélanger les langues (abstraction faite des instructions). Par exemple pas de tuerCharacter();
                                            • Utiliser une langue adaptée au projet : anglais si le code est destiné à devenir public (le code en tchèque commenté en tchèque, j'ai déjà donné), langue nationale si le code est privé en particulier s'il y a des tanches en anglais dans l'équipe de développement.

                                            Les commentaires devraient être dans la même langue que le code (et c'est là que c'est important d'avoir une langue maîtrisée par toute l'équipe).

                                            Certains langages (comme Java) ne contraignent absolument pas les noms de classes / méthodes / etc à être en ASCII.
                                            Par exemple ce code Java est parfaitement valide :
                                            public class TestLangues {
                                            	
                                            	public static void main(String[] args) {
                                            		TestLangues test = new TestLangues();
                                            		test.español();
                                            		test.日本語();
                                            	}
                                            	
                                            	private void español() {
                                            		System.out.println("Español");
                                            	}
                                            	
                                            	private void 日本語() {
                                            		System.out.println("日本語");
                                            	}
                                            }
                                            

                                            (Eclipse demande un projet en UTF pour le faire fonctionner, et doit être configuré pour pouvoir utiliser tous les caractères valides dans les noms de classe).
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              4 janvier 2012 à 16:11:26

                                              Comme quoi, chacun sa mode.

                                              Cela dit, écrire les variables en français parce que le site/programme est en français... Le jour où, suite au succès fulgurant, tu traduis le site/programme en 5 langues pour l'internationaliser et devenir multimilliardaire, tu mets une variables sur cinq en français, une sur cinq en espagnol, une sur cinq en anglais, etc. ?

                                              En soi, c'est la proposition de Spacefox qui me parait la plus adaptée (vu qu'elle est adaptable :p ). Perso, j'ai pris l'habitude de tout faire en anglais, et partout où j'ai travaillé (wai bon, ok, j'ai pas non plus une longue carrière derrière moi), c'était en anglais aussi. Mais chacun son truc in fine, surtout pour un projet perso, clairement.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                4 janvier 2012 à 16:28:18

                                                Citation : Taguan

                                                Comme quoi, chacun sa mode.

                                                Cela dit, écrire les variables en français parce que le site/programme est en français... Le jour où, suite au succès fulgurant, tu traduis le site/programme en 5 langues pour l'internationaliser et devenir multimilliardaire, tu mets une variables sur cinq en français, une sur cinq en espagnol, une sur cinq en anglais, etc. ?

                                                En soi, c'est la proposition de Spacefox qui me parait la plus adaptée (vu qu'elle est adaptable :p ). Perso, j'ai pris l'habitude de tout faire en anglais, et partout où j'ai travaillé (wai bon, ok, j'ai pas non plus une longue carrière derrière moi), c'était en anglais aussi. Mais chacun son truc in fine, surtout pour un projet perso, clairement.



                                                non justement l'anglais est assez bien (à la limite si c'est un programme régional) le français je dirai plus si le prgramme est écrit avec un language français et non pas le programme en lui même qui est français et sinon cela dépend de ou tu travail si tout d'un coup l'entreprise décide d'une certaine manière tu t'y conforme mais niveau privé tant que c'est cohérant pas comme tu dis une sur cinq dans une langue 1 sur cinq dans une autre, etc. tout va bien
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
                                                  4 janvier 2012 à 21:29:13

                                                  Citation : SpaceFox

                                                  Je plussoie totalement Rotoclap : pour moi les instructions du langage (et dérivées, typiquement les getters et setters) ne sont pas "dans une langue" mais sont juste des instructions. Ca pourrait être des symboles mathématiques, ça serait pareil (d'ailleurs beaucoup d'instructions *sont* des symboles).



                                                  Sauf que la nomenclature, la coding-style et les conventions de nommage ne concernent pas le même aspect de la programmation que la compilation (où là, effectivement, on va parler de symboles et considérer les choses sous un angle bien plus mathématique). Un programme tel que l'on le voit avant sa compilation, c'est un texte écrit et destiné à être lu et compris en premier lieu par des humains, et accessoirement par un compilateur.

                                                  Citation : SpaceFox

                                                  Ne pas mélanger les langues (abstraction faite des instructions). Par exemple pas de tuerCharacter();



                                                  C'est impossible.
                                                  Ça implique de ne pas utiliser d'API codée en anglais, comme, à l'extrême, les bibliothèques standard d'à peu près tous les langages qui existent.

                                                  Citation : SpaceFox

                                                  langue nationale si le code est privé en particulier s'il y a des tanches en anglais dans l'équipe de développement.



                                                  Une tanche en anglais étant un mec qui ne saura pas lire correctement 90% de la documentation technique nécessaire au bon accomplissement de son travail dans la grande majorité des cas, je préfère largement me priver d'un tel membre dans une équipe plutôt que d'adapter une convention de nommage juste pour lui.

                                                  Citation : SpaceFox

                                                  Certains langages (comme Java) ne contraignent absolument pas les noms de classes / méthodes / etc à être en ASCII.



                                                  Non, mais ce faisant, en utilisant des caractères non-ASCII là où tu peux t'en passer, tu imposes des contraintes très fortes sur l'environnement dans lequel les gens travaillent, en particulier tu leur imposes de bosser tous dans le même environnement (ou du moins de torturer celui-ci pour arriver à accorder les violons), sacrifiant le confort et donc une partie de la productivité de l'ensemble d'une équipe pour… une tanche en anglais.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Zeste de Savoir, le site qui en a dans le citron !
                                                    4 janvier 2012 à 21:57:14

                                                    Tu noteras que je n'ai jamais dit que mes remarques étaient une bonne idée, je précise juste que c'est possible.
                                                    En particulier, la tanche en question peut t'être imposée par l'entreprise, le client ou je ne sais quoi d'autre.
                                                    Idem pour les caractères non ASCII : leur présence est possible techniquement. D'ailleurs, selon le langage et le projet, ça peut être une contrainte très forte comme très faible (si en 2012 tu as un environnement de développement et d'exécution Java dans lequel l'UTF pose problème, c'est que tu as un gros souci).

                                                    Tu n'as visiblement pas compris ma première remarque : je voulais dire par là que puisque les instructions ont valeur de symbole, leur langue n'a plus d'importance dans la lecture du programme : elle est fluide quelle que soit la langue du reste.

                                                    Mon "mélanger les langues" était confusant et mal dit.
                                                    Il s'applique uniquement au projet en réalité. Parce que le principal avantage de coder dans une langue autre que l'anglais est de pouvoir séparer immédiatement le code projet du code bibliothèque (standard ou non). Alors si tu commences à coder en franglais, c'est le bordel.
                                                    En particulier, quand tu reprends un projet commencé en français, tu le finis en français, même si on ne te l'impose pas - sinon ça devient vraiment le bordel.

                                                    Cela dit dans la vraie vie on a en général besoin de développer "pas en anglais" dans deux cas :
                                                    • C'est imposé (par le client, par le patron, ...)
                                                    • C'est une reprise d'un projet pas en anglais.

                                                    Sur le Site du Zéro, on a deux cas supplémentaires :
                                                    • On fait un projet de débutants avec des gens nuls en anglais - soi-même possiblement inclus.
                                                    • On fait un tuto pour des débutants.


                                                    Bref, tout ça pour dire que je ne suis pas sectaire et que ça ne me dérange pas de voir du code dans une autre langue que l'anglais, du moment que je comprends la langue et que ceux qui seront amenés à modifier le code la comprennent.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      4 janvier 2012 à 22:17:32

                                                      Citation : SpaceFox


                                                      En particulier, la tanche en question peut t'être imposée par l'entreprise, le client ou je ne sais quoi d'autre.



                                                      Bien sûr. J'aurais quand même tendance à tempérer en précisant qu'une très grosse majorité d'entreprises fonctionne globalement en anglais sur tout ce qui est développement, donc que c'est un cas de figure relativement rare.

                                                      Citation : SpaceFox

                                                      (si en 2012 tu as un environnement de développement et d'exécution Java dans lequel l'UTF pose problème, c'est que tu as un gros souci).



                                                      Un clavier QWERTY ? :)

                                                      Citation : SpaceFox

                                                      dire par là que puisque les instructions ont valeur de symbole, leur langue n'a plus d'importance dans la lecture du programme : elle est fluide quelle que soit la langue du reste.



                                                      Un « if my_var is not None: » en Python ou un « let sum = a + b in ... » en Haskell ont bien plus une valeur sémantique dans un langage naturel qu'en tant que symbole, si tu veux mon avis : les deux sont des traductions directes d'un discours anglais (avec en bonus, une formulation empruntée à la rédaction d'un texte de mathématiques dans le second exemple). D'ailleurs, c'est pour cela qu'un branchement conditionnel va s'écrire if plutôt que cond, a fortiori dans un langage impératif. Le nommage des mots-clés dans beaucoup de langages suit ce type de logique.

                                                      Citation

                                                      Cela dit dans la vraie vie on a en général besoin de développer "pas en anglais" dans deux cas :

                                                      • C'est imposé (par le client, par le patron, ...)
                                                      • C'est une reprise d'un projet pas en anglais.


                                                      On en revient à un point sur lequel je suis d'accord : il faut rester cohérent avec les contraintes externes d'un projet. Mais je persiste en défendant le nommage en anglais pour tout projet n'ayant pas ce genre de contrainte : il y a tout à y gagner.

                                                      Citation

                                                      Sur le Site du Zéro, on a deux cas supplémentaires :

                                                      • On fait un projet de débutants avec des gens nuls en anglais - soi-même possiblement inclus.
                                                      • On fait un tuto pour des débutants.




                                                      Sur le SDZ, j'estime que continuer à coder en anglais mais mettre les commentaires en français est un bon compromis. Notamment lorsque le tuto aborde des bibliothèques dont les noms sont en anglais.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Zeste de Savoir, le site qui en a dans le citron !

                                                      Nomenclature en programmation : Francais ou Anglais ?

                                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                      • Editeur
                                                      • Markdown