OVH Cloud OVH Cloud

Python Virtual Machine for browser...

33 réponses
Avatar
Sébastien Ramage
Bonjour =E0 tous,

Depuis pas mal de temps je me pose une question et je n'ai encore
jamais trouv=E9 la r=E9ponse:
Pourquoi n'existe-t-il pas une "Python Virtual Machine" pour les
navigateurs web
=E0 l'image de Java...

J'adore d=E9velopp=E9 en python, et pouvoir ouvrir un applet python
visible dans firefox (ou IE...) serait magnifique!

biensur il existe Jython mais il est lent et plus lourd que cpython et
je ne comprends pas pourquoi personne n'a eu l'id=E9e ni l'envi de
cr=E9er une telle extension

Qu'en pensez-vous?

Seb

10 réponses

1 2 3 4
Avatar
Do Re Mi chel La Si Do
Bonjour !


Il existe une possibilité, en utilisant l'active-scripting
d'Internet-Explorer. Il faut (il suffit ?) de l'activer dans Windows.

Yaka chercher "axscript" dans win32comext.

Mais il faut que Python et PyWin32 soit installés sur le poste client.

Cette solution est un peu la même (quoiqu'inversée) que le "ScriptControl",
qui permet de jouer des scripts en javascript, ou en VBscript, depuis un
script Python (avec appel de fonctions et passage de paramètres).


@-salutations

Michel Claveau
Avatar
Yermat
Sébastien Ramage wrote:
[...]
je ne comprends pas pourquoi personne n'a eu l'idée ni l'envi de
créer une telle extension


Cela a eu existé mais n'a pas eu de suite à ma connaissance...

http://mail.python.org/pipermail/python-list/2002-November/129127.html
http://mail.python.org/pipermail/python-list/2000-January/019744.html

En attendant vous pouvez faire des applets python pour Grail
http://grail.sourceforge.net/

Vous pouvez aussi faire des composants COM mais cela reste spécifique...


http://ask.slashdot.org/article.pl?sid/09/18/1650245&tid4&tid=4

De toute façon, quel est l'intérêt si cela se cantonne à un seul browser ?

--
Yermat

Avatar
Amaury
Bonjour à tous,

Depuis pas mal de temps je me pose une question et je n'ai encore
jamais trouvé la réponse:
Pourquoi n'existe-t-il pas une "Python Virtual Machine" pour les
navigateurs web
à l'image de Java...


Une raison est que la machine virtuelle Python ne propose aucun
mécanisme de sécurité.
Quand j'exécute une applet, je suis au moins sûr qu'elle ne peut pas
modifier mon disque dur, lire la base de registres et faire d'autres
virusseries.
Il y a bien eu un projet "restricted execution" (rexec je crois), mais
qui ne fonctionne pas, en partie parce qu'il est possible de le
contourner en utilisant l'introspection du langage Python.

Bref, même s'il y a un plug-in pour faire du javascript en python (c'est
donc du pythonscript ;-) ), gare à ne pas l'activer sur n'importe quel
site...

Amaury.

Avatar
Do Re Mi chel La Si Do
Bonsoir !


Effectivement, au niveau sécurité, c'est une méga-porte qui s'ouvrirait...
Bien que, en théorie, l'active-scripting ait ses propres mécanismes de
sécurité, c'est facile de les contourner.

Quand aux modules de "bac à sable", bastion et autres rexec, je n'ai jamais
regardé ; mais je retient l'information sur les limites. Merci.

@-salutations

Michel Claveau
Avatar
Sébastien Ramage
ok... c'est surtout une question de sécurité si je comprends bien...
mais il est possible d'écrire sur le disque avec java du moment que
l'applet est signé.
peut-être qu'un jour mon rêve sera réalité

merci à vous,
je suis quand même déçu je vais être obligé d'apprendre le java...
Avatar
Bruno Desthuilliers
Bonjour !


Il existe une possibilité, en utilisant l'active-scripting
d'Internet-Explorer. Il faut (il suffit ?) de l'activer dans Windows.


