je sors agréablement surpris d'une semaine de formation sur .NET en
environnement M$.
J'y ai découvert la programmation en C++.NET (je développe en C/C++
traditionnel sur Mac au boulot et je bidouille sous GNU/Linux à la
maison).
Déjà voir que .NET faisait usage d'un compilo JIT m'a un peu fait revoir
mon appréciation négative sur .NET que je considérais (mal) comme Java
avec son code interprété.
Ensuite la surprise vient que le formateur (qui ne pratique pas Linux) a
su m'indiquer qu'il existait une implémentation pour Linux. Deux en fait
après avoir creusé le sujet : Mono (sponsorisé par Ximian/Novell) et
dotGNU.
Et l'agréable vient qu'après avoir bataillé avec des paquetages un peu
expérimentaux (tout n'est pas encore finalisé) j'ai pu voir que mes
programmes de test fonctionnaient directement sous Linux _et_ sous Win
avec le même exécutable (qui d'ailleurs est aussi un .exe sous Linux).
Tiens d'ailleurs pour ajouter à la surprise, le VB.NET est aussi en
cours de portage, ça fait un peu bizarre :)
Sinon on peut pour le moment partager du C# et de l'assembleur IL en
plus de VB (je pense que d'autres suivront mais je n'ai pas vu de c++)
et l'IDE que j'ai testé (MonoDevelop) bien qu'en v0.5 a l'air pas mal.
J'aime bien la complétion intelligente à la Visual Studio (qui àma est
la seule application vraiment valable chez M$ ;).
D'autres ont-il aussi testé .NET en cross-plateforme et qu'en
pensent-ils ?
Crosspost & Suivi prudent vers fr.comp.os.linux.debats
--
Sébastien Kirche
Il s'appuie sur Beagle C'est Beagle qui s'appuie sur DotLucene/Mono, et
non l'inverse.
oui oui...
c'est surtout l'occasion de parler de Beagle
projet pas vraiment original mais qui peut être très pratique
J'imagine bien l'intégration de Beagle dans la recherche d'informations dans /usr/share/doc dans les pages man dans les pages info
il faudrait alors intégrer ça à (pour Gnome) devhelp, yelp, et nautilus
il faudrait faciliter la recherche d'information locale (pour ceux qui n'ont pas encore le web)
Sébastien Kirche
Le 1 Jun 2005, a dit :
c'est surtout l'occasion de parler de Beagle
projet pas vraiment original mais qui peut être très pratique
J'imagine bien l'intégration de Beagle dans la recherche d'informations dans /usr/share/doc dans les pages man dans les pages info
il faudrait alors intégrer ça à (pour Gnome) devhelp, yelp, et nautilus
il faudrait faciliter la recherche d'information locale (pour ceux qui n'ont pas encore le web)
C'est la même chose que Remembrance Agent (http://www.remem.org/) pour EmacsOS, sauf que ça ne clignote pas et que ça ne fait pas «pouet» avec la souris ?
-- Sébastien Kirche
Le 1 Jun 2005, noone@nowhere.com a dit :
c'est surtout l'occasion de parler de Beagle
projet pas vraiment original mais qui peut être très pratique
J'imagine bien l'intégration de Beagle dans la recherche
d'informations dans /usr/share/doc dans les pages man dans les pages
info
il faudrait alors intégrer ça à (pour Gnome) devhelp, yelp, et
nautilus
il faudrait faciliter la recherche d'information locale (pour ceux qui
n'ont pas encore le web)
C'est la même chose que Remembrance Agent (http://www.remem.org/) pour
EmacsOS, sauf que ça ne clignote pas et que ça ne fait pas «pouet» avec
la souris ?
projet pas vraiment original mais qui peut être très pratique
J'imagine bien l'intégration de Beagle dans la recherche d'informations dans /usr/share/doc dans les pages man dans les pages info
il faudrait alors intégrer ça à (pour Gnome) devhelp, yelp, et nautilus
il faudrait faciliter la recherche d'information locale (pour ceux qui n'ont pas encore le web)
C'est la même chose que Remembrance Agent (http://www.remem.org/) pour EmacsOS, sauf que ça ne clignote pas et que ça ne fait pas «pouet» avec la souris ?
-- Sébastien Kirche
remi_inconnu
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
Les librairies fournis en standard avec python sont importantes, et si
tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit
pas être loin des langages Java et .Net. En terme de vitesse,
personnellement je n'ai jamais trouvé Java très rapide, j'ignore si
.Net est meilleur et le delta avec Python ne me semble pas si important.
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
remi_inconnu
En gros t'as rien compris à Python, le typage dynamique c'est justement ce qui le rend si agréable à utiliser et si puissant, et j'espère que JAMAIS il n'introduiront de typage statique dans Python.
En gros t'as rien compris à Python, le typage dynamique c'est
justement ce qui le rend si agréable à utiliser et si puissant, et
j'espère que JAMAIS il n'introduiront de typage statique dans Python.
En gros t'as rien compris à Python, le typage dynamique c'est justement ce qui le rend si agréable à utiliser et si puissant, et j'espère que JAMAIS il n'introduiront de typage statique dans Python.
remi_inconnu
VB6 n'a que partiellement un typage dynamique, rien à voir avec le merveilleux typage de Python ou tout est dynamique. VB6 n'est d'ailleurs pas non plus orienté objet, d'ailleurs est ce un vrai langage pro ?. L'apprentissage du typage dynamique n'est pas immédiat pour quiconque débute en Python ayant une expérience dans un langage fortement typé. Par contre quand on le maitrise, on a plus de limite quand à ce que l'on peut concevoir, et surtout les programmes sont bien plus légers. On se demande ensuite comment on a pu s'en passer jusque là.
VB6 n'a que partiellement un typage dynamique, rien à voir avec le
merveilleux typage de Python ou tout est dynamique.
VB6 n'est d'ailleurs pas non plus orienté objet, d'ailleurs est ce un
vrai langage pro ?.
L'apprentissage du typage dynamique n'est pas immédiat pour quiconque
débute en Python ayant une expérience dans un langage fortement
typé. Par contre quand on le maitrise, on a plus de limite quand à ce
que l'on peut concevoir, et surtout les programmes sont bien plus
légers.
On se demande ensuite comment on a pu s'en passer jusque là.
VB6 n'a que partiellement un typage dynamique, rien à voir avec le merveilleux typage de Python ou tout est dynamique. VB6 n'est d'ailleurs pas non plus orienté objet, d'ailleurs est ce un vrai langage pro ?. L'apprentissage du typage dynamique n'est pas immédiat pour quiconque débute en Python ayant une expérience dans un langage fortement typé. Par contre quand on le maitrise, on a plus de limite quand à ce que l'on peut concevoir, et surtout les programmes sont bien plus légers. On se demande ensuite comment on a pu s'en passer jusque là.
talon
wrote:
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme quicksort que Richard nous a monté l'autre jour, en python. D'une part je le fais tourner directement sous l'interprète python (sans psyco), d'autre part je le fais tourner en jython, aprés l'avoir compilé en .class utilisant jytonc. Donc il s'agit de java faisant tourner la machine virtuelle de python, faisant tourner le programme ... (le tout sur un P4, FreeBSD):
Morale de l'histoire, Java c'est quand même plus performant que ce que certains croient! Autre morale, la "précompilation" de tout le bytecode avec -server peut faire une grosse différence. Aussi notable le fait que la première exécution prend plus de temps avec -server.
Voici le programme qs.py
niobe% cat qs.py import time, random
def qsort(x): if len(x) > 1: lt = [i for i in x if i < x[0] ] eq = [i for i in x if i == x[0]] gt = [i for i in x if i > x[0]] return qsort(lt) + eq + qsort(gt) else: return x
if __name__ == "__main__": print "taillettemps" random.seed() for n in (10000, 20000, 40000, 80000, 160000, 320000,640000): l = [random.randrange(1000000) for i in range(n)] t = time.clock() qsort(l) t = time.clock() - t print n, 't', t
--
Michel TALON
remi_inconnu@yahoo.fr wrote:
Les librairies fournis en standard avec python sont importantes, et si
tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit
pas être loin des langages Java et .Net. En terme de vitesse,
personnellement je n'ai jamais trouvé Java très rapide, j'ignore si
.Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme
quicksort que Richard nous a monté l'autre jour, en python.
D'une part je le fais tourner directement sous l'interprète python (sans
psyco), d'autre part je le fais tourner en jython, aprés l'avoir compilé en
.class utilisant jytonc. Donc il s'agit de java faisant tourner la machine
virtuelle de python, faisant tourner le programme ...
(le tout sur un P4, FreeBSD):
Morale de l'histoire, Java c'est quand même plus performant que ce que certains
croient! Autre morale, la "précompilation" de tout le bytecode avec -server
peut faire une grosse différence. Aussi notable le fait que la première
exécution prend plus de temps avec -server.
Voici le programme qs.py
niobe% cat qs.py
import time, random
def qsort(x):
if len(x) > 1:
lt = [i for i in x if i < x[0] ]
eq = [i for i in x if i == x[0]]
gt = [i for i in x if i > x[0]]
return qsort(lt) + eq + qsort(gt)
else:
return x
if __name__ == "__main__":
print "taillettemps"
random.seed()
for n in (10000, 20000, 40000, 80000, 160000, 320000,640000):
l = [random.randrange(1000000) for i in range(n)]
t = time.clock()
qsort(l)
t = time.clock() - t
print n, 't', t
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme quicksort que Richard nous a monté l'autre jour, en python. D'une part je le fais tourner directement sous l'interprète python (sans psyco), d'autre part je le fais tourner en jython, aprés l'avoir compilé en .class utilisant jytonc. Donc il s'agit de java faisant tourner la machine virtuelle de python, faisant tourner le programme ... (le tout sur un P4, FreeBSD):
Morale de l'histoire, Java c'est quand même plus performant que ce que certains croient! Autre morale, la "précompilation" de tout le bytecode avec -server peut faire une grosse différence. Aussi notable le fait que la première exécution prend plus de temps avec -server.
Voici le programme qs.py
niobe% cat qs.py import time, random
def qsort(x): if len(x) > 1: lt = [i for i in x if i < x[0] ] eq = [i for i in x if i == x[0]] gt = [i for i in x if i > x[0]] return qsort(lt) + eq + qsort(gt) else: return x
if __name__ == "__main__": print "taillettemps" random.seed() for n in (10000, 20000, 40000, 80000, 160000, 320000,640000): l = [random.randrange(1000000) for i in range(n)] t = time.clock() qsort(l) t = time.clock() - t print n, 't', t
--
Michel TALON
remy
"Michel Talon" a écrit dans le message de news:d7n5h4$lbk$
wrote:
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme quicksort que Richard nous a monté l'autre jour, en python. D'une part je le fais tourner directement sous l'interprète python (sans psyco), d'autre part je le fais tourner en , aprés l'avoir compilé en .class utilisant jytonc. Donc il s'agit de java faisant tourner la machine virtuelle de python, faisant tourner le programme ... (le tout sur un P4, FreeBSD):
tu ne veut pas faire un essai avec gcj histoire de voir si cela passe bien sur avec jythonc
-- des conneries j'en ai dites oui oui je vous assure... mais elles n'engagent que votre perception remy
"Michel Talon" <talon@lpthe.jussieu.fr> a écrit dans le message de
news:d7n5h4$lbk$1@asmodee.lpthe.jussieu.fr...
remi_inconnu@yahoo.fr wrote:
Les librairies fournis en standard avec python sont importantes, et si
tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit
pas être loin des langages Java et .Net. En terme de vitesse,
personnellement je n'ai jamais trouvé Java très rapide, j'ignore si
.Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme
quicksort que Richard nous a monté l'autre jour, en python.
D'une part je le fais tourner directement sous l'interprète python (sans
psyco), d'autre part je le fais tourner en , aprés l'avoir compilé en
.class utilisant jytonc. Donc il s'agit de java faisant tourner la machine
virtuelle de python, faisant tourner le programme ...
(le tout sur un P4, FreeBSD):
tu ne veut pas faire un essai avec gcj histoire de voir
si cela passe bien sur avec jythonc
--
des conneries j'en ai dites oui oui je vous assure...
mais elles n'engagent que votre perception
remy
"Michel Talon" a écrit dans le message de news:d7n5h4$lbk$
wrote:
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme quicksort que Richard nous a monté l'autre jour, en python. D'une part je le fais tourner directement sous l'interprète python (sans psyco), d'autre part je le fais tourner en , aprés l'avoir compilé en .class utilisant jytonc. Donc il s'agit de java faisant tourner la machine virtuelle de python, faisant tourner le programme ... (le tout sur un P4, FreeBSD):
tu ne veut pas faire un essai avec gcj histoire de voir si cela passe bien sur avec jythonc
-- des conneries j'en ai dites oui oui je vous assure... mais elles n'engagent que votre perception remy
talon
remy wrote:
(le tout sur un P4, FreeBSD):
tu ne veut pas faire un essai avec gcj histoire de voir si cela passe bien sur avec jythonc
Directement comme ça, ça ne passe pas. Je suppose qu'il faudrait que le jython.jar soit compilé avec gcj. J'obtiens des choses comme: niobe% gcj33 -classpath ../jython.jar:. -O3 qs.java ...... /var/tmp//ccz2aJqa.o(.data+0x22c): undefined reference to `org::python::core::PyRunnable::class$' /var/tmp//ccz2aJqa.o(.data+0x2d0): undefined reference to `org::python::core::PyFunctionTable::class$' collect2: ld returned 1 exit status
Je n'ai pas l'habitude de gcj, donc ...
--
Michel TALON
remy <remy@fctpas.fr> wrote:
(le tout sur un P4, FreeBSD):
tu ne veut pas faire un essai avec gcj histoire de voir
si cela passe bien sur avec jythonc
Directement comme ça, ça ne passe pas. Je suppose qu'il faudrait que le
jython.jar soit compilé avec gcj. J'obtiens des choses comme:
niobe% gcj33 -classpath ../jython.jar:. -O3 qs.java
......
/var/tmp//ccz2aJqa.o(.data+0x22c): undefined reference to
`org::python::core::PyRunnable::class$'
/var/tmp//ccz2aJqa.o(.data+0x2d0): undefined reference to
`org::python::core::PyFunctionTable::class$'
collect2: ld returned 1 exit status
tu ne veut pas faire un essai avec gcj histoire de voir si cela passe bien sur avec jythonc
Directement comme ça, ça ne passe pas. Je suppose qu'il faudrait que le jython.jar soit compilé avec gcj. J'obtiens des choses comme: niobe% gcj33 -classpath ../jython.jar:. -O3 qs.java ...... /var/tmp//ccz2aJqa.o(.data+0x22c): undefined reference to `org::python::core::PyRunnable::class$' /var/tmp//ccz2aJqa.o(.data+0x2d0): undefined reference to `org::python::core::PyFunctionTable::class$' collect2: ld returned 1 exit status
Je n'ai pas l'habitude de gcj, donc ...
--
Michel TALON
Sébastien Kirche
Le 2 jun 2005, a dit :
C'est la même chose que Remembrance Agent (http://www.remem.org/) pour EmacsOS, sauf que ça ne clignote pas et que ça ne fait pas «pouet» avec la souris ?
Faut arrêter avec les trucs de geeks...
Tu parles d'Emacs ou de RA ?
Trouver de l'aide c'est d'abord pour les débutants (on est tous débutant dans un domaine ;-) )
Oui oui. Moi en ce moment c'est plutôt LaTeX, Python et Mono.
Donc les interfaces textes c'est bien quand tu sais mais pour accéder à de l'*aide* il me semble qu'une interface graphique est un plus... avec un gros bouton qui fait "pouet" si ça t'amuse
Je parlais des fonctionnalités (le coup de l'interface clignotante était un clin d'oeil bien sûr) : on a dans les deux cas (si j'ai bien suivi, c'était le but de ma question) un moteur d'indexation de documents. Texte uniquement pour RA, images et musique en plus Beagle.
La différence c'est que RA suivant sa configuration regarde ce que l'on tape et propose au fil de l'eau une liste de documents pouvant avoir un rapport, alors que Beagle fonctionne plus comme un moteur de recherche classique (càd à partir d'une requête).
Emacs c'est bien... en abuser... et pourtant je l'utilise pas mal... mais ça n'est pas le même public.
Sûr. Mais il n'y a pas beaucoup de choses que je fasse sur mon micro sans passer par Emacs dans mon utilisation courante. Question de goût (mauvais diront certains ?).
-- Sébastien Kirche
Le 2 jun 2005, noone@nowhere.com a dit :
C'est la même chose que Remembrance Agent (http://www.remem.org/)
pour EmacsOS, sauf que ça ne clignote pas et que ça ne fait pas
«pouet» avec la souris ?
Faut arrêter avec les trucs de geeks...
Tu parles d'Emacs ou de RA ?
Trouver de l'aide c'est d'abord pour les débutants (on est tous
débutant dans un domaine ;-) )
Oui oui. Moi en ce moment c'est plutôt LaTeX, Python et Mono.
Donc les interfaces textes c'est bien quand tu sais mais pour accéder
à de l'*aide* il me semble qu'une interface graphique est un
plus... avec un gros bouton qui fait "pouet" si ça t'amuse
Je parlais des fonctionnalités (le coup de l'interface clignotante était
un clin d'oeil bien sûr) : on a dans les deux cas (si j'ai bien suivi,
c'était le but de ma question) un moteur d'indexation de documents.
Texte uniquement pour RA, images et musique en plus Beagle.
La différence c'est que RA suivant sa configuration regarde ce que l'on
tape et propose au fil de l'eau une liste de documents pouvant avoir un
rapport, alors que Beagle fonctionne plus comme un moteur de recherche
classique (càd à partir d'une requête).
Emacs c'est bien... en abuser...
et pourtant je l'utilise pas mal... mais ça n'est pas le même public.
Sûr. Mais il n'y a pas beaucoup de choses que je fasse sur mon micro
sans passer par Emacs dans mon utilisation courante. Question de goût
(mauvais diront certains ?).
C'est la même chose que Remembrance Agent (http://www.remem.org/) pour EmacsOS, sauf que ça ne clignote pas et que ça ne fait pas «pouet» avec la souris ?
Faut arrêter avec les trucs de geeks...
Tu parles d'Emacs ou de RA ?
Trouver de l'aide c'est d'abord pour les débutants (on est tous débutant dans un domaine ;-) )
Oui oui. Moi en ce moment c'est plutôt LaTeX, Python et Mono.
Donc les interfaces textes c'est bien quand tu sais mais pour accéder à de l'*aide* il me semble qu'une interface graphique est un plus... avec un gros bouton qui fait "pouet" si ça t'amuse
Je parlais des fonctionnalités (le coup de l'interface clignotante était un clin d'oeil bien sûr) : on a dans les deux cas (si j'ai bien suivi, c'était le but de ma question) un moteur d'indexation de documents. Texte uniquement pour RA, images et musique en plus Beagle.
La différence c'est que RA suivant sa configuration regarde ce que l'on tape et propose au fil de l'eau une liste de documents pouvant avoir un rapport, alors que Beagle fonctionne plus comme un moteur de recherche classique (càd à partir d'une requête).
Emacs c'est bien... en abuser... et pourtant je l'utilise pas mal... mais ça n'est pas le même public.
Sûr. Mais il n'y a pas beaucoup de choses que je fasse sur mon micro sans passer par Emacs dans mon utilisation courante. Question de goût (mauvais diront certains ?).
-- Sébastien Kirche
Rémi
wrote:
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme quicksort que Richard nous a monté l'autre jour, en python. D'une part je le fais tourner directement sous l'interprète python (sans psyco), d'autre part je le fais tourner en jython, aprés l'avoir compilé en .class utilisant jytonc. Donc il s'agit de java faisant tourner la machine virtuelle de python, faisant tourner le programme ... (le tout sur un P4, FreeBSD):
Morale de l'histoire, Java c'est quand même plus performant que ce que certains croient! Autre morale, la "précompilation" de tout le bytecode avec -server peut faire une grosse différence. Aussi notable le fait que la première exécution prend plus de temps avec -server.
Voici le programme qs.py
niobe% cat qs.py import time, random
def qsort(x): if len(x) > 1: lt = [i for i in x if i < x[0] ] eq = [i for i in x if i == x[0]] gt = [i for i in x if i > x[0]] return qsort(lt) + eq + qsort(gt) else: return x
if __name__ == "__main__": print "taillettemps" random.seed() for n in (10000, 20000, 40000, 80000, 160000, 320000,640000): l = [random.randrange(1000000) for i in range(n)] t = time.clock() qsort(l) t = time.clock() - t print n, 't', t
Impressionnant la performance de jython, cependant là ou je trouverai java lent c'est encore sur les IHM et au lancement des applications.
remi_inconnu@yahoo.fr wrote:
Les librairies fournis en standard avec python sont importantes, et si
tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit
pas être loin des langages Java et .Net. En terme de vitesse,
personnellement je n'ai jamais trouvé Java très rapide, j'ignore si
.Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme
quicksort que Richard nous a monté l'autre jour, en python.
D'une part je le fais tourner directement sous l'interprète python (sans
psyco), d'autre part je le fais tourner en jython, aprés l'avoir compilé en
.class utilisant jytonc. Donc il s'agit de java faisant tourner la machine
virtuelle de python, faisant tourner le programme ...
(le tout sur un P4, FreeBSD):
Morale de l'histoire, Java c'est quand même plus performant que ce que certains
croient! Autre morale, la "précompilation" de tout le bytecode avec -server
peut faire une grosse différence. Aussi notable le fait que la première
exécution prend plus de temps avec -server.
Voici le programme qs.py
niobe% cat qs.py
import time, random
def qsort(x):
if len(x) > 1:
lt = [i for i in x if i < x[0] ]
eq = [i for i in x if i == x[0]]
gt = [i for i in x if i > x[0]]
return qsort(lt) + eq + qsort(gt)
else:
return x
if __name__ == "__main__":
print "taillettemps"
random.seed()
for n in (10000, 20000, 40000, 80000, 160000, 320000,640000):
l = [random.randrange(1000000) for i in range(n)]
t = time.clock()
qsort(l)
t = time.clock() - t
print n, 't', t
Impressionnant la performance de jython, cependant là ou je trouverai
java lent c'est encore sur les IHM et au lancement des applications.
Les librairies fournis en standard avec python sont importantes, et si tu ajoutes celles que tu peux télécharger, je pense que l'on ne doit pas être loin des langages Java et .Net. En terme de vitesse, personnellement je n'ai jamais trouvé Java très rapide, j'ignore si .Net est meilleur et le delta avec Python ne me semble pas si important.
Je te fournis un exemple, que je trouve amusant. Il s'agit du programme quicksort que Richard nous a monté l'autre jour, en python. D'une part je le fais tourner directement sous l'interprète python (sans psyco), d'autre part je le fais tourner en jython, aprés l'avoir compilé en .class utilisant jytonc. Donc il s'agit de java faisant tourner la machine virtuelle de python, faisant tourner le programme ... (le tout sur un P4, FreeBSD):
Morale de l'histoire, Java c'est quand même plus performant que ce que certains croient! Autre morale, la "précompilation" de tout le bytecode avec -server peut faire une grosse différence. Aussi notable le fait que la première exécution prend plus de temps avec -server.
Voici le programme qs.py
niobe% cat qs.py import time, random
def qsort(x): if len(x) > 1: lt = [i for i in x if i < x[0] ] eq = [i for i in x if i == x[0]] gt = [i for i in x if i > x[0]] return qsort(lt) + eq + qsort(gt) else: return x
if __name__ == "__main__": print "taillettemps" random.seed() for n in (10000, 20000, 40000, 80000, 160000, 320000,640000): l = [random.randrange(1000000) for i in range(n)] t = time.clock() qsort(l) t = time.clock() - t print n, 't', t
Impressionnant la performance de jython, cependant là ou je trouverai java lent c'est encore sur les IHM et au lancement des applications.