On a déja vu passer de nombreuses tentatives de traduction de langages informatiques, et, personnellement, je n'en ai jamais compris l'intérêt. Ça semble partir de l'hypothèse que les langages existants sont en anglais, et que cela pourrait constituer une barrière à l'apprentissage.
Or, d'après mon expérience, c'est complètement faux. D'une part, les langages informatique ne sont pas en anglais (seuls quelques mot-clé, souvent très rares, le sont), et d'autre part, la barrière à l'apprentissage est la logique de la programmation, et pas la syntaxe (sauf évidemment pour les langages à la con où on écrit "(Si (< (Nombre (Demander)) 18)"). Personnellement, je me rappelle avoir appris à programmer dans l'espèce de basic moche des calculatrices scientifiques, avec 5 mots clés qui se battent en duel. Ce qui est compliqué, c'est de comprendre le fonctionnement d'une boucle "for", ça n'est pas de piger que "for" veut dire "pour". D'ailleurs, je me rappelle bien avoir compris des années après que "goto" voulait dire "go to". Beaucoup de mots clé sont transparents (library, return, function, vector, stop, break, continue, ...), beaucoup sont complètement obscurs même pour un anglophone (cout, cerr, fork, push, chomp, grep...), et dans tous les cas, il est strictement impossible de comprendre intuitivement comment les utiliser.
Si je devais enseigner la programmation à un vrai débutant dans de bonnes conditions, je prendrais un langage simple (if(a>0) et pas if(>(a 0))), interprété (le principe de la compilation est hyper-complexe, en fait), sans pièges syntaxiques (style if (a = 0) vs. (a == 0)), sans trucs énervants (du genre les points virgule...), non-typé (la rigueur, ça viendra après), et avec une bibliothèque graphique simple et naive (parce que les débutants, ils ne voient pas l'intérêt de rentrer des valeurs dans un terminal). Deux structures de contrôle (if/else et for), et c'est parti. En plus, utiliser des mot-clés qu'on ne comprend pas vraiment permet de dissocier la logique de la langue (par exemple, le "ou" qui tend à être exclusif) avec celle du formalisme informatique.
# Décalage
Posté par arnaudus . En réponse à la dépêche MicroAlg: langage et environnements pour l’algorithmique. Évalué à 10. Dernière modification le 23 octobre 2014 à 14:05.
On a déja vu passer de nombreuses tentatives de traduction de langages informatiques, et, personnellement, je n'en ai jamais compris l'intérêt. Ça semble partir de l'hypothèse que les langages existants sont en anglais, et que cela pourrait constituer une barrière à l'apprentissage.
Or, d'après mon expérience, c'est complètement faux. D'une part, les langages informatique ne sont pas en anglais (seuls quelques mot-clé, souvent très rares, le sont), et d'autre part, la barrière à l'apprentissage est la logique de la programmation, et pas la syntaxe (sauf évidemment pour les langages à la con où on écrit "(Si (< (Nombre (Demander)) 18)"). Personnellement, je me rappelle avoir appris à programmer dans l'espèce de basic moche des calculatrices scientifiques, avec 5 mots clés qui se battent en duel. Ce qui est compliqué, c'est de comprendre le fonctionnement d'une boucle "for", ça n'est pas de piger que "for" veut dire "pour". D'ailleurs, je me rappelle bien avoir compris des années après que "goto" voulait dire "go to". Beaucoup de mots clé sont transparents (library, return, function, vector, stop, break, continue, ...), beaucoup sont complètement obscurs même pour un anglophone (cout, cerr, fork, push, chomp, grep...), et dans tous les cas, il est strictement impossible de comprendre intuitivement comment les utiliser.
Si je devais enseigner la programmation à un vrai débutant dans de bonnes conditions, je prendrais un langage simple (if(a>0) et pas if(>(a 0))), interprété (le principe de la compilation est hyper-complexe, en fait), sans pièges syntaxiques (style if (a = 0) vs. (a == 0)), sans trucs énervants (du genre les points virgule...), non-typé (la rigueur, ça viendra après), et avec une bibliothèque graphique simple et naive (parce que les débutants, ils ne voient pas l'intérêt de rentrer des valeurs dans un terminal). Deux structures de contrôle (if/else et for), et c'est parti. En plus, utiliser des mot-clés qu'on ne comprend pas vraiment permet de dissocier la logique de la langue (par exemple, le "ou" qui tend à être exclusif) avec celle du formalisme informatique.