• [^] # Re: Critique

    Posté par (site web personnel) . En réponse au journal Explorez les richesses du langage Python. Évalué à 3.

    « Concernant le temps de compilation, bien sûr c'est long.Mais est-ce que c'est plus long que d'écrire un milliard de tests ou de planter après 2h d'éxécution pour pallier à l'absence de la phase de compilation (genre se tromper sur l'objet que tu passe à une méthode, détecter à 98% par le compilateur, jolie execption à l'éxecution sinon :)). »

    Bien que je sois d'accord sur ce probleme, je ne pense pas que la compilation puisse se passer de tests. Donc que l'on soit en python ou dans un autre langage, il faut faire des tests. Or un bon jeu de tests te procurera une couverture suffisante du code pour eviter les "plantages au bout de 2 heures".

    « Autre point : tu t'appuye sur quels projets python de taille importante pour porter de tels jugements ? Quel intérêt de l'objet si tu n'utilise pas un minimum l'encapsulation ? »

    Le probleme n'est pas de ne pas utiliser l'encapsulation, tu peux faire du code python tres proprement et en respectant une bonne demarche d'encapsulation. Le probleme ici est que l'encapsulation est une convention et non une regle du langage, libre a toi de l'utiliser ou pas.

    En pratique, la convention python dit qu'il faut prefixer les privates par des _. A partir de ce moment la, quelqu'un qui utilise mon API peut se dire "ok, j'utilise un _, c'est mon choix, j'ai des raisons de le faire, mais je ne pleure pas si cela me pete a la geule" et un outil (genre pylint) peut faire des rapports de bonnes pratique et signaler les utilisations de variables "privée".

    Maintenant, je dirais que chaque langage a sa specificité. J'ai cru mourir le jour ou j'ai fais du python avec des gens qui n'en avait rien a faire et qui attendait seulement que le projet se termine en pondant du code. A ces moment la c'est une horreur et je suis bien d'accord qu'un langage plus "strict" comme java sera mettre des gardes fou utiles.

    En conclusion, si vous bossez avec des gens payés au lance-pierre et qui n'ont pas la volonté du travail bien fait (ni le temps d'ailleur), ne faite pas de Python, c'est des ennuis assuré. En Java par exemple, sauf grosse boulette, votre outil est certain de tourner pour la demo client ;)

    Par contre, si vous chercher a faire du travail rapidement, de facon sympa, maintenable avec une super bonne demarche agile, essayez Python. Cela demande un peu de rigueur, des gens motivés et inteligents, mais cela vaut le coup.