8
votes

Python peut-il être une bonne alternative pour l'application Web qui serait autrement faite à Java EE?

Python peut être une bonne alternative à une application Web qui serait autrement développée avec Java EE? Dans l'affirmative, quel (s) cadre de python Web peut-il être un bon choix? S'il vous plaît voir les détails de l'application ci-dessous. J'ai demandé à quelques personnes individuellement à ce sujet, qui ont travaillé pendant une bonne quantité de temps sur les applications Web Java EE et Python, et ont eu quelques réponses indiquées par Python pourraient ne pas être un tel choix, principalement en raison de Facilité de mise à l'échelle, qui est l'un des besoins. L'autre raison donnée était un manque relatif de développeurs de python de la part du monde où l'application est en cours d'élaboration. Nous pourrions peut-être surmonter le second, mais pas sûr de la première.

L'application en question est un domaine financier B2B One, avec quelques types d'utilisateurs différents (comme dans: "Acteurs" ayant différents rôles de vie réelle - par exemple acheteurs, vendeurs), certains utilisateurs d'administrateur, utiliseront un SGBDM, aura CRUD (créer / lire / mettre à jour / supprimer) plus la fonctionnalité de recherche pour les tables maîtres, certains types de transactions impliquant à la fois des tables de maîtrise et de transaction (avec une logique assez simple, pas très complexe), et certains rapports au format PDF pour la plupart / tous des écrans de recherche (requêtes). Environ 80 ou deux caractéristiques, où les caractéristiques plantent principalement des écrans de l'application; Pas tous, cependant. Il aura également quelques types d'emplois par lots, pour lesquels le plan est de les exécuter parfois lorsque les utilisateurs ne sont pas autorisés à utiliser l'application. Aura JavaScript et Ajax sur le front-end. Sera la fonctionnalité d'envoi d'e-mails aux utilisateurs, pas seulement pour l'inscription ou la réinitialisation des mots de passe, mais également pour les informations liées à la transaction. Aucune lecture programmatique de courriels entrants cependant.

L'objectif est que celui-ci puisse éventuellement obtenir un niveau moyen d'échelle en termes de nombre d'utilisateurs (payants) et de transactions, pas très élevés, mais pas trop petit, un nombre - dire dans la gamme de 10 000 utilisateurs, dont 2000 peut accéder simultanément à l'application dans une période de 15 à 20 minutes. Ce sera une application SaaS (logiciel en tant que service).

Je sais que la question est très générale et ouverte et je m'attends à des réponses sur les lignes de "Cela dépend" :) mais je veux toujours avoir des points de vue des personnes qui ont travaillé sur de telles choses.

N'hésitez pas à demander plus de questions si nécessaire pour répondre. Je vais y répondre, à l'exception de tout ce qui est confidentiel.

Merci.

EDIT 1:

apprécie vraiment toutes les réponses. Je vais prendre un peu de temps pour les réfléchir, puis revenir avec d'autres questions (originales ou en réponse aux réponses) ou aux commentaires, le cas échéant.


2 commentaires

Toute langue peut bien fonctionner, elle commence par votre expérience avec Java et Python, ce sera un facteur important.


Oui, une langue peut fonctionner. Mais il veut savoir la disponibilité de cadres robustes afin qu'il n'a pas à réinventer la roue.


4 Réponses :


5
votes

C'est une très bonne alternative en effet. Votre projet me semble telle que cela aura besoin de nombreuses programmations personnalisées, ce qui, dans le monde Python, indiquerait de baser votre application Web à partir de Pylônes ( http://pylonshq.com/ ). Les pylônes sont surtout une couche de colle, et vous choisirez un moteur de gabarit et orm (essayez SQLalchemy ( http: // www. sqlalchemy.org/ ) Pour une puissance maximale ou SQLOBJECT ( http://www.sqlobject.org/) pour une approche quelque peu plus simple) la couche de votre choix. Vous voudrez probablement générer le PDF à l'aide de Reporlab ( http://www.reporlab.com/ ). Pour la partie email, vous obtiendrez un long chemin avec les fonctionnalités de courrier électronique intégrées de Pythons (voir Documents sur le site Web de Python).

EDIT 1 : Vous avez presque certainement déjà pensé à cela, mais ..: le succès bien sûr dépend beaucoup des compétences des développeurs que vous avez accès, c'est-à-dire si le Python Connaissant déjà, ou sont impatients et rapides à apprendre. Je dirais que Python est une très bonne langue débuneuse, mais il faut un peu de temps pour devenir vraiment «pythonique» (grossièrement traduisible comme maîtrise des caractéristiques de Python, par exemple en utilisant des fonctionnalités telles que des générateurs, des compréhensions de liste, getattr et setattr etc. couramment).

EDIT 2 : En outre, jetez un coup d'œil à PYPI, l'index package Python, http://pypi.python.org/pypi à "Shop de fenêtre" pour les modules qui vous fourniront une fonctionnalité supplémentaire pour vous. Il y a un lot d'entre eux.


0 commentaires

3
votes

Toute langue / cadre 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 «productivité plus élevé», je suggère des greils. Sa mise en œuvre à Groovy, que les développeurs Java peuvent choisir naturellement et disposent de divers outils pour générer des guerres, qui peuvent être déployés dans votre conteneur de servlet préféré. Il faut beaucoup de douleur hors de la tradition J2EE Development, tant que vous suivez les conventions. Il a une tonne de plugins robustes pour des choses comme l'authentification / l'autorisation. Cela vous fera économiser une tonne de temps.


0 commentaires

3
votes

Je pense que Python conviendrait éminemment adapté à vos exigences et que vous obtiendrez probablement le développement beaucoup plus rapidement qu'avec une solution basée sur Java.

Il y a plusieurs cadres d'applications Web python matures. Django est le plus populaire et fera probablement une grande partie de ce que vous voulez sortir de la boîte.

Les performances sont peu susceptibles d'être un problème pour les chiffres que vous donnez - tout goulot d'étranglement sera probablement dans l'accès à la base de données, de sorte que la vitesse de la langue que vous utilisez est en grande partie dénuée. Python est assez rapide pour exécuter youtube , et ils ont des ordres de grandeur plus d'utilisateurs que vous volonté. (Si vous n'avez pas le temps de regarder la présentation liée, l'ingénieur de l'évolutivité de tête de YouTube indique que 99,999% de leur code d'application sont écrits en python).


0 commentaires

2
votes

La mise à l'échelle est en grande partie indépendante de votre choix de langue, mais oui, Python peut aller à l'échelle juste pour ce que vous décrivez. Beaucoup de grands sites utilisent Python, y compris Reddit et YouTube (voici un bref Écraspez sur pourquoi Reddit utilise Python ).

framework: Django est le cadre très populaire, propose de belles capacités administratives intégrées, comprend un Orm qui parle avec les principales bases de données, inclut de nombreuses fonctionnalités et possède une communauté dynamique qui aboutit constamment de nouvelles applications et d'extensions. Nous l'utilisons et comme ça.

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


0 commentaires