Jython est un interpreteur de Python tournant en java. Il peut donc utiliser
les classes existantes de Java, donc toute l'API (swing, awt etc). Mais
peut-il également être étendu à l'aide de librairies python "normales"
(Numerical, Gtk, etc) si celles-ci sont écrites en quelque chose d'autre que
python ou carrément compilées en languages machine ?
Je n'ai pas compris cette phrase : <<de librairies python "normales" si celles-ci sont écrites en quelque chose d'autre que python>>
MCI
bruno at modulix
Wamli wrote:
Jython est un interpreteur de Python tournant en java. (snip)
Mais peut-il également être étendu à l'aide de librairies python "normales" (Numerical, Gtk, etc) si celles-ci sont écrites en quelque chose d'autre que python ou carrément compilées en languages machine ?
A ton avis ?
Réponse dans la FAQ: http://www.jython.org/cgi-bin/faqw.py?req=show&fileúq04.001.htp
Ca a bien du me prendre 2 minutes à trouver !-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Wamli wrote:
Jython est un interpreteur de Python tournant en java.
(snip)
Mais
peut-il également être étendu à l'aide de librairies python "normales"
(Numerical, Gtk, etc) si celles-ci sont écrites en quelque chose d'autre que
python ou carrément compilées en languages machine ?
A ton avis ?
Réponse dans la FAQ:
http://www.jython.org/cgi-bin/faqw.py?req=show&fileúq04.001.htp
Ca a bien du me prendre 2 minutes à trouver !-)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
Jython est un interpreteur de Python tournant en java. (snip)
Mais peut-il également être étendu à l'aide de librairies python "normales" (Numerical, Gtk, etc) si celles-ci sont écrites en quelque chose d'autre que python ou carrément compilées en languages machine ?
A ton avis ?
Réponse dans la FAQ: http://www.jython.org/cgi-bin/faqw.py?req=show&fileúq04.001.htp
Ca a bien du me prendre 2 minutes à trouver !-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
bruno at modulix
Do Re Mi chel La Si Do wrote:
Bonsoir !
Je n'ai pas compris cette phrase : <<de librairies python "normales" si celles-ci sont écrites en quelque chose d'autre que python>>
Oui, c'est assez déroutant comme formulation !-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Do Re Mi chel La Si Do wrote:
Bonsoir !
Je n'ai pas compris cette phrase : <<de librairies python "normales" si
celles-ci sont écrites en quelque chose d'autre que python>>
Oui, c'est assez déroutant comme formulation !-)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
Je n'ai pas compris cette phrase : <<de librairies python "normales" si celles-ci sont écrites en quelque chose d'autre que python>>
Oui, c'est assez déroutant comme formulation !-)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
remi_inconnu
Avec Jython, il ne me semble pas que cela soit possible, peut être qu'en utilisant http://jepp.sourceforge.net/ tu pourrais le faire, mais j'ignore ce que cela vaut...
Avec Jython, il ne me semble pas que cela soit possible, peut être
qu'en utilisant http://jepp.sourceforge.net/ tu pourrais le faire, mais
j'ignore ce que cela vaut...
Avec Jython, il ne me semble pas que cela soit possible, peut être qu'en utilisant http://jepp.sourceforge.net/ tu pourrais le faire, mais j'ignore ce que cela vaut...
remi_inconnu
Va voir aussi http://jpype.sourceforge.net si tu l'utilises dis nous ce que tu en penses. JPython ne m'a pas vraiment convaincu, je trouve cela trop lent, en plus le garbage collector est celui de java donc bien trop compliqué à utiliser.
Va voir aussi http://jpype.sourceforge.net si tu l'utilises dis nous ce
que tu en penses. JPython ne m'a pas vraiment convaincu, je trouve cela
trop lent, en plus le garbage collector est celui de java donc bien
trop compliqué à utiliser.
Va voir aussi http://jpype.sourceforge.net si tu l'utilises dis nous ce que tu en penses. JPython ne m'a pas vraiment convaincu, je trouve cela trop lent, en plus le garbage collector est celui de java donc bien trop compliqué à utiliser.
Amaury
Va voir aussi http://jpype.sourceforge.net si tu l'utilises dis nous ce que tu en penses. JPython ne m'a pas vraiment convaincu, je trouve cela trop lent, en plus le garbage collector est celui de java donc bien trop compliqué à utiliser.
Qu'entends-tu par "compliqué à utiliser" ?
Il y a bien sûr quelques fonctions qui permettent de contrôler le gc (en java ou en CPython, d'ailleurs), mais je n'ai jamais eu le besoin de les utiliser...
-- Amaury
Va voir aussi http://jpype.sourceforge.net si tu l'utilises dis nous ce
que tu en penses. JPython ne m'a pas vraiment convaincu, je trouve cela
trop lent, en plus le garbage collector est celui de java donc bien
trop compliqué à utiliser.
Qu'entends-tu par "compliqué à utiliser" ?
Il y a bien sûr quelques fonctions qui permettent de contrôler le gc (en
java ou en CPython, d'ailleurs), mais je n'ai jamais eu le besoin de les
utiliser...
Va voir aussi http://jpype.sourceforge.net si tu l'utilises dis nous ce que tu en penses. JPython ne m'a pas vraiment convaincu, je trouve cela trop lent, en plus le garbage collector est celui de java donc bien trop compliqué à utiliser.
Qu'entends-tu par "compliqué à utiliser" ?
Il y a bien sûr quelques fonctions qui permettent de contrôler le gc (en java ou en CPython, d'ailleurs), mais je n'ai jamais eu le besoin de les utiliser...
-- Amaury
Wamli
Merci pour vos remarques et réponses. Mais ce n'est pas encore bien clair. Je clarifie ma question et ma situation.
J'ai repris un projet qui n'a pas été touché depuis trois ans, développé en Python, et je dois y incorporer de nouveaux modules. Ce projet se base sur des extensions python comme "gnome.ui", "Numeric" ou encore "Gtk".
Le projet est en fait un framework de test pour des algorithmes d'optimisation. L'avantage est qu'il permet de réaliser rapidement une implémentation d'un algorithme, python se passant de beaucoup de formalisme (typage dynamique etc). Mais je crois que pour le framework lui-même, on atteint les limites de python, car cela devient difficile de s'y retrouver entre les types, les classes et les fichiers.
Je pense donc porter, réécrire ou carrément refaire le framework en Java (voire en C# sur .NET ou MONO), mais en gardant la possibilité d'étendre les possibilité du framework à l'aide d'un language plus "simple" --> python.
Bien sur le portage serait la solution la plus simple, et pour commencer je souhaitais voir s'il était possible de lancer l'application en utilisant JPython. Ensuite, commencer doucement en transformant quelques objets en code "natif" java.
Mais il croche assez vite car il ne trouve pas la librairie "gnome.ui" par exemple. D'où ma question... Je crois que j'ai une partie de la réponse, trouvée sur un des liens que vous m'avez envoyés, à savoir qu'il faudrait écrire des interface JNI pour pouvoir profiter des extensions à python. Mais je me demandais si justement l'écriture de ces interfaces n'avait pas pu être automatisée par quelque groupe de développement ambitieux...
Voila, merci pour vos futures réponses
"Wamli" wrote in message news:
Jython est un interpreteur de Python tournant en java. Il peut donc utiliser les classes existantes de Java, donc toute l'API (swing, awt etc). Mais peut-il également être étendu à l'aide de librairies python "normales" (Numerical, Gtk, etc) si celles-ci sont écrites en quelque chose d'autre que python ou carrément compilées en languages machine ?
Merci pour vos remarques et réponses. Mais ce n'est pas encore bien clair.
Je clarifie ma question et ma situation.
J'ai repris un projet qui n'a pas été touché depuis trois ans, développé en
Python, et je dois y incorporer de nouveaux modules. Ce projet se base sur
des extensions python comme "gnome.ui", "Numeric" ou encore "Gtk".
Le projet est en fait un framework de test pour des algorithmes
d'optimisation. L'avantage est qu'il permet de réaliser rapidement une
implémentation d'un algorithme, python se passant de beaucoup de formalisme
(typage dynamique etc). Mais je crois que pour le framework lui-même, on
atteint les limites de python, car cela devient difficile de s'y retrouver
entre les types, les classes et les fichiers.
Je pense donc porter, réécrire ou carrément refaire le framework en Java
(voire en C# sur .NET ou MONO), mais en gardant la possibilité d'étendre les
possibilité du framework à l'aide d'un language plus "simple" --> python.
Bien sur le portage serait la solution la plus simple, et pour commencer je
souhaitais voir s'il était possible de lancer l'application en utilisant
JPython. Ensuite, commencer doucement en transformant quelques objets en
code "natif" java.
Mais il croche assez vite car il ne trouve pas la librairie "gnome.ui" par
exemple. D'où ma question... Je crois que j'ai une partie de la réponse,
trouvée sur un des liens que vous m'avez envoyés, à savoir qu'il faudrait
écrire des interface JNI pour pouvoir profiter des extensions à python. Mais
je me demandais si justement l'écriture de ces interfaces n'avait pas pu
être automatisée par quelque groupe de développement ambitieux...
Voila, merci pour vos futures réponses
"Wamli" <wamli@web.de> wrote in message news:4385dd98@epflnews.epfl.ch...
Jython est un interpreteur de Python tournant en java. Il peut donc
utiliser les classes existantes de Java, donc toute l'API (swing, awt
etc). Mais peut-il également être étendu à l'aide de librairies python
"normales" (Numerical, Gtk, etc) si celles-ci sont écrites en quelque
chose d'autre que python ou carrément compilées en languages machine ?
Merci pour vos remarques et réponses. Mais ce n'est pas encore bien clair. Je clarifie ma question et ma situation.
J'ai repris un projet qui n'a pas été touché depuis trois ans, développé en Python, et je dois y incorporer de nouveaux modules. Ce projet se base sur des extensions python comme "gnome.ui", "Numeric" ou encore "Gtk".
Le projet est en fait un framework de test pour des algorithmes d'optimisation. L'avantage est qu'il permet de réaliser rapidement une implémentation d'un algorithme, python se passant de beaucoup de formalisme (typage dynamique etc). Mais je crois que pour le framework lui-même, on atteint les limites de python, car cela devient difficile de s'y retrouver entre les types, les classes et les fichiers.
Je pense donc porter, réécrire ou carrément refaire le framework en Java (voire en C# sur .NET ou MONO), mais en gardant la possibilité d'étendre les possibilité du framework à l'aide d'un language plus "simple" --> python.
Bien sur le portage serait la solution la plus simple, et pour commencer je souhaitais voir s'il était possible de lancer l'application en utilisant JPython. Ensuite, commencer doucement en transformant quelques objets en code "natif" java.
Mais il croche assez vite car il ne trouve pas la librairie "gnome.ui" par exemple. D'où ma question... Je crois que j'ai une partie de la réponse, trouvée sur un des liens que vous m'avez envoyés, à savoir qu'il faudrait écrire des interface JNI pour pouvoir profiter des extensions à python. Mais je me demandais si justement l'écriture de ces interfaces n'avait pas pu être automatisée par quelque groupe de développement ambitieux...
Voila, merci pour vos futures réponses
"Wamli" wrote in message news:
Jython est un interpreteur de Python tournant en java. Il peut donc utiliser les classes existantes de Java, donc toute l'API (swing, awt etc). Mais peut-il également être étendu à l'aide de librairies python "normales" (Numerical, Gtk, etc) si celles-ci sont écrites en quelque chose d'autre que python ou carrément compilées en languages machine ?
bruno at modulix
Wamli wrote:
Merci pour vos remarques et réponses. Mais ce n'est pas encore bien clair. Je clarifie ma question et ma situation.
J'ai repris un projet qui n'a pas été touché depuis trois ans, développé en Python, et je dois y incorporer de nouveaux modules. Ce projet se base sur des extensions python comme "gnome.ui", "Numeric" ou encore "Gtk".
Donc impossible à intégrer *directement* en Java. Regarde éventuellement la FAQ de Jython.
Le projet est en fait un framework de test pour des algorithmes d'optimisation. L'avantage est qu'il permet de réaliser rapidement une implémentation d'un algorithme, python se passant de beaucoup de formalisme (typage dynamique etc). Mais je crois que pour le framework lui-même, on atteint les limites de python,
Là, franchement, je pense que tu te trompes. Regarde des projets comme Zope2, CPS, Zope3, PEAK, Twisted etc, et tu verra que question frameworks riches et complexes, pas de problème, Python sait faire
car cela devient difficile de s'y retrouver entre les types, les classes et les fichiers.
C'est un autre problème. Soit lié à la qualité du projet lui-même, soit lié à tes connaissances en Python - soit tout simplement inhérent à la complexité naturelle du problème.
Je pense donc porter, réécrire ou carrément refaire le framework en Java (voire en C# sur .NET ou MONO), mais en gardant la possibilité d'étendre les possibilité du framework à l'aide d'un language plus "simple" --> python.
C'est bien sûr difficile de juger sans connaitre effectivement le projet et le contexte, mais a priori, je pense que cette démarche est aussi inutile que risquée. Python n'est pas un VBScript, c'est un langage (largement) aussi puissant que Java. Son dynamisme et ses capacités en matière d'introspection et de métaprogrammation le rende AMHA bien plus adapté au développement de frameworks que des langages comme Java.
Suis-je dans le vrai si je suppose que tu connais mieux Java et C# que Python ? Le cas échéant, prend le temps d'apprendre Python, ce sera certainement bien plus rapide que de porter tout le projet - sans compter les wrappers JNI et tout le tintouin. Pour info, à fonctionnalités équivalente, une implémentation Python peut tenir en 4 à 10 fois moins de lignes qu'une implémentation en Java. Crois moi, passer de 10Kloc à 50 ou 100KLoc + des wrappers JNI, ça fait une différence sensible en termes de maintenabilité.
mes deux centimes... -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Wamli wrote:
Merci pour vos remarques et réponses. Mais ce n'est pas encore bien clair.
Je clarifie ma question et ma situation.
J'ai repris un projet qui n'a pas été touché depuis trois ans, développé en
Python, et je dois y incorporer de nouveaux modules. Ce projet se base sur
des extensions python comme "gnome.ui", "Numeric" ou encore "Gtk".
Donc impossible à intégrer *directement* en Java. Regarde éventuellement
la FAQ de Jython.
Le projet est en fait un framework de test pour des algorithmes
d'optimisation. L'avantage est qu'il permet de réaliser rapidement une
implémentation d'un algorithme, python se passant de beaucoup de formalisme
(typage dynamique etc). Mais je crois que pour le framework lui-même, on
atteint les limites de python,
Là, franchement, je pense que tu te trompes. Regarde des projets comme
Zope2, CPS, Zope3, PEAK, Twisted etc, et tu verra que question
frameworks riches et complexes, pas de problème, Python sait faire
car cela devient difficile de s'y retrouver
entre les types, les classes et les fichiers.
C'est un autre problème. Soit lié à la qualité du projet lui-même, soit
lié à tes connaissances en Python - soit tout simplement inhérent à la
complexité naturelle du problème.
Je pense donc porter, réécrire ou carrément refaire le framework en Java
(voire en C# sur .NET ou MONO), mais en gardant la possibilité d'étendre les
possibilité du framework à l'aide d'un language plus "simple" --> python.
C'est bien sûr difficile de juger sans connaitre effectivement le projet
et le contexte, mais a priori, je pense que cette démarche est aussi
inutile que risquée. Python n'est pas un VBScript, c'est un langage
(largement) aussi puissant que Java. Son dynamisme et ses capacités en
matière d'introspection et de métaprogrammation le rende AMHA bien plus
adapté au développement de frameworks que des langages comme Java.
Suis-je dans le vrai si je suppose que tu connais mieux Java et C# que
Python ? Le cas échéant, prend le temps d'apprendre Python, ce sera
certainement bien plus rapide que de porter tout le projet - sans
compter les wrappers JNI et tout le tintouin. Pour info, à
fonctionnalités équivalente, une implémentation Python peut tenir en 4 à
10 fois moins de lignes qu'une implémentation en Java. Crois moi, passer
de 10Kloc à 50 ou 100KLoc + des wrappers JNI, ça fait une différence
sensible en termes de maintenabilité.
mes deux centimes...
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
Merci pour vos remarques et réponses. Mais ce n'est pas encore bien clair. Je clarifie ma question et ma situation.
J'ai repris un projet qui n'a pas été touché depuis trois ans, développé en Python, et je dois y incorporer de nouveaux modules. Ce projet se base sur des extensions python comme "gnome.ui", "Numeric" ou encore "Gtk".
Donc impossible à intégrer *directement* en Java. Regarde éventuellement la FAQ de Jython.
Le projet est en fait un framework de test pour des algorithmes d'optimisation. L'avantage est qu'il permet de réaliser rapidement une implémentation d'un algorithme, python se passant de beaucoup de formalisme (typage dynamique etc). Mais je crois que pour le framework lui-même, on atteint les limites de python,
Là, franchement, je pense que tu te trompes. Regarde des projets comme Zope2, CPS, Zope3, PEAK, Twisted etc, et tu verra que question frameworks riches et complexes, pas de problème, Python sait faire
car cela devient difficile de s'y retrouver entre les types, les classes et les fichiers.
C'est un autre problème. Soit lié à la qualité du projet lui-même, soit lié à tes connaissances en Python - soit tout simplement inhérent à la complexité naturelle du problème.
Je pense donc porter, réécrire ou carrément refaire le framework en Java (voire en C# sur .NET ou MONO), mais en gardant la possibilité d'étendre les possibilité du framework à l'aide d'un language plus "simple" --> python.
C'est bien sûr difficile de juger sans connaitre effectivement le projet et le contexte, mais a priori, je pense que cette démarche est aussi inutile que risquée. Python n'est pas un VBScript, c'est un langage (largement) aussi puissant que Java. Son dynamisme et ses capacités en matière d'introspection et de métaprogrammation le rende AMHA bien plus adapté au développement de frameworks que des langages comme Java.
Suis-je dans le vrai si je suppose que tu connais mieux Java et C# que Python ? Le cas échéant, prend le temps d'apprendre Python, ce sera certainement bien plus rapide que de porter tout le projet - sans compter les wrappers JNI et tout le tintouin. Pour info, à fonctionnalités équivalente, une implémentation Python peut tenir en 4 à 10 fois moins de lignes qu'une implémentation en Java. Crois moi, passer de 10Kloc à 50 ou 100KLoc + des wrappers JNI, ça fait une différence sensible en termes de maintenabilité.
mes deux centimes... -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"