A propos du choix du langage de programmation : Différence entre versions
m (Page créée avec « = A propos du choix du langage de programmation = «'''Quel[s] langage[s] les profs vont utiliser pour les TP de programmation ?'''» voila peut-être la 1ère et la plus fr... ») |
m (→A propos du choix du langage de programmation) |
||
Ligne 1 : | Ligne 1 : | ||
= A propos du choix du langage de programmation = | = A propos du choix du langage de programmation = | ||
− | «'''Quel[s] langage[s] les profs vont utiliser pour les TP de programmation ?'''» | + | «'''Quel[s] langage[s] les profs vont utiliser pour les TP de programmation ?'''» voilà peut-être la 1ère et la plus fréquente question que nous nous posons y compris sur notre [http://science-info-lycee.fr/le-forum/?mingleforumaction=viewtopic&t=10 forum] et c'est un sujet qui peut alimenter de longs débats. |
− | Paradoxalement, il y une réponse assez simple à cette question: «Nous devons rester agnostique et choisir un langage | + | Paradoxalement, il y une réponse assez simple à cette question: «Nous devons rester agnostique et choisir un langage standard et ouvert, bien supporté et avec une base [http://fr.wikipedia.org/wiki//Programmation_impérative impérative]»: |
+ | * Choisir un langage à une base impérative, c'est à dire avec les [http://interstices.info/ingredients-algorithmes ingrédients usuels des algorithmes] (séquence d'instruction, instruction conditionnelle, affectation de variables et boucles). | ||
+ | * Choisir un langage standard, ouvert et bien supporté (ex: [http://fr.wikipedia.org/wiki/Java Java] ou [http://fr.wikipedia.org/wiki/Python_%28langage%29 Python] probablement [http://fr.wikipedia.org/wiki/Javascript JavaScript] à l'avenir) quitte à utiliser une version simplifiée de ce langage pour démarrer. | ||
+ | Un autre point clé est ''Avec quelle logiciel/plateforme travailler ?'' car au delà du langage c'est bien évidemment l'outil qui permet de l'utiliser qui est le levier: la plateforme [IOI] est un bel exemple, tandis que Python vient avec son utilitaire de développement et [http://javascool.gforge.inria.fr Java'sCool] permet de programmer en Java. | ||
− | http:// | + | Que faut il éviter alors au niveau de l'ISN ? |
+ | # Les langages non impératifs, par exemple les [http://fr.wikipedia.org/wiki/Programmation_fonctionnelle langages fonctionnels], qui sont des abstractions vraiment intéressantes mais scientifiquement différentes des fondements algorithmiques qui sont à faire partager | ||
+ | # D'autres outils logiciels (calculateurs symboliques, calculettes programmables, environnement graphiques de programmation, ..) qui certes permettent de programmer et d'apprendre à programmer mais | ||
+ | #* comportent des bizarreries (ex: la sémantique de l'affectation n'est pas la même dans un calculateur symbolique qui a d'autres fins) | ||
+ | #* ne permettent pas de relier la notion de ''langage'' à celle de ''programmation'' (ex: dans le cas d'outil de programmation graphique) | ||
+ | # Les langages "exotiques" et les "bricolages géniaux" : on va trouver sur le web beaucoup de plateformes artisanales qui n'ont que de petites communautés d'utilisateurs et risquent de ne pas survivre, donc de faire du temps à commencer à l'exploiter. |
Version du 19 novembre 2011 à 15:11
A propos du choix du langage de programmation
«Quel[s] langage[s] les profs vont utiliser pour les TP de programmation ?» voilà peut-être la 1ère et la plus fréquente question que nous nous posons y compris sur notre forum et c'est un sujet qui peut alimenter de longs débats.
Paradoxalement, il y une réponse assez simple à cette question: «Nous devons rester agnostique et choisir un langage standard et ouvert, bien supporté et avec une base impérative»:
- Choisir un langage à une base impérative, c'est à dire avec les ingrédients usuels des algorithmes (séquence d'instruction, instruction conditionnelle, affectation de variables et boucles).
- Choisir un langage standard, ouvert et bien supporté (ex: Java ou Python probablement JavaScript à l'avenir) quitte à utiliser une version simplifiée de ce langage pour démarrer.
Un autre point clé est Avec quelle logiciel/plateforme travailler ? car au delà du langage c'est bien évidemment l'outil qui permet de l'utiliser qui est le levier: la plateforme [IOI] est un bel exemple, tandis que Python vient avec son utilitaire de développement et Java'sCool permet de programmer en Java.
Que faut il éviter alors au niveau de l'ISN ?
- Les langages non impératifs, par exemple les langages fonctionnels, qui sont des abstractions vraiment intéressantes mais scientifiquement différentes des fondements algorithmiques qui sont à faire partager
- D'autres outils logiciels (calculateurs symboliques, calculettes programmables, environnement graphiques de programmation, ..) qui certes permettent de programmer et d'apprendre à programmer mais
- comportent des bizarreries (ex: la sémantique de l'affectation n'est pas la même dans un calculateur symbolique qui a d'autres fins)
- ne permettent pas de relier la notion de langage à celle de programmation (ex: dans le cas d'outil de programmation graphique)
- Les langages "exotiques" et les "bricolages géniaux" : on va trouver sur le web beaucoup de plateformes artisanales qui n'ont que de petites communautés d'utilisateurs et risquent de ne pas survivre, donc de faire du temps à commencer à l'exploiter.