Les applications en Python pourraient bientôt fonctionner sur Android

Grâce en partie à l’essor du machine learning (apprentissage automatique), le langage de programmation Python est extrêmement populaire auprès des développeurs. Mais jusqu’à présent, les appareils mobiles n’ont pas eu droit aux applications développées en Python.

Le créateur de Python Guido van Rossum et certains développeurs Python espèrent toutefois que les applications écrites en Python pourront un jour fonctionner en natif sur les appareils iOS et Android. Cela pourrait se produire grâce à BeeWare, un projet open-source dirigé par Russell Keith-Magee, qui porte CPython sur Android, afin que les applications écrites en Python puissent fonctionner en natif sur Android.

En février, Keith-Magee a annoncé la première étape importante du projet Android. Il a fait le point lors du sommet 2020 sur le langage Python, qui s’est tenu en ligne cette année en raison de la pandémie de Coronavirus.

publicité

Le portage Android de CPython devra supporter la plupart des appareils sous Android fonctionnant en version 4.4 ou ultérieure

BeeWare a pour objectif de permettre aux développeurs d’écrire des applications en Python et de faire fonctionner ce code partout en utilisant des widgets d’interface utilisateur (IU). Il veut aider les développeurs à écrire des applications en Python en utilisant la même base de code fonctionnant sur iOS, Android, Windows, macOS, Linux, les navigateurs et tvOS.

CPython est l’implémentation de référence du langage open-source Python utilisé par d’autres implémentations telles que Jython, qui est écrit en Java et qui repose sur une machine virtuelle Java (JVM). Mais Python n’est pas taillé pour les mobiles comme il l’est pour les ordinateurs.

Pour remédier à cette lacune, la Python Software Foundation a accordé l’année dernière une subvention de 50 000 dollars au projet BeeWare afin de mettre son niveau de support Android au même niveau que ses outils pour iOS. Le portage Android de CPython devra supporter la plupart des appareils sous Android fonctionnant en version 4.4 ou ultérieure.

Un obstacle majeur néanmoins est la taille des applications Android écrites en Python

“La stratégie Android de BeeWare est de compiler du bytecode Python en Java, mais les appareils Android sont maintenant suffisement rapides, et le noyau Android assez permissif, pour faire tourner CPython lui-même”, a déclaré A Jesse Jiryu Davis, ingénieur chez MongoDB et contributeur Python.

Davis a déclaré qu’un obstacle majeur néanmoins est la taille des applications Android écrites en Python car elles nécessitent leur propre copie du runtime Python, ce qui signifie que Python doit être réduit pour les mobiles.

Certains ont suggéré de résoudre ce problème en créant une version “noyau” dépouillée de Python – une idée qui, selon Keith-Magee, pourrait résoudre de nombreux problèmes de mobilité en Python, en combinaison avec un installateur de paquets (pip) qui permet aux développeurs d’installer des paquets pour une plate-forme cible plutôt que pour le seul système sur lequel ils fonctionnent.

“La gestion des certificats TLS sur Android est particulièrement excentrique”

“Pour les programmeurs Python ordinaires, l’environnement mobile est une planète étrangère”, explique M. Davis. “Il n’y a pas de sous-processus ; les sockets, les tuyaux et les signaux se comportent tous différemment que sur un Unix normal ; et de nombreux appels système sont interdits”.

“La gestion des certificats TLS sur Android est particulièrement excentrique. Pour que la suite de tests CPython passe sur le mobile, elle doit sauter les nombreux tests qui utilisent le fork ou le spawn, ou qui utilisent des signaux, ou toute autre API différente ou absente”.

Keith-Magee estime qu’un support Android plus mature signifie que les contributeurs de CPython “peuvent avoir une conversation sérieuse sur la façon dont nous pouvons fusionner ces changements dans CPython lui-même”. La question est donc maintenant de savoir si les développeurs de CPython seront intéressés par l’intégration de Python mobile dans le noyau.

La fourniture d’un support mobile nécessitera plus d’argent et de personnel que de nombreux autres projets Python

La bonne nouvelle, c’est que M. van Rossum a donné son aval à la mise en place d’un support mobile à long terme, selon M. Davis. Mais il y a encore de gros obstacles. Selon Ned Deily, un développeur Python de la PSF, la fourniture d’un support mobile nécessitera plus d’argent et de personnel que de nombreux autres projets Python.

En outre, M. Davis note que Python a un problème de poules et d’œufs sur les smartphones : “Il n’y a pas de financement d’entreprise pour Python sur mobile parce que Python ne supporte pas le mobile, donc il n’y a personne qui compte sur Python sur mobile et qui est motivé pour le financer”.

Leave a Reply

Discover more from Ultimatepocket

Subscribe now to keep reading and get access to the full archive.

Continue reading