2009-12-10 18 views
9

Esto no será una pregunta de "programación" sino más una pregunta relacionada con la tecnología/plataforma. Estoy tratando de averiguar si Python puede ser una alternativa adecuada de Java para aplicaciones empresariales/web.Business Case para Enterprise Python

¿Cuáles son los casos ideales en los que preferiría usar Python en lugar de Java? ¿Cómo funcionaría una aplicación web típica de Python (bases de datos/sesiones/concurrencia) en comparación con una aplicación Java típica? ¿Cómo se alinean marcos específicos de Python con marcos basados ​​en Java (Spring, SEAM, Grails, etc.)?

Para las empresas, el cambio de la infraestructura de Java a una infraestructura de Python ... ¿es demasiado difícil/costoso/de recursos/no viable? También arrojó algo de luz sobre el caso comercial para proporcionar una solución basada en Python + Google AppEngine al cliente final. ¿Será rentable en un escenario típico?

Lo siento si hago una pregunta demasiado amplia, me hubiera gustado mantenerla específica, pero necesito su ayuda para evaluar Python en su totalidad desde las perspectivas de los programadores, la empresa proveedora de servicios y el cliente comercial final.

Para una PYME, una pila de tecnología basada en Python/GoogleAppine es una plataforma clara, escalable y asequible. Pero ¿qué pasa con una gran MNC que ya ha invertido mucho en Java?

Muchas gracias. ¡Estoy investigando esto yo mismo y con mucho gusto compartiré mis conclusiones aquí!

Gracias, Srirangan

Respuesta

14

Una empresa que ya tiene un terabucks de las inversiones de Java debe añadir jython a su combinación de tecnologías - que se puede adoptar forma gradual y progresiva, en un primer momento para funciones auxiliares, tales como pruebas, migraciones de datos "únicas" & c, creación de prototipos de nuevas funcionalidades, casos en los que utilizar una biblioteca de Python existente de código abierto es obviamente muy útil, y así sucesivamente, entonces, como muchos desarrolladores de Java en la empresa aprenden para usar Jython, algunos de los prototipos simplemente se pondrán en producción como código Jython porque no habría ninguna ventaja al recodificarlos, algunos viejos subsistemas que necesitan recodificación serán recodificados en Jython, y así sucesivamente.

Nunca es realmente una buena decisión deshacerse de una enorme base de código existente y funcional y la enorme inversión que representa: las fortalezas de Python incluyen su gran cantidad de implementaciones de nivel de producción, qué tan bien "juegan con otros" y qué tan bien Python puede infiltrarse gradual y gradualmente en la mayoría de las tiendas de desarrollo.

+0

Gracias por tu respuesta. – Sri

+0

@Srirangan, de nada! –

+2

¿Es "Terabucks" donde obtienes tu café? :) – PaulMcG

4

Cuanto mayor sea su inversión en una tecnología existente, más costoso es alejarse de ella. COBOL es quizás el mejor ejemplo aquí.

Esa inversión no solo consiste en trasladar las soluciones existentes, sino también en volver a capacitar o contratar personal nuevo, de modo que tenga los conjuntos de habilidades para construir y respaldar las nuevas tecnologías, al mismo tiempo que mantiene sus soluciones heredadas.

Agregue a eso el hecho de que para la mayoría de las Corporaciones Multinacionales grandes, el software no es su negocio principal. Siempre y cuando funcione de manera efectiva y cumpla con las necesidades del negocio, no suelen preocuparse demasiado por los "detalles".

Necesita poder ofrecer algunos beneficios convincentes para superar este tipo de inercia.

Triste pero cierto.

+0

Gracias por su respuesta – Sri

1

Si necesitas hacer el tipo de cosas que puedes hacer con Django, entonces Django y Python son totalmente lo que quieres. Google App Engine runs Django as well. Por lo tanto, puedes hacer una aplicación Django y alojarla en Google App Engine, y luego cambiar de opinión y cambiar al hosting de servidor convencional, o autohospedaje si tienes tu propio servidor.

No he probado Google App Engine pero tengo entendido que el precio es bastante razonable para lo que obtienes. El departamento de TI de Google hace un gran trabajo para mantener en funcionamiento sus centros de datos; si subcontratas el alojamiento a Google App Engine, sabes que tus datos están respaldados, sabes que los servidores no se apagarán, e incluso si una retroexcavadora retira todo un data center de Google de Internet, algún otro centro de datos de Google seguirá sirviendo su aplicación a sus clientes. También sabe que si su aplicación de repente se vuelve muy popular, Google App Engine escalará automáticamente para manejar la carga. (Creo que estableces un tope para el máximo que estás dispuesto a pagar, y escala hasta que alcanza el tope. Pero como dije no lo he usado y no estoy seguro).

