Bien, comme il est question depuis un moment de reprendre un vieux projet web, je me demande si je je vais pas en profiter pour mettre le nez dans une autre techno ou plus exactement un autre langage. Parmi tout ceux qui existent ma tendance est plutôt d’aller vers python (j’en parlais d’ailleurs dans ce billet). C’est un langage assez mature avec plein de qualités. Sans compter que de base je déteste les trucs « tendance » qui n’ont de qualité que d’être « hype » à un moment avant de disparaitre définitivement.
Bon ce n’est pas mon premier langage, j’ai commencé en PHP (plus pratiqué depuis longtemps) pour faire actuellement du Java EE. Le fait est que d’apprendre de nouvelles choses peut faire grandir même si cela peut rebuter clairement au premier abord. Et puis après tout il faut quand même se poser les bonnes questions. Faire du nouveau pour le nouveau ou se perfectionner dans ce qu’on ne maitrise finalement jamais complètement ?
Bref, pour le moment je ne sais pas trop encore quelle sera ma décision et le fait est que beaucoup beaucoup de paramètres rentrent en jeu. Pour l’instant je survole pas mal de documentation python.
La lecture du matin :
- http://www.siteduzero.com/informatique/tutoriels/apprenez-a-programmer-en-python
- http://stackoverflow.com/questions/156230/python-dependency-injection-framework
- http://wiki.openihs.org/PEP_8_fran%C3%A7ais#Introduction
- https://docs.djangoproject.com/en/1.5/intro/overview/
Premières impressions
Attention avis purement perso et surement influencé par le premier contact. Il est donc susceptible d’évoluer.
Donc, impressions assez mitigées je l’avoue. La façon de coder, de nommer et de mettre en place les mécanismes me semble assez particulière (cela dit c’est nouveau donc résistance au changement etc).
Par exemple, la façon de faire de l’objet me déplait un peu et me semble quelque peu en mode « a la bonne franquette ». Au hasard, pas d’interface et à la place un héritage multiple. Ne parlons pas du typage dynamique des conventions de nommage disparates qui ont tendance à me faire faire des grimaces.
De plus, le coté bloc d’instruction avec espaces pourquoi pas mais j’ai l’impression de faire du COBOL sur MVS avec ça (attention les x premières colonnes sont réservées @_+). Dans un langage, le fait que des caractères « non visibles » ou positionnels comme l’espace ou la tab aient du sens à la compilation me dérange toujours.
Par contre je reconnais que le langage est sans doute très puissant, très pratique et portable. A première vue j’en ferai un compagnon idéal pour faire des programmes systèmes bien plus qu’un script ou php-cli.
Coté web les choses ne sont pas franchement roses non plus. Niveau framework c’est bien simple il n’y a globalement que Django qui soit de taille et de maturité critique (il a l’air sympa aussi). Il y a quelques autres choses à gauche et à droite mais qui à première vue ne méritent pas trop le détour. Quand on vient du monde PHP ou Java où l’on est habitué à devoir faire le choix entre pas mal de solutions reconnues et matures ça donne un arrière gout bizarre dans la bouche. Du coup la question naturelle se pose est-ce que python est un bon choix pour le web ?
En conclusion mon avis n’est donc pas très tranché mais il est clair que je suis loin d’avoir des étoiles dans les yeux. A la limite j’aurais presque envie de faire du Java EE 7 pour ce fameux projet mais je reconnais volontier que tout ce que cela implique est tout de même très lourd pour un petit projet web. Mais bon, d’un coté me passer de pouvoir faire des choix de composants excitant comme CDI, Arquilian, Selenium, OpenEJB, JPA et j’en passe me donne une impression de sacrifice. Sacrifice pourquoi pas mais dans quel but ?