3 votes

java vs python pour GAE

À partir de ces liens:-

http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=python3&lang2=java    
http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=python3&lang2=java
http://shootout.alioth.debian.org/u64/benchmark.php?test=all&lang=python3&lang2=java 
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=python3&lang2=java

il apparaît clairement que le meilleur choix pour GAE est java, si la fonctionnalité évolutive est ce que nous recherchons.

Ma question est la suivante : quelles sont les implications qui affecteront les performances si nous utilisons l'un des cadres ?

par exemple

 django     --> python
 spring MVC --> java
 slim3      --> java
 ... etc

3voto

Peter Knego Points 57985

Juste une petite note - ne prenez pas cela comme une comparaison définitive/complète :

Django et Spring ont tous deux un long temps de démarrage, ce qui peut entraîner l'abandon de certaines demandes. J'opterais pour un framework qui a été spécialement conçu pour GAE : tipify, slim3, etc.

3voto

Igor Artamonov Points 16366

J'ai utilisé à la fois Python et Java sur GAE, un projet réalisé avec Python+Django, et un autre avec Java/Groovy+Spring.

Python+Django est très facile à développer au départ, mais pas si facile à maintenir. Il a un temps de démarrage assez rapide, une bonne documentation, etc.

Java+Spring nécessite plus de développement (certaines parties prennent 2 à 3 fois plus de temps que pour faire la même chose en utilisant django), ont des problèmes avec le temps de démarrage (même si vous utilisez warmup demandes). Mais il est beaucoup plus stable.

Les projets Python ont trop d'erreurs, la plupart du temps sans aucune raison visible (pour vous) :( Et il est très difficile de trouver la cause de ces erreurs, en raison de la nature dynamique du langage. Et aussi, soyez prêt à patcher manuellement certaines bibliothèques que vous utilisez. Ne vous méprenez pas, j'ai de nombreuses années d'expérience en Python, mais il est vraiment difficile de le maintenir sur des systèmes distribués comme GAE, et cela pose vraiment des problèmes de qualité du code :(

Java, en revanche, fonctionne très bien. Si votre code a des problèmes, vous verrez toutes les informations dont vous avez besoin pour les résoudre, et après quelques itérations, vous résoudrez presque tous les bugs. Sauf un : parfois vous verrez des erreurs de démarrage :( Pas trop souvent, en fait.

PS : le choix du bon langage pour GAE dépend du langage que vous connaissez le mieux :) Si vous ne connaissez pas encore Java - ne commencez pas avec lui, il faut au moins 1 à 2 ans pour comprendre le langage.

2voto

Nick Johnson Points 79909

Ces benchmarks comparent Python 3 à Java sur une configuration (vraisemblablement) standard. Il n'y a pas non plus d'indication sur le type de charge de travail testé par ces benchmarks.

App Engine utilise Python 2.5, dans une configuration résolument différente de celle que l'on trouve sur un ordinateur de bureau standard, de sorte que les critères de référence ne s'appliquent pas vraiment.

De plus, l'évolutivité n'est pas une question de repères comme ceux-ci - ils font, tout au plus, une différence de facteur constant. Si votre application est conçue pour évoluer, elle évoluera dans les deux langages, au même degré. L'évolutivité dépend de la qualité de l'architecture de votre application et de l'utilisation de l'infrastructure sous-jacente.

Je vous recommande d'utiliser le langage et le cadre de travail avec lesquels vous êtes le plus à l'aise. Ne choisissez pas votre langage en fonction de critères de référence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X