Oui bien sûr. Le premier point concerne le fait que la mise en place ne demande que peu de manipulation (langage interprété directement par une boucle read-eval-print) mais surtout que le langage laisse une grande latitude sur son utilisation. Le typage (duck-typing) laisse suffisament de souplesse pour ne pas assomer un débutant comme le ferait probablement un peu du ocaml. Bien sûr, il n'est pas aussi résistant au intempérie d'un développeur grasseux, mais il suffit bien pour introduire des notions algorithmiques selon moi. Le langage laisse la création d'objet en suivant un type (la Classe) mais, une fois l'objet créé, on peut le modifier (ajout de champs notamment qui est un défaut pour un étudiant mais une force énorme pour un développeur prototypant une approche) sans toucher à la classe. Le peu de souplesse présente des problèmes d'un point de vue apprentissage d'un développeur. Trop de rigidité le tue, mais un manque de rigueur peut mener à toutes les horreurs auxquelles j'assiste malheureusement régulièrement. Cela forme de piètre développeur qui oublie que la rigueur est importante en programmation; tout autant que dans les autres sciences d'ailleurs. Ainsi le fait de ne pas avoir a explicité dans la signature des méthodes les envoie d'exception peut-être considéré comme agréable par un développeur de qualité, mais il mène souvent à des problèmes lors des cycles de maintenance, car on a oublié qu'il faut tenir compte de ça ou de ça. C'est toujours un problème d'équilibre.loïc67 a écrit :En ce qui concerne le langage Python,Peux-tu déveleopper ces deux points s'il te plait.Garulfo a écrit : — peu de contrainte, ce qui permet une approche par prototypage rapide
— une philosophie OO bien mieux intégré que Java
D'avance merci.
Pour l'approche OO, c'est plus complexe. Java n'est pas tout objet. Il existe des types de base. On peut les wrapper dans des objets, mais ce n'est pas automatique. Le typage dynamique est aussi plus proche de l'idéologie OO qui est née avec Smalltalk et Lisp. Le monde tout objet se ressent vite en Python. L'usage de « static » est beaucoup plus limité (et surtout n'est pas recommandé) contrairement à Java. Le « static » est contraire au paradigme OO, même si c'est bien pratique.
En tout cas... mon jugement sur Python est que celui-ci est un excellent langage... pour un développeur qui sait déjà comment se déroule un cycle de développement et qui sait développer. La liberté de Python est une plaie pour un néophyte (les maudites inversions de lettre créent des champs et ne sont pas repérées facilement !!!). Par contre, sa légèreté de syntaxe est un plus. Mais pas assez, selon moi, pour rattraper sa faiblesse dans des premiers cours.