2009-12-10 6 views
9

Ce ne sera pas une question de «programmation», mais plus question de technologie/plate-forme. J'essaie de déterminer si Python peut être une alternative Java appropriée pour les applications d'entreprise/web.Un cas d'affaires pour l'entreprise Python

Quels sont les cas idéaux où vous préféreriez utiliser Python au lieu de Java? Comment une application Web Python typique (bases de données/sessions/concurrence) fonctionnerait-elle par rapport à une application Java typique? Comment les frameworks Python spécifiques se comparent-ils aux frameworks Java (Spring, SEAM, Grails, etc.)?

Pour les entreprises, passer de l'infrastructure Java à une infrastructure Python est-elle trop difficile/coûteuse/gourmande en ressources/non viable? Également jeter un peu de lumière sur l'analyse de rentabilisation pour fournir une solution basée sur Python + Google AppEngine au client final. Sera-t-il rentable dans un scénario typique? Désolé si je pose une question trop large, j'aurais aimé la garder spécifique, mais j'ai besoin de votre aide pour évaluer Python dans son ensemble du point de vue des programmeurs, des fournisseurs de services et des clients d'affaires. Pour une PME, une pile technologique basée sur Python/GoogleAppEngine est une plate-forme évolutive et abordable. Mais qu'en est-il d'un grand MNC qui a déjà beaucoup investi dans Java.

Merci beaucoup. Je fais des recherches moi-même et partagerai volontiers mes conclusions ici!

Merci, Srirangan

Répondre

14

Une entreprise qui a déjà un terabucks des investissements Java devrait ajouter jython à leur mélange de technologies - il peut être adopté graduellement et progressivement, d'abord pour des fonctions auxiliaires telles que les tests, c) prototypage de nouvelles fonctionnalités, cas dans lesquels l'utilisation d'une bibliothèque Python open source existante est évidemment très pratique, etc., et ainsi de suite, comme l'ont appris les nombreux développeurs Java de l'entreprise Pour utiliser Jython, certains des prototypes seront simplement mis en production en tant que code Jython car il n'y aurait aucun avantage à les recoder, certains anciens sous-systèmes nécessitant un recodage seront recodés dans Jython, et ainsi de suite. Il n'est jamais vraiment judicieux de se débarrasser d'une énorme base de code existante et de l'investissement gigantesque qu'elle représente - les points forts de Python sont sa richesse de mises en œuvre au niveau de la production, sa façon de jouer avec les autres, et comment Python peut s'infiltrer progressivement et progressivement dans la plupart des boutiques de développement.

+0

Merci pour votre réponse. – Sri

+0

@Srirangan, de rien! –

+2

Est-ce que c'est "Terabucks" où vous prenez votre café? :) – PaulMcG

4

Plus votre investissement dans une technologie existante est important, plus il est coûteux de s'en écarter. COBOL est peut-être le meilleur exemple ici. Cet investissement ne concerne pas seulement le portage de solutions existantes, mais également le recyclage ou l'embauche de nouveaux collaborateurs afin que vous disposiez des compétences nécessaires pour créer et prendre en charge les nouvelles technologies, tout en conservant vos solutions existantes. Ajoutez à cela le fait que pour la plupart des grandes entreprises multinationales, le logiciel n'est pas leur activité principale. Tant qu'ils fonctionnent efficacement et répondent aux besoins de l'entreprise, ils ne se soucient pas tellement des «détails».

Vous devez être en mesure d'offrir des avantages assez convaincants pour surmonter ce genre d'inertie.

Triste mais vrai.

+0

Merci pour votre réponse – Sri

1

Si vous devez faire le genre de choses que vous pouvez faire avec Django, alors Django et Python sont totalement ce que vous voulez. Google App Engine runs Django as well. Ainsi, vous pouvez faire une application Django et l'héberger sur Google App Engine, et plus tard changer d'avis et passer à l'hébergement de serveur conventionnel, ou auto-hébergement si vous avez votre propre serveur.

Je n'ai pas essayé Google App Engine, mais je crois comprendre que le prix est assez raisonnable pour ce que vous obtenez. Le service informatique de Google fait un excellent travail pour assurer le bon fonctionnement de ses centres de données; Si vous externalisez l'hébergement sur Google App Engine, sachez que vos données sont sauvegardées, vous savez que les serveurs ne seront pas désactivés et même si une rétrocaveuse prend un centre de données Google entier sur Internet, un autre centre de données Google continuera à servir votre application à vos clients. Vous savez également que si votre application devient soudainement très populaire, Google App Engine sera automatiquement mis à l'échelle pour gérer la charge. (Je pense que vous définissez un plafond pour le maximum que vous êtes prêt à payer, et il évolue jusqu'à atteindre le plafond, mais comme je l'ai dit je ne l'ai pas utilisé et je ne suis pas certain.)

