Je me suis posé la question il y a quelques années quand on m'a demandé de faire le cours d'initiation à l'algorithmique et à la programmation pour des élèves ingénieurs en prépa intégrée (sup). Ils ne se destinaient pas forcément à être informaticiens, l'école étant généraliste.
J'ai opté pour le D pour les raisons suivantes :
- syntaxe proche des langages les plus utilisés que sont le C et Java ;
- ramasse miette ;
- gestion des chaînes de caractère moins chiantes ;
- passage de paramètre qui me semble plus simple qu'en C sans avoir à introduire les références et les pointeurs (pas au programme).
- les objets n'étant pas au programme, le code simple écrit en D n'oblige pas à créer des classes comme en Java si on ne fait pas de code objet.
- je voulais un langage compilé pour montrer la différence entre un code source qui est lu par l'humain, et le code machine qui est lu par l'ordinateur, et que donc il faut faire du code lisible pour les humains !
Donc globalement, cela permettait de faire des petites choses basiques comme on les ferait en C, avec un langage plus moderne avec lequel on ne se prend pas la tête sur des détails, tout en ayant un syntaxe moins lourde que Java.
Je crois que maintenant, mon choix se porterait sur le Dart :
- comme pour le D, la syntaxe est très proche des langages les plus répandus, donc pas déroutant ;
- permet de faire du code client web ou serveur ;
- environnement de développement fourni (Dart Editor) ;
- types vérifiés statiquement (même si le langage est dynamique) ;
- ramasse miette ;
- comme pour le D, pas besoin de classe quand on ne fait pas d'objet.
Je trouve en effet que c'est pas mal d'avoir un IDE et une vérification statique car il faut voir le temps perdu par les débutant pour des erreurs complètement bêtes (manque de point-virgule, typo dans le nom d'une variable ou d'un mot clé... ).
J'ai aussi donné des TP d'info à des L1 math/info et bio en C (enfin, un mix C/C++ pour prendre le plus simple des deux mondes) ou JavaScript. Pour le C+ (comme on disait :-), il y a quand même quelques détails bas niveau relou sur lesquels ils butent. Quant au JavaScript, ils prennent vite de mauvaise habitudes : ils voient que leur code fonctionne sans avoir besoin de suivre les règles qu'on leur a donné, puis ils ne comprennent pas pourquoi leur programme suivant ne fonctionne pas (erreurs classiques et relou sur les types).
Pour ce qui est de la profusion de doc, je ne pense pas que ça soit un critère super important car la majorité des étudiants n'ont pas encore l'habitude de se documenter par eux-même, donc même s'il y en a, ils ne la lisent pas !
# Mon expérience
Posté par Dr BG . En réponse au journal Python comme premier langage de programmation ?. Évalué à 9. Dernière modification le 22 juillet 2014 à 18:02.
Je me suis posé la question il y a quelques années quand on m'a demandé de faire le cours d'initiation à l'algorithmique et à la programmation pour des élèves ingénieurs en prépa intégrée (sup). Ils ne se destinaient pas forcément à être informaticiens, l'école étant généraliste.
J'ai opté pour le D pour les raisons suivantes :
- syntaxe proche des langages les plus utilisés que sont le C et Java ;
- ramasse miette ;
- gestion des chaînes de caractère moins chiantes ;
- passage de paramètre qui me semble plus simple qu'en C sans avoir à introduire les références et les pointeurs (pas au programme).
- les objets n'étant pas au programme, le code simple écrit en D n'oblige pas à créer des classes comme en Java si on ne fait pas de code objet.
- je voulais un langage compilé pour montrer la différence entre un code source qui est lu par l'humain, et le code machine qui est lu par l'ordinateur, et que donc il faut faire du code lisible pour les humains !
Donc globalement, cela permettait de faire des petites choses basiques comme on les ferait en C, avec un langage plus moderne avec lequel on ne se prend pas la tête sur des détails, tout en ayant un syntaxe moins lourde que Java.
Je crois que maintenant, mon choix se porterait sur le Dart :
- comme pour le D, la syntaxe est très proche des langages les plus répandus, donc pas déroutant ;
- permet de faire du code client web ou serveur ;
- environnement de développement fourni (Dart Editor) ;
- types vérifiés statiquement (même si le langage est dynamique) ;
- ramasse miette ;
- comme pour le D, pas besoin de classe quand on ne fait pas d'objet.
Je trouve en effet que c'est pas mal d'avoir un IDE et une vérification statique car il faut voir le temps perdu par les débutant pour des erreurs complètement bêtes (manque de point-virgule, typo dans le nom d'une variable ou d'un mot clé... ).
J'ai aussi donné des TP d'info à des L1 math/info et bio en C (enfin, un mix C/C++ pour prendre le plus simple des deux mondes) ou JavaScript. Pour le C+ (comme on disait :-), il y a quand même quelques détails bas niveau relou sur lesquels ils butent. Quant au JavaScript, ils prennent vite de mauvaise habitudes : ils voient que leur code fonctionne sans avoir besoin de suivre les règles qu'on leur a donné, puis ils ne comprennent pas pourquoi leur programme suivant ne fonctionne pas (erreurs classiques et relou sur les types).
Pour ce qui est de la profusion de doc, je ne pense pas que ça soit un critère super important car la majorité des étudiants n'ont pas encore l'habitude de se documenter par eux-même, donc même s'il y en a, ils ne la lisent pas !