lundi 2 novembre 2009

Pourquoi les entreprises doivent développer en Python


D
ans le paysage des différentes technologies de développement et de programmation, et tout en restant dans le domaine de l'applicatif c'est à dire sans inclure le développement web, 3 technologies sont actuellement sur le devant de la scène et en mesure de trouver une place de choix au sein d'une entreprise. Il s'agit de Java, Python et C#.
Il existe une certaine hiérarchie des langages de programmation. On parle usuellement de langages de bas niveau et de langage de haut niveau. Plus un langage et de bas niveau, plus il est proche des problématiques matérielles. Les langages de bas niveau requièrent des compétences vastes et pointues en informatique. Aujourd'hui ceux-ci ne sont utilisés en général que dans le souci d'optimiser l'utilisation de certaines ressources matérielles. C'est le cas pour les langages C et C++. Il faut noter que C++ est un langage de plus haut niveau que C, cependant pour rester dans un esprit de synthèse considérons le comme un langage de bas niveau comparé à Java, Python et C#. Ces 3 derniers étant quand à eux des langages de haut niveau, ils offrent un environnement de développement plus simple, plus rapide (comprendre en vitesse de développement), et sécurisé. Ce qui fait qu'en pratique la grande majorité des programmes sont développés dans ces 3 langages. Découvrant Python petit à petit depuis maintenant 3 ans, je me propose de présenter certains avantages que cumule ce langage, et qui en font à mon sens le meilleur choix actuel dans le cadre d'un projet de développement au sein d'une entreprise (l'industrie en ce qui me concerne).

Je vais commencer par éliminer C#, celui-ci ne disposant pas encore de la flexibilité de Java et de Python. Il est de plus très proche des technologies Microsoft, mais peut trouver certaines limites face à des technologies non Microsoft, ce qui constitue à l'heure actuelle le réel point faible de cette technologie. Ensuite Python est d'une certaine manière de plus haut niveau que Java et C#. A programme équivalent, le nombre de lignes de codes sera inférieur. On parle d'un rapport de 3 entre Java et Python (celui-ci passe à 5 avec C++). Et ceci n'est au détriment ni des possibilités de Python ni de ses performances. Il est probable au final, et sans y travailler, d'obtenir une application plus légère et plus rapide qu'elle ne l'aurait été avec Java. D'une part Java souffre de lourdeurs, notamment concernant l'occupation mémoire, et d'autre part Python se repose sur des fonctions écrites en C (1) et optimisées. Il est même reconnu pour certains cas qu'un programmateur C, a de bonnes chances par manque de temps ou d'expérience de faire un programme moins performant directement en C qu'il ne le ferait en Python.

Cependant la vraie force de Python se situe sur un autre plan. Python est un langage jeune inventé en 1994, qui n'était pas destiné au départ à devenir ce qu'il est actuellement. Mais certains développeurs experts d'autres langages y ont vu l'opportunité de supprimer certaines contraintes habituelles en programmation. Il en résulte une syntaxe particulièrement claire et épurée. Les scripts peuvent atteindre une lisibilité peu commune en respectant quelques règles simples. Ce qui devient très utile et appréciable pour gérer de gros projets, pour entretenir du code, ou encore pour permettre à plusieurs personnes de travailler sur les mêmes sources. Parallèlement Python est multi-paradigmes, c'est à dire qu'il tolère plusieurs concepts de programmation. Par exemple il n'impose pas l'orientation objet, ce qui offre une grande souplesse lors de l'apprentissage du langage. Tout ceci, conduit à faire de Python un des langages les plus simple à apprendre. Il peut parfaitement permettre d'initier des collégiens à la programmation, ce qui ne serait pas envisageable avec Java ou C#. Il y a 15 ans des technologies comme Visual Basic ou Delphi ont connut un essor remarquable, toujours visible aujourd'hui, parce qu'elles permettaient alors d'éviter l'apprentissage de Java ou de C++. Des néophytes pouvaient donc envisager de programmer en se dédouanant de la complexité inhérente aux langages plus évolués. Cette caractéristique est essentielle dans le cadre du développement en entreprise. En effet même s'il existe un projet de développement central réalisé par des spécialistes, il est indispensable que des personnes dont l'informatique n'est pas le métier, puissent créer ou adjoindre des fonctions qui répondent à leurs besoins. Sur ce point Python fait la différence, puisqu'il est à la fois très accessible et qu'il répond parfaitement à tout ce que l'on peut attendre d'un langage évolué.

Enfin à l'instar de Java, Python dispose d'une communauté de développeurs très active, et d'une très grande richesse de modules lui permettant de s'interfacer avec la quasi-totalité des technologies informatiques existantes. Python étant open-source, la grande majorité de ses modules le sont également. On notera par exemple la présence de Django, framework Python pour le développement web. De plus et pour finir ce langage ne manque pas de références puisqu'il est entre autres adopté par Google et la Nasa.

(1): En fait ceci n'est vrai que dans le cas de CPython l'implémentation principale de Python. Il existe d'autres implémentations: Jython permettant d'utiliser Python dans un environnement Java, et Iron-Python développé par Microsoft et permettant cette fois-ci d'exploiter le framework .NET initialement conçu pour C# avec le langage Python.

0 commentaires:

Enregistrer un commentaire