A propos du choix du langage de programmation : Différence entre versions

De Sciencinfolycee
Aller à : navigation, rechercher
m (A propos du choix du langage de programmation)
m (A propos du choix du langage de programmation)
Ligne 7 : Ligne 7 :
 
* 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.
 
* 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 quel/le logiciel/plateforme travailler ?''': Au delà du langage c'est bien évidemment le choix de l'outil qui permet de l'utiliser qui fait levier. Tandis que Python vient avec son utilitaire de développement et que [http://javascool.gforge.inria.fr Java'sCool] permet de programmer en Java, la plateforme [http://www.france-ioi.org/ IOI] est un bel exemple d'agnosticisme (mais nécessite de ''tout'' faire en ligne).
+
Un autre point clé est '''Avec quel-le logiciel/plateforme travailler ?''': Au delà du langage c'est bien évidemment le choix de l'outil qui permet de l'utiliser qui fait levier. Tandis que Python vient avec son utilitaire de développement et que [http://javascool.gforge.inria.fr Java'sCool] permet de programmer en Java, la plateforme [http://www.france-ioi.org/ IOI] est un bel exemple d'agnosticisme (mais nécessite de ''tout'' faire en ligne).
  
 
Que faut il éviter alors au niveau de l'ISN ?  
 
Que faut il éviter alors au niveau de l'ISN ?  

Version du 19 novembre 2011 à 15:21

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 avec 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 quel-le logiciel/plateforme travailler ?: Au delà du langage c'est bien évidemment le choix de l'outil qui permet de l'utiliser qui fait levier. Tandis que Python vient avec son utilitaire de développement et que Java'sCool permet de programmer en Java, la plateforme IOI est un bel exemple d'agnosticisme (mais nécessite de tout faire en ligne).

Que faut il éviter alors au niveau de l'ISN ?

  1. Les langages non impératifs, par exemple les langages fonctionnels, qui correspondent à des abstractions vraiment fondamentales, mais scientifiquement différentes des fondements algorithmiques qui sont à faire partager
  2. 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 puisqu'il 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, l asyntaxe est "gommée" donc ne peut être appréhendée)
  3. 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 risquent de faire perdre beaucoup de temps.