2010-05-10 6 views
2

Possible en double:
Choosing Java vs Python on Google App EngineGoogle Appengine: Java ou Python

Nous allons utiliser la plate-forme Google Appengine pour notre prochain grand web project.But nous ne sommes pas sûr de la saveur à utiliser: Java ou Python.

Pourriez-vous s'il vous plaît, conseiller sur les inconvénients et les avantages de chaque approche? Quel est le meilleur moyen de construire une solution plus évolutive et efficace plus rapidement?

Merci à l'avance

+6

[Choisir Java vs Python sur Google App Engine] (http://stackoverflow.com/questions/1085898/choosing-java-vs-python-on-google-app-engine) est très similaire. –

Répondre

11

J'ai donné la réponse acceptée à la question qu'un commentaire affirme être «très similaire» - - Mais c'était il y a presque un an. Je suis toujours biaisé de la même façon (encore expert sur Python, rouillé en Java), mais dans l'année, je dirais que le runtime Java a presque rattrapé le Python - ou, si pas tout à fait encore, il a fait de grands pas (comme les deux runtimes "en parallèle", bien sûr ;-). La plupart de mes considérations générales dans cette réponse restent à peu près valables. Donc, la principale considération aujourd'hui est, je pense, quelle est la familiarité avec l'équipe de Python, et comment familier avec Java - si très familier avec un et pas du tout avec l'autre, aller avec ce que vous savez déjà, comme le temps nécessaire pour «rattraper» de l'autre est un coût qui est probablement plus élevé que les avantages que vous pourriez obtenir d'une façon ou d'une autre (pour un amateur souhaitant une expérience «expansion mentale» je recommanderais l'inverse: saisir l'opportunité d'apprendre ce que vous ne savez pas encore - mais en termes de productivité immédiate, rester avec ce que vous savez l'augmente ;-).Si une "bibliothèque de tueur" que vous avez identifiée fonctionne bien avec l'une des runtimes et que vous êtes vraiment désireux d'utiliser dans vos applications, cela pourrait être le facteur décisif, si des différences de familiarité avec les deux les langues ne sont pas décisives dans votre cas.

+2

+1 J'en ferais l'écho, mais si vous décidez d'opter pour Java, le framework Objectify semble beaucoup plus agréable à utiliser que le framework JDO prêt à l'emploi (qui n'est pas conçu pour être utilisé avec le magasin de données App Engine, comme Objectify est) http://code.google.com/p/objectify-appengine/ –

5

Il serait utile de savoir quel type de choses ce projet doit faire, avez-vous besoin d'intégrer avec beaucoup d'autres bibliothèques, applications, etc?

Ceci est juste une anecdote, mais j'ai récemment essayé GAE sur les deux plates-formes, et trouvé l'option Python façon plus facile à faire fonctionner que d'utiliser Java avec JDO. Une partie de cela concernait aussi JDO en même temps, mais j'ai trouvé que j'étais capable d'implémenter la même fonctionnalité en Python en quelques jours que je l'étais en Java.

Comme quelqu'un relativement nouveau pour Python encore, il y a beaucoup de choses que je dois encore faire face à se sentir plus à l'aise en elle, comme:

  • la meilleure façon d'unité tester mes contrôleurs et classes de modèle
  • meilleure façon de structurer mes contrôleurs
  • déterminer si des modèles de Django sont satisfaisants ou si je devrais essayer d'utiliser un système de modèle différent

Quand j'attempte d la meilleure façon d'écrire des tests unitaires Java pour mes classes GAE J'ai rebondi entre une demi-douzaine d'articles de blog différents et des suggestions sur la meilleure façon de se moquer des services App Engine. Certains semblaient travailler, d'autres semblaient être des hacks, mais l'absence d'une bonne solution appuyée me laissait mal à l'aise.

Toutes choses étant égales par ailleurs, je recommanderais la saveur Python pour un projet entièrement nouveau. Plus facile à démarrer, moins de pièces en mouvement, pas de temps de démarrage JVM désagréables dans l'environnement de production, pas besoin d'amélioration de post-compilation, etc.

+0

Merci matt. Avez-vous utilisé et frameworks MVC pour python gae. J'ai jeté un oeil à l'intégration de django-gae, mais ce n'est pas encore terminé. – husayt

+0

Pas encore, non. Le framework intégré * webapp * semble adapté à la plupart des tâches simples, du moins jusqu'à présent. –