Globalement d'accord sur le fond du commentaire. Qq détails néanmoins:
Si je devais enseigner la programmation à un vrai débutant dans de bonnes conditions, je prendrais un langage [...] interprété (le principe de la compilation est hyper-complexe, en fait),
Peut-être interprété, mais avec une très bonne vérification syntaxique et des messages d'erreur clairs. Et ça, j'ai pas l'impression que ce soit facile à trouver avec des langages (coïncidence? Erreur de ma part? Corrélation cachée avec d'autre facteurs comme le typage fortement dynamique?).
sans trucs énervants (du genre les points virgule...)
Les étudiants ne butent pas trop sur les points-virgule. C'est assez systématique pour ne pas les gêner.
non-typé (la rigueur, ça viendra après),
Et bien sur ce point, je constate à ma propre surprise que ça dépend vraiment des individus! Ceux qui sont à l'aise (entre autre parce qu'ils ont déjà programmé en typage statique) s'en tirent très bien avec le duck typing (je suppose que c'est ce que tu appelles non typé). D'autres, à l'esprit plus brouillon, sont guidés par les types parce qu'il réduisent les actions possibles sur leurs objets/variables et se retrouvent à débugger des programmes où ils affectent des poires dans des lapins. Bref, pas facile de faire un choix.
Plus généralement, la rigueur, ce n'est pas une discipline ou un savoir faire, c'est d'abord une façon de penser. Beaucoup d'étudiants sont "intentionistes": la "machine" (l'interpréteur de commandes ou de script, le compilateur...) doit s'adapter à moi et comprendre ce que je souhaite parce qu'après tout, mon intention en pseudo-français est indiquée dans le programme. Et beaucoup de dépassent jamais ce stade.
Au contraire, la première chose à comprendre, c'est que c'est à l'humain d'adopter une syntaxe précise et que la sémantique n'a pas une interprétation automagique pour coller à tes besoins non exprimés (hormis peut-être la PLC et encore...).
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).
Vrai pour une partie d'entre eux. À tel point que le html devient leur langage de 'programmation' (sisi, je l'entends régulièrement) :( Pour avoir essayé des approches très graphiques (avec des boîtes noires maison qui leur simplifie la vie), on s'est retrouvé avec une partie des étudiant incapables de gérer plus d'un niveau de boucle, ou de coder une couche métier.
Toujours dans les trucs bizarre, il y a des jeunots super doués pour assembler par copié/collé des bouts de code en un ensemble à peu près fonctionnel mais qu'ils ne comprennent vraiment pas!
[^] # Re: Décalage
Posté par Trollgouin . En réponse à la dépêche MicroAlg: langage et environnements pour l’algorithmique. Évalué à 3.
Globalement d'accord sur le fond du commentaire. Qq détails néanmoins:
Peut-être interprété, mais avec une très bonne vérification syntaxique et des messages d'erreur clairs. Et ça, j'ai pas l'impression que ce soit facile à trouver avec des langages (coïncidence? Erreur de ma part? Corrélation cachée avec d'autre facteurs comme le typage fortement dynamique?).
Les étudiants ne butent pas trop sur les points-virgule. C'est assez systématique pour ne pas les gêner.
Et bien sur ce point, je constate à ma propre surprise que ça dépend vraiment des individus! Ceux qui sont à l'aise (entre autre parce qu'ils ont déjà programmé en typage statique) s'en tirent très bien avec le duck typing (je suppose que c'est ce que tu appelles non typé). D'autres, à l'esprit plus brouillon, sont guidés par les types parce qu'il réduisent les actions possibles sur leurs objets/variables et se retrouvent à débugger des programmes où ils affectent des poires dans des lapins. Bref, pas facile de faire un choix.
Plus généralement, la rigueur, ce n'est pas une discipline ou un savoir faire, c'est d'abord une façon de penser. Beaucoup d'étudiants sont "intentionistes": la "machine" (l'interpréteur de commandes ou de script, le compilateur...) doit s'adapter à moi et comprendre ce que je souhaite parce qu'après tout, mon intention en pseudo-français est indiquée dans le programme. Et beaucoup de dépassent jamais ce stade.
Au contraire, la première chose à comprendre, c'est que c'est à l'humain d'adopter une syntaxe précise et que la sémantique n'a pas une interprétation automagique pour coller à tes besoins non exprimés (hormis peut-être la PLC et encore...).
Vrai pour une partie d'entre eux. À tel point que le html devient leur langage de 'programmation' (sisi, je l'entends régulièrement) :( Pour avoir essayé des approches très graphiques (avec des boîtes noires maison qui leur simplifie la vie), on s'est retrouvé avec une partie des étudiant incapables de gérer plus d'un niveau de boucle, ou de coder une couche métier.
Toujours dans les trucs bizarre, il y a des jeunots super doués pour assembler par copié/collé des bouts de code en un ensemble à peu près fonctionnel mais qu'ils ne comprennent vraiment pas!