IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

"Apprendre un langage de programmation c'est comme apprendre une nouvelle langue" : vrai ou faux ?


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Katleen Erna
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 547
    Par défaut "Apprendre un langage de programmation c'est comme apprendre une nouvelle langue" : vrai ou faux ?
    "Apprendre un langage de programmation c'est comme apprendre une nouvelle langue" : vrai ou faux ?

    Apprendre un langage de programmation, c'est comme apprendre un autre langage. C'est pareil.

    Voilà le genre d'analogie qui l'on peut entendre et lire très fréquemment. Même des professeurs d'informatique emploient de tels propos.

    Mais vous, qu'en pensez-vous ?

    Je connais par exemple certains développeurs très doués pour jongler d'une langage à l'autre, mais qui par ailleurs sont inconpétents lorsqu'il s'agit d'apprendre une langue étrangère (la plus facile soit elle).

    Les différences entre langages formels et naturels sont en effet de taille.

    Deux camps s'affrontent ici : ceux qui pensent que le C++ s'apprend comme l'anglais ou l'allemand ; et ceux qui pensent que le C++ s'apprend plutôt comme le solfège et l'écriture des partitions.

    Alors, selon vous, apprendre un langage de programmation, c'est comme apprendre une langue étrangère ?

  2. #2
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Je ne dirais pas que c'est la même chose, mais le principe de base est le même: apprendre un vocabulaire de base et des règles syntaxiques pour accorder une sémantique à l'ensemble.

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 72
    Par défaut
    C'est faux : il est beaucoup, beaucoup, beaucoup plus facile d'apprendre un nouveau langage de programmation de même "typologie" qu'une nouvelle langue. En ce sens l'effort n'est pas du tout le même.
    Par contre apprendre un langage basé sur un autre paradigme (de l'object quand on vient du procédural, un langage impératif comme lisp quand on vient de l'objet, etc.) n'est pas du tout pareil que d'apprendre une nouvelle langue non plus (il n'y a pas que la grammaire et le vocabulaire qui changent ;..).

  4. #4
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Au cours de mes études, on m'a toujours présenté la programmation (qu'elle soit impérative, déclarative, fonctionnelle, logique, ...) comme un dialogue entre le développeur et la machine.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Par défaut
    C'est completement faux, on ne peut pas comparer. Pour utiliser un langage de programmation, il faut grand maximum 20 mots clef, et encore je suis large. Pour une langue, il faut minimum 1500 voir 2000 mots pour tenir une conversation. Certe, il y a une grammaire, une syntax, un vocabulaire et une logique mais ce n'est pas comparable.
    Quelqu'un sachant programmer peut apprendre un nouveau langage en moins d'1 heure, un traducteur parlant 5 langue ne peut pas apprendre une 6eme langue en moins de plusieurs mois.

  6. #6
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    J'ai pas dit que c'était la même chose, juste qu'il y avait des bases communes. Dire que 1 heure suffit à apprendre un nouveau langage de programmation, c'est valable uniquement dans le cas ou le programmeur connait la paradigme de programmation et un langage avec une syntaxe proche.
    Sur une langue naturelle, l'effort de mémorisation est plus grand (ne serait-ce que pour le vocabulaire plus vaste) et ça nécessite moins de logique; mais il y a quand même un bon nombre de points communs.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 39
    Par défaut
    Bonsoir,

    il faudrait tout d'abord se mettre d'accord sur le sens accordé (dans ce sujet) au mot "langage".

    - S'il ne sagit que dudit langage de programmation, c'est à dire son vocabulaire et sa grammaire, ceux-ci étant extrêmement réduits (pour la plupart des langages : une vingtaine de mot et très peu de règles), alors apprendre un langage de programmation est une chose ô combien facile, aussi simple qu'une vulgaire poésie.
    Cela n'a donc RIEN à voir avec un langage humain. Un langage humain possède un vocabulaire extraordinairement riche (combien de mot dans la lange française ?) et une grammaire que seuls des no-life des bibliothèques maîtrisent vraiment.

    - Si l'on parle du langage de programmation et tout ce qui l'entoure : cad le langage en lui-même auquel on ajoute les ou les paradigmes, divers concepts, les "bonnes pratiques", etc... (je dois bien en oublier les 3/4 ^^), cela n'est PAS simple, et demande de l'expérience, donc de la pratique.
    On retrouve le besoin d'expérience (le côté "physique" de l'apprentissage) du langage humain, les bonnes pratiques (les usages), etc. On s'en rapproche, mais de là à dire que c'est le même type d'apprentissage... je dirais que c'est un raccourcis un peu facile et peu réfléchi (un type a entendu un autre type dire ça et a trouvé que ça ferait "intellectuel" de le ressortir à tout le monde... et voilà la naissance d'une idée reçue totalement infondée*).

    *j'ai entendu un type le dire à un type..., c'est dire !

    [edit] C'est bête mais j'y pense, pour ceux qui ont vu les langages formels, vous savez bien qu'on classe les langages en plusieurs niveaux (3 ou 4 si ma mémoire est bonne, peut être 5, pfiouuu c'est loin) ? Bon bah voilà, on y classe les langages de programmation dans ces X niveaux, mais aussi les langages "humain" (caractériser un langage humain n'est pas compliqué, c'est juste... long).
    Il devient facile de les comparer, à condition de s'entendre sur la définition du mot "langage"

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 586
    Par défaut
    Citation Envoyé par jaimepaslesmodozélés Voir le message
    - Si l'on parle du langage de programmation et tout ce qui l'entoure : cad le langage en lui-même auquel on ajoute les ou les paradigmes, divers concepts, les "bonnes pratiques", etc... (je dois bien en oublier les 3/4 ^^), cela n'est PAS simple, et demande de l'expérience, donc de la pratique.
    Les bonnes pratiques sont souvent affaire de bon sens et souvent aussi identiques d'un langage à l'autre (je pense par exemple à indenter, commenter, etc.). Dans une même typologie (C/C++, Java, C#, scala, python, ruby, etc.), apprendre le premier langage est plus ou moins difficile, apprendre les suivants est plus simple. Mais si on change de type de langage (par exemple passage à un langage fonctionnel, ou à un langage de type Forth), c'est toute une manière de penser qui est à revoir, et là c'est plus ardu! C'est un peu comme apprendre l'italien quand on est francophone, ou l'anglais même, et apprendre le chinois: plein de nouveautés et des tas d'habitudes à mettre à la poubelle.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2009
    Messages : 53
    Par défaut
    Citation Envoyé par creack Voir le message
    C'est completement faux, on ne peut pas comparer. Pour utiliser un langage de programmation, il faut grand maximum 20 mots clef, et encore je suis large. Pour une langue, il faut minimum 1500 voir 2000 mots pour tenir une conversation. Certe, il y a une grammaire, une syntax, un vocabulaire et une logique mais ce n'est pas comparable.
    Quelqu'un sachant programmer peut apprendre un nouveau langage en moins d'1 heure, un traducteur parlant 5 langue ne peut pas apprendre une 6eme langue en moins de plusieurs mois.
    C'est là aussi un point qui mérite de s'y attarder. Je pense que quelqu'un qui apprendre les langages naturels diminue au fils des langues son temps d'apprentissage d'un nouvel langage cela au même titre qu'un programmeur. Pour le programmeur c'est beaucoup plus facile puisque les mots identiques d'un langage à l'autre sont nombreux et signifient en générale la même chose. Or pour un traducteur ce phénomène se produira au bout de beaucoup de langue aussi! redondance (similutude du moins) de mot et de signification.

    Exemple:
    java utilise length là où python utilise len.
    Fr ami et espagnol amigo

  10. #10
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    891
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2007
    Messages : 891
    Par défaut Analogie
    Citation Envoyé par creack Voir le message
    C'est completement faux, on ne peut pas comparer. Pour utiliser un langage de programmation, il faut grand maximum 20 mots clef, et encore je suis large. Pour une langue, il faut minimum 1500 voir 2000 mots pour tenir une conversation. Certe, il y a une grammaire, une syntax, un vocabulaire et une logique mais ce n'est pas comparable.
    Quelqu'un sachant programmer peut apprendre un nouveau langage en moins d'1 heure, un traducteur parlant 5 langue ne peut pas apprendre une 6eme langue en moins de plusieurs mois.
    Il s'agit d'une analogie. Il est certain que c'est très différent. Mais pour un néophite il pourra comprendre le genre de difficultés. Pour moi, la seul différence d'importance, c'est la complexité, d'où un temps d'apprentissage bien moindre. Connaitre un langage de programmation n'est pas seulement connaitre les 20 mots clefs. Il y a des tournures pour rester dans le parallèle avec l'humain ( '_' pour les attributs private en C++), il y a un contexte (compilé, interprété... ), des modes (architerctures différentes de réaliser un programme), un style (professionel vs amateur / soutenu vs vulgaire)...

    Tous les langages humains ne sont pas aussi complexe et complet dans tous les domaines. (Il existe un langage humain pour lequel il n'y a pas de nombres au delà de 3 par exemple, un langage ïnuït complet dans sa description de la neige, le latin au conjugaison complexes... ). Il est à noté que les langages informatique se complexifient (traitement des exceptions, des threads, précompilation partiel... ). Mais pour l'instant il n'y a que le langage humain qui soit vraiment polyvalent...

    Je donnerais ainsi une définition comune : un langage doit permettre une communication pour faire passer des notions complexe. Et ceci demande une tournure d'esprit particulière.

  11. #11
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    "Apprendre un langage de programmation c'est comme apprendre une nouvelle langue : vrai ou faux ?"

    Vrai.

    La différence, c'est que une langue, c'est beaucoup d'histoire derrière elle (des siècles).
    Donc, on a des bizarerie et surtout des exceptions qui confirme la règle, des irrégularités (dans les verbes).
    Apprendre une langue, c'est apprendre aussi ces siècles d'histoire de construction... Donc long et difficile.
    De plus, un langue s'appuie sur un logique culturelle (et non scientifique).

    Le langage de programmation est lui scientifique, il évite au maximum les exceptions et irrégularité et il a généralement 10/20 ans d'histoire derrière lui.
    Il est scientifique, ça veut donc dire qu'il suit une logique stricte et pas sentimental.
    Donc, c'est plus simple de l'apprendre.
    Sauf que, pour apprendre un langage de programmation, il faut voir une culture scientifique (math, logique binaire...).

    Ma copine, comprend très bien les langues, mais je lui montre un programme C/Basic ou autre, elle ne comprend rien.
    Pourquoi ?
    Parce que ça formation était basée sur les langues (logique humaine) et elle n'a pas fait d'étude scientifique (math, physique...)
    Moi, c'est tout le contraire.

    Donc, oui, il est aussi simple d'apprendre une langue ou un langage de programmation, tout dépend de quelle base on possède.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2009
    Messages : 53
    Par défaut
    C'est amusant il n' y a même pas 24h je réfléchissais à cette question. J'en suis arrivé à pas mal de possibilités de comparaison. Mais une chose est sûr ce n'est pas la même chose tout simplement parce que j'ai du mal à apprendre une langue naturel alors que niveau langage de prog ca fuse.
    Cela est peut-être dû à une mise en situation ou appréhension, je ne sais pas.
    Il doit être plus difficile de traduire un texte vers un autre texte plutôt qu'une suite de méta-caractère vers un texte. [...]
    J'en ai conclu de manière aléatoire qu'apprendre une langue naturel équivaut à environ 3 langage de programmation de difficulté intermédiaire.

    En fait il y'a vraiment beaucoup à dire (spéculer plutôt) sur ce sujet.

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par défaut
    Citation Envoyé par Killing Joke Voir le message
    C'est faux : il est beaucoup, beaucoup, beaucoup plus facile d'apprendre un nouveau langage de programmation de même "typologie" qu'une nouvelle langue. En ce sens l'effort n'est pas du tout le même.
    Par contre apprendre un langage basé sur un autre paradigme (de l'object quand on vient du procédural, un langage impératif comme lisp quand on vient de l'objet, etc.) n'est pas du tout pareil que d'apprendre une nouvelle langue non plus (il n'y a pas que la grammaire et le vocabulaire qui changent ;..).
    +1

  14. #14
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    ceux qui pensent que le C++ s'apprend comme l'anglais ou l'allemand

    Le C++ s'apprend plutôt comme le Danois.

    Je parle plusieurs langues (python, c++, ..) et ma langue maternelle est le BASIC.

    Une langue de programmation et un langage ont la même racine (logos discours de tartuga tortue). Programmer, c'est donc discourir, le tout étant de partir à point.

    La plupart des langues anciennes occidentales ayant pour origine l'ASCII, elles partagent dans une large mesure les même phonèmes... pauvres en accents.

    Avec un émulateur on peut encore lancer les premières demos du programmeur Noam Chomsky. Ses codes sont toujours des const références de nos jours. Ca vaut le coup d'y jeter un oeil.


  15. #15
    Membre éprouvé
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juillet 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Juillet 2009
    Messages : 122
    Par défaut
    Citation Envoyé par Katleen Erna Voir le message
    Je connais par exemple certains développeurs très doués pour jongler d'une langage à l'autre, mais qui par ailleurs sont inconpétents lorsqu'il s'agit d'apprendre une langue étrangère (la plus facile soit elle).
    En parlant de langue, est-ce "inconpétents" ou bien "incompétents"?

    Plus sérieusement, en dehors du mot "langage", il n'y a pas de lien à faire entre les langues et les langages informatiques. Une langue est avant tout chargée de nombreuses références qui relèvent du non-dit (ce que l'on appelle le "savoir commun"). Au contraire, un langage informatique est un concept qui provient d'une démarche logique d'unification de la façon de traiter certains problèmes. En informatique, il n'y a pas les sous-entendus que l'on peut trouver dans une conversation. Comparer l'apprentissage d'un langage informatique et celui d'une langue revient à dire que connaître les fréquences des différentes couleurs permettrait de parler d'art...

  16. #16
    Membre très actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 163
    Par défaut
    Apprendre un langage de programmation c'est comme apprendre une nouvelle langue
    Si l'inverse était vrai, je parlerai au moins la moitié des langues de ce monde.

  17. #17
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2009
    Messages : 37
    Par défaut
    Selon moi la comparaison n'a pas lieu d'être. Apprendre un langage de programmation et apprendre une langue étrange sont deux choses radicalement différente.

    Pour preuve, prenons l'éducation d'un langage de programmation et de l'anglais. Pour le langage de programmation vous allez apprendre sa syntaxe et c'est tout. Pour une langue c'est bien plus complexe que ça. Il faut apprendre le vocabulaire, la grammaire, et surtout la culture du ou des pays où la langue est parlée.

    Une langue, contrairement à ce que certaines personnes pensent, ce n'est pas juste de la grammaire et du vocabulaire. La culture joue un rôle essentiel dans l'apprentissage de cette dernière. De plus, la langue évoluera sans cesse, en plus de cela elle a plusieurs but. Là où un langage de programmation ne permet que la communication [machine/programmeur], une langue vivante permet de transmettre des informations, d'échanger, de débattre bref plein de chose.

    En plus de cela, prenons un autre exemple. Pour formaliser nos connaissances nous avons souvent recours à des langages logiques tel que le L1. Or, L1 est certaines fois insuffisant pour exprimer quelque chose, et on doit avoir recours à un autre langage. Un langage de programmation ne pourra jamais être aussi riche qu'une langue vivante. Alors dire que c'est le même apprentissage, je n'approuve pas.

  18. #18
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Par défaut
    Peut-être que le jour ou Eclipse me sortira du javascript avec un accent québécois je pourrais commencer à me poser la question.

  19. #19
    Membre confirmé Avatar de Epica84
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 164
    Par défaut
    Citation Envoyé par Sebish Voir le message
    Peut-être que le jour ou Eclipse me sortira du javascript avec un accent québécois je pourrais commencer à me poser la question.


    Vous utilisez pas eclipse en anglais??? Pourtant vous avez l'ai pro JAVA donc je penser que vous utilisiez la Version english of course

    Cordialement

  20. #20
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Par défaut
    Je n'ai pas beaucoup de connaissances dans les langues, si ce n'est que j'arrive à me faire comprendre (parfois) mais...

    Comme je l'ai lu ici, là où une langue permet aux êtres humains de communiquer, un langage de prog permet de se faire comprendre par un ordinateur. Cette similitude me fait plutôt pencher pour la réponse : oui c'est pareil.

    Je trouve que c'est pareil, à quelques exceptions près. Selon moi c'est surtout la taille de la matière à apprendre qui diffère mais, par contre, on passe par les mêmes étapes pour apprendre le C que pour apprendre l'anglais : hello world, vocabulaire et définitions, grammaire, règles en tout genre...

    Une langue, contrairement à ce que certaines personnes pensent, ce n'est pas juste de la grammaire et du vocabulaire. La culture joue un rôle essentiel dans l'apprentissage de cette dernière.
    Je me demande si justement les langages de programmation ne seraient pas la preuve que la culture n'a rien à voir dans le fait de pouvoir communiquer grâce à un langage. Ou, si la culture est vraiment importante, je suis persuadé que les langages de programmation en on leur équivalent.

    Pour moi les différences relèvent du détail insignifiant. Car ce qui est important là dedans c'est de communiquer. Alors en résumé, oui ce n'est pas pareil d'apprendre l'un ou l'autre (rien n'est pareil) mais peut-on faire le même rapprochement entre la mécanique et le français ? Est-ce qu'un mécanicien parle à sa voiture ?

Discussions similaires

  1. Réponses: 37
    Dernier message: 01/04/2010, 14h17
  2. Apprendre un langage de programmation moderne
    Par aegal dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 3
    Dernier message: 22/02/2006, 14h15
  3. Apprendre un langage de programmation ?
    Par Invité dans le forum Débuter
    Réponses: 5
    Dernier message: 08/02/2005, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo