————–
Il existe un nombre important de langages de programmation, et ce pour différents types de plateformes. Mais parmi tous ces langages, il y en a 3 qui sortent véritablement du lot. Il s’agit de Perl, de Python, et de PHP.
Perl et Python sont beaucoup moins connus que PHP, hormis dans le monde Linux où ils sont très utilisés. Perl, Python et PHP ont pour points communs d’être tous trois véritablement multiplateformes, à tel point qu’ils existent tous les trois en versions Windows, Linux, Mac et iSeries (ex AS/400).
PHP est connu de tous, on ne le présente plus. Chacun sait qu’il est devenu depuis quelques années le langage de prédilection pour les développements de sites webs dynamiques. Dans ce contexte, il est généralement associé à la base de données MySQL, voire dans certains cas à la base PosGreSQL. Laissons PHP de côté, son succès est incontestable, et ce n’est pas par hasard, car c’est vraiment un excellent langage de développement (avec lequel le site que vous êtes en train de consulter est écrit !).
La suite de cet article sera consacrée exclusivement à Perl et Python qui, bien que moins connus, sont également d’excellents langages de développement.
Commençons par PERL
Perl est plus ancien que Python.
« Il a été créé en 1986 par Larry Wall à des fins personnelles pour remplir des tâches d’administration sur système UNIX. Il a été porté et adopté depuis sur les autres plates-formes. Apprécié pour sa concision, ses aspects contextuels et ses aptitudes à manipuler fichiers et chaînes de caractères et à accéder aux processus système et au réseau, il s’est vite imposé comme langage de scripts. Son évolution lui a conféré rapidement le niveau d’un véritable langage de développement d’applications. Il est aussi très utilisé pour coder les pages web dynamiques, peut-être moins depuis l’arrivée à maturité du PHP. »
J’ai repris la très courte présentation ci-dessus sur un site de l’académie de Créteil. Vous en apprendrez davantage sur Perl en poursuivant la lecture de cet article.
Le site de L’académie de Créteil propose un cours très complet sur ce langage, et si vous voulez vous initier à Perl, il me semble indispensable de commencer par là :
www.ac-creteil.fr/util/programmation/
Si après cette première initiation vous avez envie de poursuivre votre apprentissage de Perl, je ne peux que vous recommander très chaudement la lecture d’un numéro Hors Série de Linux Magazine, qui est entièrement consacré à Perl. Je croyais que ce numéro était épuisé, mais je viens de me rendre compte que ce n’est pas le cas et que l’on peut le commander directement sur le site de l’éditeur Ed-Diamond.
Les éditions O’Reilly proposent plusieurs ouvrages consacrés à Perl qui sont tous très recommandables. Je ne citerai que les 2 plus récents :
Introduction à Perl, de Randal L. Schwartz et Tom Phoenix, 4e édition, mars 2006 : à recommander aux développeurs débutants
De l’art de programmer en Perl, de Damian Conway, 1ère édition, mars 2006 : à recommander aux développeurs Perl de niveau moyen à avancé.
Si vous lancez une recherche sur un moteur de recherche, vous allez découvrir une profusion de sites. J’ai débroussaillé un peu pour vous, et vous propose quelques sites à consulter en priorité :
www.mongueurs.net : « Les mongueurs de Perl » est une association à but non lucratif dont le but est d’assurer la promotion de Perl en France
www.med.univ-rennes1.fr/~poulique/cours/perl/ : un cours de l’université de Rennes consultable en ligne
guide.ungi.net : quelques tutoriels sur Perl (et sur d’autres langages) consultables en ligne
un numéro spécial du magazine Compétence Micro consacré à Perl que vous pouvez commander par correspondance
www.perl.org : le site officiel (en anglais)
www.cpan.org : CPAN signifie « Comprehensive Perl Archive Network », autant dire que l’on dispose là d’une source d’informations inépuisable (en anglais)
Passons maintenant à Python
« Ce langage de scripts de haut niveau, complètement orienté-objet est sous licence GPL depuis la version 2.1. Il a été créé en 1990 par Guido Van Rossum à Amsterdam. Il a été porté depuis sur toutes les plate-formes. »
Là encore j’ai repompé le texte de présentation proposé sur le site de l’académie de Créteil. J’ajouterai que le gros atout de Python, c’est sa philosophie de développement complètement orientée objet. Bien plus facile à apprendre que Java, il constitue un excellent outil d’apprentissage de la programmation objet. Il se positionne d’ailleurs comme un concurrent direct du langage Java sur de nombreux projets, comme on le verra plus loin danc cet article. Pour donner une idée de la très grande portabilité de Python, il faut savoir qu’il « tourne » sur les plateformes Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm, et sur les téléphones portables Nokia. Python a également été adapté aux machines virtuelles Java et .NET.
L’un des meilleurs livres pour apprendre Python est à mon sens celui de Gérard Swinnen, qui s’intitule « Apprendre à programmer avec Python ». On peut le télécharger librement au format PDF en cliquant ici . Ce même livre est également disponible en version papier aux éditions O’Reilly.
Parmi les très bons ouvrages consacrés à Python que les éditions O’Reilly proposent à la vente, le dernier en date (paru en juillet 2006), s’intitule « Python par l’exemple ». Il est co-écrit par Alex et Anna Martelli, et David Ascher. Cette véritable bible sur Python n’est pas un ouvrage pour débuter mais pour approfondir sa connaissance du langage. Je le recommande vivement aux développeurs Python de niveau moyen à avancé.
Un autre excellent bouquin consacré à Python s’intitule « Dive Into Python », écrit par Mark Pilgrim. On en trouve une version traduite en français, et librement téléchargeable à l’URL suivante : diveintopython.adrahon.org
Parmi les nombreux sites consacrés à Python, je vous propose ceux-ci :
www.ac-creteil.fr/util/programmation/ : non content de fournir un cours sur Perl, le site de L’académie de Créteil propose également un cours sur Python, composé de 2 parties (« débuter en Python » et « Le graphisme en Python »)
www.afpy.org : le site de l’Association Francophone Python est également une excellente source d’informations pour les développeurs
www.python.org : le site officiel, incontournable (en anglais)
Python Cookbook : le livre de cuisine de Python, des centaines de contributions à portée de clic (en anglais). De nombreuses contributions ont été utilisées pour constituer l’excellent ouvrage « Python par l’exemple » dont j’ai parlé précédemment.
Langages interprétés et compilés
Perl est un langage interprété, mais vous pouvez compiler vos programmes pour en faciliter la diffusion et/ou l’installation, au moyen d’un compilateur téléchargeable sur le site suivant : www.indigostar.com. Aux dernières nouvelles, ce compilateur est dédié aux plateformes Windows et Linux, je n’ai pas connaissance d’un équivalent sur AS/400.
Python est également un langage interprété, mais tout comme avec Perl, on peut souhaiter compiler ses programmes pour des raisons de performance, ou pour faciliter leur installation sur des postes clients. Vous trouverez pas mal d’infos à ce sujet sur le site suivant : www.haypocalc.com/wiki/Python.
Programmation de GUI (interface graphique) en Perl et Python
Le développement de programmes Perl et Python en mode graphique implique de s’appuyer sur des bibliothèques de fonctions graphiques telles que TK ou QT.
TK était la première bibliothèque de fonctions graphiques disponible pour Perl, puis pour Python. Pour appréhender les fonctionnalités de cette bibliothèque de routines graphiques, vous pouvez consulter les sites suivants :
www.loria.fr/~pierron/GUI/ : programmation de GUI avec les langages Tcl, Perl et Python
lionel.romain.free.fr : un excellent tutorial sur TK
Data visualization using Perl/Tk : un très bon article (en anglais) sur l’utilisation conjointe de Perl et TK
personal.riverusers.com/~swilhelm/gtkperl-tutorial/ : le Gtk-Perl Tutorial. GTK signifie « Gimp ToolKit », soit la « boîte à outils » graphique du logiciel bien connu de retouche d’image Gimp.
Mais il existe également une bibliothèque graphique concurrente de TK, qui s’appelle QT. Développée tout d’abord spécifiquement pour Python, elle a aussi été adaptée à Perl. Les sites ci-dessous vous apporteront les informations nécessaires :
wikipython.flibuste.net/moin.py/PyQt : pas mal d’informations sur l’utilisation conjointe de Python et QT
dosimple.ch/articles/Python-PyQt/ : un tutorial sur l’utilisation conjointe de Python et QT (avec en prime le source d’un programme de carnet d’adresses)
perlqt.sourceforge.net : Perl n’est pas en reste, et peut lui aussi être utilisé avec QT comme l’explique ce site
Perl, Python, la plateforme iSeries et les bases de données
Il est possible de développer des programmes Perl interfacés avec une base de données DB2. Il est également possible d’exécuter des programmes Perl sur une plateforme iSeries (ex AS/400). Les articles ci-dessous (en anglais), trouvés sur un site d’IBM, peuvent vous éclairer sur ces différents sujets :
Redbook IBM pour l’installation de Perl sur iSeries
Qshell, Perl, and DB2 UDB for iSeries
Perl programming with DB2 Universal Database
Python n’est pas en reste puisqu’il peut lui aussi tourner sur AS/400. Il existe un site consacré exclusivement à la version iSeries de Python. On y trouve la version iSeries téléchargeable de Python, ainsi que de la documentation et des exemples de programmes Python pour iSeries : www.iseriespython.com
Tout comme Perl, Python peut s’interfacer avec DB2, comme l’atteste l’article suivant.
Perl et Python peuvent tous deux attaquer d’autres bases de données, telles que PosgreSQL :
www.trustonme.net : didacticiel sur l’utilisation de PostgreSQL associé à Perl
www.pygresql.org : module d’interfaçage entre PostGreSQL et Python
gazette-linux : article sur l’utilisation de curseurs en Python avec PostGreSQL
ou MySQL :
sourceforge.net/projects/mysql-python
genomenews.free.fr/tutorials/database.html
[www.linuxfocus.org/Francais/January2002/article226.shtml
>http://www.linuxfocus.org/Francais/January2002/article226.shtml]
Quelques projets de la communauté Python :
La communauté Python étant très active, de nombreux projets ont vu le jour, développés avec ce langage. Parmi les plus représentatifs, ou les plus connus, on trouve :
www.jython.org : plusieurs projets d’envergure ont été lancés par la communauté Python, visant à offrir un générateur de bytecode Java à partir de code source Python. L’un de ces projets est aujourd’hui opérationnel, il s’appelle Jython.
www.zope.org : Zope est un serveur d’application Web écrit en Python et en C. C’est littéralement un « environnement de publication d’objet » – c’est à dire qu’une application Zope est composée d’une arborescence d’objets de tous types accessibles par l’URL correspondante. Ces objets sont stockés dans une base de données objet (la ZODB), d’une façon pratiquement transparente.
www.erp5.org : ERP5 est un logiciel open source de type ERP (pour « Enterprise Resource Planning », soit en français « PGI » pour « Progiciel de Gestion Intégrée), intégralement développé en Python, destiné à l’informatisation de PME-PMI.
tinyerp.org : TinyERP est un logiciel concurrent de ERP5, développé également en Python.
Python-UNO Bridge : Python est devenu le langage de développement privilégié de la suite bureautique libre Open Office, pour le développement de plugins ou l’interfaçage d’applications tierces avec la suite bureautique.
Gimp et Python : il est possible d’enrichir le logiciel de retouche d’images Gimp de nouveaux plugins développés en Python ou en Perl. Ce site présente la manière d’utiliser Python avec Gimp.
En conclusion
En démarrant cette présentation, je n’avais aucune intention d’écrire un comparatif des avantages et inconvénients comparés de Perl et Python. J’avais juste envie de titiller votre curiosité, et de vous donner envie d’en savoir un peu plus. J’espère y être arrivé.
Pour moi, Perl et Python sont 2 langages qui offrent un champ d’expérimentation infini, à la fois par leurs possibilités intrinsèques, et par leur très grande portabilité. Ils vous permettent d’écrire à peu près tout ce que vous voulez, du pilotage de processus batchs, aux applications graphiques les plus sophistiquées attaquant des bases de données de type MySQL ou PosgreSQL, en passant par la manipulation de fichiers XML, etc… Alors, n’hésitez plus, faites vous plaisir…