I have ' Todavía utilizo Java, pero por lo que he visto de él, Python es un lenguaje mucho más expresivo y los codificadores especializados de Python pueden hacer más trabajo en un solo día porque el lenguaje es mucho mejor. Sin embargo, si ya ha invertido en Java y tiene experiencia interna en Java, sería una locura alejarse de eso de la noche a la mañana. Lo correcto es elegir un nuevo proyecto para probar esa locura de Python.

Y realmente recomiendo Django. Puedes obtener el libro de Django y probar el tutorial. Si su primer proyecto piloto en Python es un proyecto de Django, debería tener un tiempo fácil.

+0

Django es increíble. GAE + Django es menos sorprendente, dado que GAE no es totalmente compatible con muchas de las funciones que hacen que Django sea realmente útil. El OP pregunta sobre los tipos de problemas que se resuelven con el hardware interno en cualquier caso, lo que hace que GAE no sea la respuesta. –

+0

Además, me encanta Python, pero si no ha usado Java, no loro las tonterías que ha escuchado en otros lugares, simplemente lo hace quedar mal. –

+0

* Rawk! * Steveha quiere una galleta! <- Eso es repetir el loro. Identifique específicamente la parte en la que repetí algo que había escuchado en otra parte. Nota: dije "por lo que he visto de él" ... Estaba argumentando desde mi propia experiencia. Python toma menos líneas de código en comparación con Java, y la mayoría de la gente está de acuerdo en que esto ayuda a las personas a ser más productivas. Vea también: http://pythonconquerstheuniverse.wordpress.com/category/java-and-python/ – steveha

0

No hay, casi, ningún "Business Case" utilizable para ninguna opción de tecnología.

"¿Qué pasa con una gran MNC que ya ha invertido mucho en Java?" Pregunte. Vea si hay un caso de negocios para Java.

Dudo que encuentres nada. La mayoría de las empresas se decantan lentamente por las opciones tecnológicas.

No hubo ningún caso de negocios para COBOL, era el único juego de la ciudad en los viejos tiempos.

Rara vez existe una justificación empresarial para Java. Lo que generalmente sucede es que algún individuo visionario comenzó a construir el primer sitio web (probablemente en Perl). La "cosa web" ganó tracción, y algunos individuos de visión comenzaron a construir sitios web en Java. Eventualmente, el éxito de esos pequeños equipos indicó a otros que Java tenía ventajas sobre COBOL.

Los gerentes dicen las palabras "hacer un caso de negocios", pero miren lo que realmente hacen. Escuchan a (1) sus compañeros, (2) personas exitosas.

Para hacer que el "caso de negocio" para Python, tiene que ser ese individuo visionario.

1) Use Python.

2) Sea exitoso.

3) Comparta sus éxitos.

4) Prepárese para explicar que su éxito se debe a sus herramientas, no a su nivel personal de genio y carisma.

+0

Hay ciertamente casos de negocios para un idioma. ¿Nuestros desarrolladores tienen el conocimiento adecuado, hay (nuevos) desarrolladores disponibles para ese idioma? ¿Podemos interactuar fácilmente con este otro paquete de software nuestro (integración LDAP por ejemplo) o tenemos que reinventar esa rueda nosotros mismos? Simplemente no es la tecnología lo que es interesante para el caso de negocios, sino el uso y soporte de esa tecnología. – extraneon

+0

@extraneon: todas las preguntas interesantes. Sin embargo, ninguno de esos fue realmente utilizado en una forma cuantitativa de "caso de negocio" para tomar cualquiera de las decisiones de uso del lenguaje. En cambio, la decisión sobre el uso del lenguaje es algo que sucede lentamente en función del éxito anterior. Mire la adopción de Java en cualquier organización. Encuentre la documentación del "caso de negocios". Es muy, muy raro –

1

La respuesta a tu pregunta es sí. Python puede ser muy adecuado para Enterprise porque Python es un lenguaje que tiene potencia bruta, flexible y puede ser pegado con otros lenguajes de programación.Lo que la empresa realmente requiere es un lenguaje que haga todo y siento que Python ya está listo para la empresa. Si quieres ejemplos, entonces creo que no puede haber un ejemplo más grande que google. Google ejecuta python interna y externamente para sus aplicaciones críticas para el negocio. El único problema con Python es que no está muy bien reconocido por la principal compañía de MNC y nosotros, como programadores de Python, encontramos dificultades para convencer al equipo de gestión. Supongo que enfrentarás el mismo problema. Pero te garantizo que una vez que te mojes los pies en python, comprenderás su verdadero poder