Intégrer Python à Java

Généralement, combiner des langages de programmation système et de script n’est pas un nouveau concept étrange, c’est juste que cela ne se fait pas couramment. Il est possible pour les langages de programmation qui partagent une interface binaire d’application commune d’être combinés en une seule bibliothèque ou exécutable, et bien qu’il puisse être un peu difficile d’obtenir les signatures de deux langages l’un dans l’autre, des outils existent pour aider.

Un exemple de langages de programmation travaillant ensemble peut être trouvé dans le code polyglotte. Par exemple, la page 404 de Stack Overflow peut imprimer « 404 » en Python, Ruby, Perl, C et quelques autres.

Pour ce qui est de Python et Java spécifiquement, ces deux langages se complètent en fait. Vous pourriez par exemple utiliser l’un pour les sous-tâches typiques, tout en utilisant l’autre comme langage de script pour étendre la personnalisation de l’application que vous développez.

SAIS AUSSI : Python Package Index a maintenant des vérifications automatiques de logiciels malveillants à bord

Bien que JavaScript ne soit pas couramment utilisé en dehors des navigateurs Web, du moins en comparaison avec d’autres langages de script comme Perl, Tcl, Visual Basic et Python, tous ces langages sont couramment jumelés avec d’autres langages. Python va traditionnellement aux côtés de C et C++, tandis que Visual Basic est souvent le langage de script de choix pour C++ sur la plate-forme Windows, et Perl et Tcl sont tous deux typiquement utilisés sur C / Unix.

Python est utilisé un peu plus sur Windows, car il est parfaitement intégré à l’architecture Microsoft Scripting Host, ainsi qu’à COM. Il est également excellent sur Mac, avec une bonne sélection de boîtes à outils natives de MacOS.

Pour plus de ressources sur Python et les possibilités d’intégration de Java, c’est une bonne idée de vérifier les cours en ligne pour Python.

Pourquoi Java et Python?

Python est un langage de script orienté objet, ce qui en fait automatiquement une bonne paire pour Java. Mais lorsqu’il est combiné avec un interprète Python écrit entièrement en Java, comme Jython, vous pourriez faire des choses comme écrire des applets entiers en Python qui peuvent s’exécuter dans n’importe quel navigateur compatible JDK, avec une exécution du code presque aussi rapide que C / CPython.

Ce que fait un interprète Python-Java comme Jython, c’est traduire le code source Python directement en bytecode Java, ce qui lui donne une vitesse incroyable car ce n’est pas un interprète Python écrit en Java, qui serait beaucoup plus lent. Ce que font généralement les autres solutions de script Java (Java/TCL, Java/Perl, etc), c’est attacher la JVM à l’implémentation C de ces langages, ce qui non seulement introduit des problèmes de portabilité, mais n’est pas aussi transparent qu’on pourrait l’espérer.

    Efficient Transformers

    Christoph Henkelmann

    Apprentissage automatique 101++ avec Python

    Pieter Buteneers

Comment utiliser au mieux Java et JPython ensemble ?

Il existe plusieurs outils réputés qui implémentent Python en Java ou vice versa, afin que vous puissiez exécuter les commandes d’un langage dans l’autre. Voici une liste rapide de certains des outils d’intégration Python + Java les mieux notés :

  • Jython – Python implémenté en Java
  • JPype – Permet à Python d’exécuter des commandes java
  • Jepp – Python intégré à Java
  • JCC – un générateur de code C++. generator pour appeler Java depuis C++/Python
  • Javabridge – un paquetage pour exécuter et interagir avec la JVM depuis CPython
  • py4j – Permet à Python d’exécuter des commandes java.
  • voc – Fait partie de la suite BeeWare. Convertit le code Python en bytecode Java.
  • p2j – Convertit le code Python en Java. N’est plus développé.

Il existe plusieurs approches pour utiliser ces outils, avec leurs propres avantages et inconvénients. Ainsi, par exemple, vous pourriez construire un prototype de l’ensemble de l’application en Jython, et après plusieurs cycles de tests et de refonte, tout réécrire en Java. Cela vous permet de profiter de la flexibilité et de la vitesse de développement accrues des langages de script au début de votre projet, et votre produit final devrait être un peu plus étoffé que si vous aviez simplement commencé en Java.

Et si vous vous inquiétez des bibliothèques d’interface utilisateur, Jython peut s’accrocher aux mêmes UIL que Java de base, de sorte que la réécriture finale en Java devrait se dérouler sans problème.

Cependant, ce n’est pas aussi simple si vous essayez de construire un système plus vaste. Vous rencontrerez probablement l’inconvénient de différents composants et couches ayant des cycles de développement indépendants, comme des composants de haut niveau qui évoluent alors que les couches inférieures se figent. Bien sûr, vous pourriez réécrire les composants individuels en Java au fur et à mesure que vous vous approchez de la stabilité de la conception, ou simplement écrire certains de vos composants exclusivement en Java dès le début.

Voir aussi : Visualisation de données en Python avec Bokeh

Une autre option consiste à se concentrer sur la réécriture uniquement des composants où les performances sont critiques. Vous pourriez donc laisser les composants de haut niveau en Jython, ce qui signifie que seuls les composants de plus bas niveau devraient être réécrits – et dans certains cas, vous pourriez ne rien réécrire du tout.

Donc, si des parties de votre système publié sont écrites en Jython, les utilisateurs finaux peuvent écrire leurs propres personnalisations par le biais de scripts Jython – sans compter que les apps Jython peuvent être distribuées en tant que bytecode Java, ce qui signifie que vous n’avez pas vraiment à vous soucier que l’utilisateur final bousille des composants qui ne devraient pas être manipulés.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.