J'ai déjà utilisé Java, mais d'après ce que j'en ai vu, Python est un langage beaucoup plus expressif et les codeurs Python talentueux peuvent faire plus de travail en un jour simplement parce que le langage est bien meilleur. Cependant, si vous avez déjà investi dans Java et possédez une expertise interne en Java, vous seriez fou de vous en passer du jour au lendemain. La bonne chose est de choisir un nouveau projet pour essayer ce truc fou de Python.

Et je recommande vraiment Django. Vous pouvez obtenir le livre de Django et essayer le tutoriel. Si votre premier projet pilote en Python est un projet Django, vous devriez avoir un temps facile.

+0

Django est génial. GAE + Django est moins génial, étant donné que GAE ne supporte pas vraiment la plupart des fonctionnalités qui rendent Django très pratique. Le PO pose des questions sur les types de problèmes qui sont résolus avec du matériel interne dans tous les cas, ce qui fait que GAE n'est pas la solution. –

+0

En outre, j'adore Python, mais si vous n'avez pas utilisé Java, ne parapotez pas de bêtises à ce sujet que vous avez déjà entendu ailleurs, cela vous donne juste l'air mauvais. –

+0

* Rawk! * Steveha veut un biscuit! <- C'est parroting. Veuillez identifier spécifiquement la partie où j'ai répété quelque chose que j'avais déjà entendu par ailleurs. Note J'ai dit "d'après ce que j'en ai vu" ... Je discutais de ma propre expérience. Python prend moins de lignes de code par rapport à Java, et la plupart des gens conviennent que cela aide les gens à être plus productifs. Voir aussi: http://pythonconquerstheuniverse.wordpress.com/category/java-and-python/ – steveha

0

Il n'y a quasiment pas de "Business Case" utilisable pour tout choix technologique. «Qu'en est-il d'un grand MNC qui a déjà beaucoup investi en Java?» Demandez autour de vous. Voir s'il y a une analyse de rentabilisation pour Java.

Je doute que vous trouverez quelque chose. La plupart des entreprises dérivent lentement dans les choix technologiques.

Il n'y avait pas d'analyse de rentabilité pour COBOL - c'était le seul jeu en ville dans les temps anciens.

Il existe rarement une analyse de rentabilité pour Java. Ce qui se passe habituellement, c'est qu'un individu visionnaire a commencé à construire le premier site web (probablement en Perl). La "chose web" a gagné en popularité, et une certaine vision individuelle a commencé à construire des sites web en Java. Finalement, le succès de ces petites équipes a indiqué aux autres que Java avait des avantages sur COBOL.

Les gestionnaires disent les mots «faire une analyse de rentabilisation», mais regardez ce qu'ils font réellement. Ils écoutent (1) leurs pairs, (2) les gens qui réussissent. Pour faire le "business case" de Python, vous devez être cet individu visionnaire.

1) Utilisez Python.

2) Réussir.

3) Partagez vos succès. 4) Soyez prêt à expliquer que votre succès est dû à vos outils, et non à votre niveau personnel de génie et de charisme.

+0

Il y a certainement des cas d'affaires pour une langue. Nos développeurs ont-ils les connaissances appropriées, y at-il de (nouveaux) développeurs disponibles pour cette langue? Pouvons-nous facilement interopérer avec cette autre pile logicielle (intégration ldap par exemple) ou devons-nous réinventer cette roue nous-même? Ce n'est pas vraiment la technologie qui est intéressante pour l'analyse de rentabilisation, mais l'utilisation et le soutien de cette technologie. – extraneon

+0

@extraneon: Toutes les questions intéressantes. Mais, aucun de ceux-ci ont été réellement utilisés dans une «analyse de rentabilisation» quantitative pour prendre n'importe quelle décision d'utilisation de langue. Au lieu de cela, la décision d'utilisation de la langue est quelque chose qui se produit lentement en fonction des succès précédents. Regardez l'adoption de Java dans n'importe quelle organisation. Trouvez la documentation "business case". C'est très, très rare. –

1

La réponse à votre question est oui. Python peut convenir à Enterprise car Python est un langage qui a une puissance brute, qui peut être flexible et qui peut être collé avec d'autres langages de programmation.Ce dont l'entreprise a vraiment besoin, c'est d'un langage qui fait tout et je sens que python est déjà prêt pour l'entreprise. Si vous voulez des exemples, je crois qu'il n'y a pas d'exemple plus grand que google. Google exécute python en interne et en externe pour ses applications critiques. Le seul problème avec python est qu'il n'est pas très bien reconnu par la meilleure compagnie MNC et nous, en tant que programmeur python, trouvons difficile de convaincre l'équipe de gestion. Je suppose que vous allez faire face au même problème. Mais je vous garantis une fois que vous aurez mouillé vos pieds en python, vous comprendrez sa véritable puissance