Python peut-il être une bonne alternative à une application Web qui serait autrement réalisée avec Java EE?

Python peut-il être une bonne alternative à une application Web qui serait autrement développée avec Java EE? Si tel est le cas, quel (s) framework (s) d’applications Web Python peut être un bon choix? S’il vous plaît voir les détails sur l’application ci-dessous. J’ai demandé à quelques personnes individuellement à ce sujet, qui travaillaient depuis longtemps sur les applications Web Java EE et Python ou sur les deux, et ont obtenu quelques réponses indiquant que Python n’était peut-être pas un si bon choix, principalement en raison de facilité de mise à l’échelle, qui est l’un des besoins. L’autre raison invoquée est l’absence relative de développeurs Python dans la partie du monde où l’application est en cours de développement. Nous pourrions peut-être surmonter le second, mais nous ne sums pas sûrs du premier.

L’application en question est un domaine financier B2B, avec quelques types d’utilisateurs différents (par exemple, des “acteurs” jouant différents rôles dans la vie réelle – acheteurs, vendeurs, par exemple), certains utilisateurs administratifs utiliseront un SGBDR, ils auront CRUD (Créer / Lire / Mettre à jour / Supprimer) ainsi que la fonctionnalité de recherche pour les tables maîtres, certains types de transactions impliquant à la fois des tables maîtres et des tables de transactions (avec une logique relativement simple et pas très complexe), ainsi que certains rapports au format PDF pour la plupart / la totalité de la recherche écrans (requêtes). Environ 80 fonctionnalités environ, dont la plupart correspondent aux écrans de l’application; pas tous, cependant. Il aura également quelques types de travaux par lots, pour lesquels le plan est de les exécuter à des moments où les utilisateurs ne sont pas autorisés à utiliser l’application. Avoir JavaScript et AJAX sur le front-end. Permet d’envoyer des courriers électroniques aux utilisateurs, non seulement pour l’inscription ou la réinitialisation des mots de passe, mais également pour les informations relatives aux transactions. Pas de lecture programmée des emails entrants cependant.

L’objective est d’obtenir à terme un niveau moyen d’échelle en nombre d’utilisateurs (payants) et de transactions, pas très élevé, mais pas trop petit – disons de l’ordre de 10 000 utilisateurs, dont 2 000 pourraient être accéder simultanément à l’application dans un laps de temps de 15 à 20 minutes. Ce sera une application SaaS (Software as a Service).

Je sais que la question est très générale et ouverte et je m’attends à des réponses comme “ça dépend” 🙂 mais je veux tout de même obtenir l’avis de personnes qui ont travaillé sur de telles choses.

N’hésitez pas à poser plus de questions si nécessaire pour y répondre. Je vais y répondre sauf pour tout ce qui est confidentiel.

Merci.

Modifier 1:

Vraiment apprécier toutes les réponses. Je prendrai un peu de temps pour y réfléchir, puis je reviendrai avec d’autres questions (originales ou en réponse à des réponses) ou des commentaires, le cas échéant.

C’est une très bonne alternative en effet. Votre projet me semble nécessiter beaucoup de programmation personnalisée, ce qui, dans le monde Python, voudrait dire que votre application Web est basée sur Pylons ( http://pylonshq.com/ ). Pylons est principalement une couche collante, et vous allez choisir un moteur de template et ORM (essayez SQLAlchemy ( http://www.sqlalchemy.org/ ) pour une puissance maximale ou SQLObject ( http://www.sqlobject.org/ ) pour une approche un peu plus simple) couche de votre choix. Vous voudrez probablement générer les PDF à l’aide de ReporLab ( http://www.reportlab.com/ ). Pour la partie courrier électronique, vous aurez beaucoup à faire avec la fonctionnalité de messagerie intégrée à Pythons (voir la documentation sur le site Web de Python).

Edit 1 : vous avez sûrement déjà pensé à cela, mais ..: le succès dépend bien sûr beaucoup des compétences des développeurs auxquels vous avez access, c’est-à-dire si vous connaissez déjà Python, ou êtes désireux et rapide à apprendre. Je dirais que le python est un très bon langage pour débutants, mais il faut un peu de temps pour devenir vraiment «pythonique» (traduisable en étant capable de maîsortingser les caractéristiques de Python, par exemple en utilisant des fonctionnalités comme des générateurs, des compréhensions de liste, getattr et setattr etc. couramment).

Edit 2 : jetez également un coup d’œil à PyPI, l’index du paquet Python, http://pypi.python.org/pypi pour «faire du lèche-visortingne» avec des modules qui vous fourniront des fonctionnalités supplémentaires. Il y en a beaucoup .

N’importe quel langage / framework est un bon choix s’il est utilisé correctement par des développeurs compétents. Parfois, le meilleur choix est celui avec lequel votre équipe est la plus familière.

Compte tenu de votre espace client, si vous souhaitez passer à un cadre de “productivité plus élevée”, je suggère Grails. Il est implémenté dans Groovy, que les développeurs Java peuvent choisir naturellement, et dispose de divers outils pour générer des guerres, qui peuvent être déployés dans votre conteneur de servlets préféré. Cela prend beaucoup de peine du développement J2EE traditionnel, tant que vous suivez les conventions. Il a une tonne de plugins robustes pour des choses comme l’authentification / autorisation. Cela vous fera gagner beaucoup de temps.

Je pense que Python conviendrait parfaitement à vos besoins, et il est probable que le développement soit effectué beaucoup plus rapidement qu’avec une solution basée sur Java.

Il existe plusieurs frameworks d’applications Web Python matures. Django est le plus populaire et fera probablement la plupart de ce que vous voulez sortir de la boîte.

les performances que vous donnez sont peu susceptibles de poser problème – tout goulot d’étranglement est susceptible de se trouver dans l’access à la firebase database, de sorte que la vitesse de la langue que vous utilisez est en grande partie hors de propos. Python est assez rapide pour exécuter YouTube , et leurs ordres de grandeur sont plus nombreux que vous. (Si vous n’avez pas le temps de regarder la présentation liée, l’ingénieur en charge de l’évolutivité chez YouTube indique que 99,999% du code de leur application est écrit en Python).

La mise à l’échelle est largement indépendante de votre choix de langue, mais oui, python peut très bien s’adapter à ce que vous décrivez. De nombreux sites de grande taille utilisent Python, y compris Reddit et YouTube (voici un bref résumé de la raison pour laquelle Reddit utilise python ).

Framework: Django est un framework très populaire, livré avec de belles capacités d’administration intégrées, comprenant un ORM qui parle avec les principales bases de données, inclut de nombreuses fonctionnalités et possède une communauté dynamic qui crée constamment de nouvelles applications et extensions. Nous l’utilisons et l’aimons.

Pour vos besoins en AJAX / CRUD / Rest, jetez un coup d’œil à django-piston , un moyen propre de créer des API basées sur le repos.