Python: L'éducation nationale Française sélectionne Python comme langage de programmation officiel

Etant très grand supporter du langage Python depuis de nombreuses années, je me réjouis de voir Python acquérir ses lettres de noblesses dans le monde de l'enseignement francophone.

En effet, nous avons appris durant le MakerFaire de Paris que l'éducation nationale Française sélectionne Python comme langage de programmation officiel.
Information à nuancer car cela concerne surtout les années avant le BAC (
6ième secondaire chez nous) et pas forcément toutes les filières technologiques.

Si c'est une bonne nouvelle pour les "Adorateurs du Python" et les amoureux de la Framboise (le nano ordinateur Raspberry-Pi), cela fait quand même sérieusement grincer des dents du côté des supporters des langages C, Java et consorts.
Certaines remarques sont justifiées (comme apprendre plusieurs langages, surtout le C), d'autres résultent d'une méconnaissance générale ou manque d'ouverture.
Je partage ci-dessous un avis et quelques réflexions sur le sujet.
Il ne s'agit nullement de rechercher la controverse ou la polémique.

Loin de moi l'idée de détrôner C, C++, Java, C#. ils détiennent les 3 premières places des langages de programmation les plus utilisés, c'est aussi pour de bonnes raisons.
Une souplesse utilisée comme critique

La souplesse de Python est souvent utilisée comme critique à son encontre... comme si le fait d'être plus permissif sur la déclaration et le typage formerait inévitablement de mauvais programmeurs ou de mauvais logiciels.
Humm! Donc en suivant cette logique, Google et Amazon (pour ne citer qu'eux) seraient donc blindés de logiciels vérolés. Mouais... je vais être dure a convaincre!

Je pencherais plutôt pour une autre règle universelle:
Les mauvais programmeurs par nature restent des mauvais programmeurs quelque-soit le langage.
Les bons programmeurs feront ce qu'il faut pour éviter les problèmes.
Python n'empêche pas de renforcer le typage et/ou contrôles.

Il faut faire confiance au programmeur!
Telle est la philosophie de Python.
Ce n'est pas parce que l'on a inventé la fusion nucléaire qu'il faut se balancer des bombes les uns sur les autres. Et même si certains l'on fait, ce n'est pas une raison pour persister!
Pareil pour Python: ce n'est pas parce que Python est permissif qu'il faut en user et en abuser! Le travail en groupe impose une rigueur de-facto, DJango est le meilleur exemple que je puisse citer pour étayer ce point de vue.

Python à ses bons et mauvais côtés, comme n'importe quel langage.
Au formalisme de Java et C, j'aimerais rappeler que Java à déjà permis de réaliser de magnifique des usines à gaz et C des manipulations de mémoire plus que douteuses (cfr W!nd0w$ lui même).
Dans tous les cas, il faut savoir (ou vouloir savoir) ce que l'on fait... Python ne fait pas exception à cette règle de bons sens.

La rigueur du C, Java ou C#
Oserais-je rappeler aux détracteurs de Python que celui est écrit en C... et qu'il existe une documentation détaillant l'optimisation de code par l'intermédiaire d'un module compilé en C que l'on interface ensuite avec Python.

Le bon développeur sera rigoureux et optimisera son code. Celui qui aura besoin d'aller plus loin passera par le C. Il n'y a aucune raison d'imaginer qu'il le fera comme un cochon parce qu'il à découvert Python avant le C.

Python est trop flexible!
Peut être, cela permet néanmoins d'expérimenter rapidement. Là encore un bon élément s'éveillera seul, ou avec de l'aide, à la réalisation d'un travail bien fait dans les règles de l'art.

Il faut laisser à Python son principal avantage, le prototypage rapide... même si le prototype est destiné à être réécrit dans un autre langage pour des raisons politiques.  
 
Rare son ceux qui lisent le manuelle d'utilisation de leur voiture avant de prendre le volant... d'autres n'ont pas encore le permis... dans le genre "expérimentation rapide", ce n'est pas pire que Python.
C'est discutable? oui, peut-être mais il ne finissent pas tous dans le premier arbre qu'ils croisent.

Nul ne peut ignorer la loi! Pourtant...
Python est ce qui ressemble le plus à notre société.
Je m'explique: "tout le monde est censé connaître la loi". Pourtant personne ne la connais vraiment et beaucoup d'entre nous se frottent régulièrement aux limites de son savoir dans ce domaine.
Et bien que fait-on? on apprend, ou on s'entoure de personnes compétentes, on évite de reproduire les erreurs... bref, on s'améliore (ou a l'opposé on devient délinquant). Les enfants ne naissent pas en connaissant la loi, ils sont éduqués, éveillés, apprenne la loi et la vie en société, l'expérimente et s'adaptent.

En Python c'est pareil, il y a le cadre de base et les recommandations. Comme les lois... les développeurs s'y conforment ou pas. On s'éveillent ou pas, reproduisent des erreurs ou pas. S'améliorent ou pas.

En fin de compte, le problème, ce n'est pas le langage, qu'il soit Python ou C ou Java.

A votre avis, quelle approche est la meilleure?
  • contraindre avec de nombreuses règles (et limitation)
  • aiguiller avec bienveillance.
Bonne journée,
Dominique