IronPython : Un langage utilisé par les éditeurs de logiciel

 

Ironpython est une implémentation pour la plateforme .Net du langage python issu de la communauté Opensource. On nous demande fréquemment quel usage peut-être fait concrètement de ce langage quand on dispose déjà de C#, Vb.net ou C++.

C’est pourquoi il nous a semble intéressant d’interroger William Rang, Directeur R&D de la société ip-label.newtest, qui après avoir utilisé Python  pendant des années utilise désormais Ironpython dans ses applications.

M. Rang, pouvez vous nous présenter votre société et vos produits ?

Notre savoir faire porte sur la mesure de la qualité perçue par les utilisateurs des services numériques. Nous avons développé une gamme très large de solutions de mesure de cette qualité avec un principe de base : toujours effectuer nos mesures en nous plaçant du point de vue de l’utilisateur (QoE). Nous offrons également à nos clients un accompagnement personnalisé dans leur démarche d’amélioration de la qualité.

Pour donner quelques exemples : nous pouvons reproduire une transaction sur un site Web via un browser internet et mesurer la performance, la disponibilité et l’intégrité des opérations. Cela peut concerner également la mesure de la qualité de la téléphonie, ou de la télévision. En fait tout type d’application numérique peut-être concerné par ces mesures.

CaptureApplication

Mesures restituées par le serveur

Quelles technologies et quelles plateformes utilisez-vous ? :

Pour la partie serveur nous avons une gamme de produits qui utilise PHP/Oracle et une autre Windows/SQL Server. Nous proposons nos solutions en mode On-premise ou On-Demand.

Nous installons des robots de mesure sur des postes clients qui sont utilisés pour la simulation des opérations. Dans la plupart des cas ce sont des postes clients Windows mais nous avons également quelques demandes pour Linux. Les langages que nous utilisons pour la partie client sont C,C++, C#, Python et IronPython.

Pourquoi et comment avez vous été amenés à utiliser Ironpython ?

Pour définir les scénarios d’usage que nos clients nous demandent de mesurer nous avions besoin d’un langage de script, c’était bien avant l’apparition de la plateforme .Net, nous avons comparé Perl, Javascript, VBscript et Python et notre choix s’est porté sur Python.

Ce langage nous permet de développer des scripts évolués afin de reproduire des transactions complexes en pilotant par exemple le navigateur, en simulant la souris, le clavier …

En fait nous ne développons pas directement « à la main » les scripts, mais nous avons des logiciels de génération automatique qui créent des programmes à partir d’actions effectuées par un utilisateur (pensez à ce que fait Office avec le générateur de macros et vba). Nous pouvons compléter les scripts générés mais l’essentiel de la génération est automatique.

Ensuite en 2005 nous avons choisi de faire évoluer nos robots de mesure vers les technologies .Net. Le choix de .Net a été dicté par des gains de productivité, de simplicité et de puissance. Du coup naturellement nous nous sommes tournés vers IronPython pour la partie scripting. Ceci nous permettait d’exploiter pleinement l’environnement .Net. D’autre part comme nous utilisons des technologies tierces en .Net le choix d’Ironpython vs Python s’est imposé à nous.

CaptureIDE

IDE développé par ip-label-newtest pourles scripts Ironpython

Comment traitez-vous les demandes venant de client ayant des besoins sous Linux ?

Pour l’instant les demandes venant de clients ayant des postes utilisateur sous Linux sont assez restreintes nous leur proposons donc la version développée en C/C++, Python. Si les demandes venaient à augmenter nous envisagerions alors l’utilisation de Mono.

Avez-vous constaté des limitations dans Ironpython ? Quelles améliorations souhaiteriez-vous que Microsoft apporte ?

Le lancement du runtime Ironpython lors de l’exécution d’un script est sensiblement plus long que son équivalent Python. Cela peut nous gêner car du coup le nombre de scénario exécutés dans une période de temps donné est réduit. Nous espérons que ce point sera amélioré dans les futures versions.

Merci William pour ce témoignage.

Pour en savoir plus sur ip-label.newtest: www.ip-label.net

Pour en savoir plus sur Ironpython:

https://blogs.msdn.com/ironpython

https://ironpython.codeplex.com/

xaviercXavier COURCHINOUX
Partner Technology Advisor
DPE – Microsoft France 
https://blogs.msdn.com/editeurs_de_logiciels
me contacter