Ouais, super... Très portable... Et puis point de vue sécurité, c'est
'achement au point !-)

Avatar
Do Re Mi chel La Si Do
Bonsoir !


L'étendue de la portabilité est inversement proportionnelle à l'étendue des
fonctionnalités.
AMHA, c'est à chacun de choisir son point d'équilibre.

Conclusion : je ne critique pas les solutions pour Mac, BSD, ou QNX parce
qu'elles ne sont pas portables sous Windows. Alors, pourquoi critiquer
l'inverse ? Si ça convient, on regarde, sinon, on laisse.


@-salutations

Michel Claveau
Avatar
Laurent Pointal
Sébastien Ramage wrote:
ok... c'est surtout une question de sécurité si je comprends bien...
mais il est possible d'écrire sur le disque avec java du moment que
l'applet est signé.
peut-être qu'un jour mon rêve sera réalité

merci à vous,
je suis quand même déçu je vais être obligé d'apprendre le java...

Tu l'as déjà cité, Jython...


La sécurité légendaire de Java, la facilité de développement
mondialement reconnue de Python.

Pour de l'interface graphique, ça devrais le faire (pour du calcul
intensif ça risque d'être plus dur).

Quelqu'un a déjà fait des applet Java qui tournent avec Jython du côté
client (pb de config & Co ?).

Avatar
bruno modulix
Do Re Mi chel La Si Do wrote:
Bonsoir !



Bonjour...

L'étendue de la portabilité est inversement proportionnelle à l'étendue des
fonctionnalités.
AMHA, c'est à chacun de choisir son point d'équilibre.


En l'occurrence, la question de l'OP portait sur un équivalent Python
aux applets Java.

Un des intérêt des applets Java est leur portabilité - relative, certes,
mais de loin supérieure à une solution IE-only.

Un autre intérêt des applets Java est leur sécurité - relative là aussi,
mais également bien supérieure à celle des technos ActiveX, dont on a vu
à quel point elles faisaient le bonheur des petits malins de tous poils.

Enfin, un des objectifs des applications web est de s'affranchir autant
que possible de la plateforme client.

Je suis tout à fait d'accord avec toi sur le fait qu'il convient de
choisir son point d'équilibre entre fonctionnalité et portabilité, mais
AMHA, une solution spécifique à *un* navigateur tournant sur *une seule*
plateforme, ça restreint quand même pas mal l'intérêt du développement
web. Dans ce cas, autant faire du client lourd !-)

Conclusion : je ne critique pas les solutions pour Mac, BSD, ou QNX parce
qu'elles ne sont pas portables sous Windows. Alors, pourquoi critiquer
l'inverse ?


Ma critique ne portait pas sur l'existence ou l'utilisation de solutions
spécifiques à une plateforme en tant que telles, mais sur la
préconisation d'une solution
- spécifique à une plateforme (et plus, à un navigateur précis)
- connue pour ses failles de sécurité
dans un cadre où on recherche avant tout à s'affranchir de la plateforme
client et où la sécurité est généralement un réel problème.

Pour le reste, loin de critiquer, je suis au contraire très content de
ce que notre langage préféré s'intègre aussi bien à des plateformes très
différentes. Je n'ai pas encore eu besoin personnellement des
extensions Win32 (ou Carbon, ou autres...) de Python, mais ça me rassure
de savoir qu'elles existent...

Cordialement,
--
bruno desthuilliers
ruby -e "print ''.split('@').collect{|p|
p.split('.').collect{|w| w.reverse}.join('.')}.join('@')"

Avatar
Do Re Mi chel La Si Do
Bonsoir !


Juste pour te rassurer un peu plus, les problèmes de sécurité de windows, et
notamment des Active-X (en fait de la technologie COM), c'est de l'histoire
ancienne.

Et je suis convaincu que les systèmes ou applis qui occupent actuellement
les premières places dans les statistiques des alertes de sécurité (Apache,
PHP, Linux) vont aussi évoluer, et revenir au même niveau que Windows.

On appréciera alors encore plus la variété des librairies disponibles sous
Python.


@-salutations

Michel Claveau
1 2 3 4