miércoles, 2 de noviembre de 2011

Comparativa python vs php vs java

Pues ahora les traigo una comparativa entre estos lenguajes aplicados a la web (bueno en el caso de php ya es de naturaleza web pero no en el caso de python o de java).

Php es un lenguaje muy maduro que ha estado en el mercado hace ya muchos años (1995) y como principales ventajas tiene:

1- una gran comunidad de programadores que te pueden ayudar cuando te atores en algo
2- su curva de aprendizaje es muy suave ya que es muy sencillo de aprender (ademas de su gran parecido con c)
3- la cantidad de bibliotecas que te simplifican el desarrollo de cosas como creación de imágenes y pdf manejo de sockets y bases de datos de una forma muy simple y sencilla, por lo tanto
4- desde el punto de vista de un negocio el tiempo de desarrollo en php es mínima y muy rápida lo que se traduce en alta productividad.
5- la implementacion es muy simple por lo tanto la oferta de hosting que soportan esta tecnología es gigantesca.

como desventajas tiene:
1- es muy lento lo que en sitios web que tendrán muchas peticiones por segundo o cargas muy pesadas de acceso a BD, no sera la mejor opción
2- si bien la persistencia de datos existe al serializar manualmente o por medio de sesiones, no existe la persistencia de objetos lo cual puede llegar a ser una gran desventaja al programar OOP.
3- es un lenguaje que al principio no soportaba OOP por lo que hacer código spaguetti es muy facil y casi involuntario, ademas de que en algunos benchmark demuestra ser lento al ejecutar OOP que simple código estructurado.

Java es un lenguaje también muy maduro y con mucha experiencia y tiene como ventajas:
1- al igual que en php una gran cantidad de programadores te pueden ayudar
2- gran potencia y velocidad, ya que se usan servlets y existe persistencia de objetos.
3- es un lenguaje totalmente OOP por lo que es imposible programar feo (o al menos no como en php XD)

como desventajas:
1- su curva de aprendizaje es muy pesada, ya que este lenguaje es muy complejo, lo cual no lo hace justificable si tu desarrollo es medianamente simple.
2- el tiempo de desarrollo y por lo tanto su productividad no es tan bueno que como en php al menos en desarrollos relativamente simples como sitios de e-comerce, uso de base de datos sencillo. Aunque en sitios mas complejos donde la carga de consultas a bases de datos sea muy alta es mejor Java.
3- la implementacion de esta tecnología es mas costosa por lo tanto es mas escasa la oferta de hosting para la misma.

Python es un lenguaje mas parecido a java que a php (en su forma de operar) y aunque mas antiguo que php (1991) su incursión en la web a sido muy escasa, si bien es un lenguaje interpretado al igual que php, se parece mas a java y si lo piensan bien java también es interpretado ya que la compilación autentica no se da en estos lenguajes no como en c o c++, ambos tanto java como python traducen el script a un bytecode (muy parecido al lenguaje maquina) a diferencia de php que sus opcodes son mas parecidos al lenguaje ensamblador, y los bytecode son mas óptimos, por lo tanto python es mas eficiente en su ejecución que php aunque no se le acerca a java, PERO hay una configuración para python, que me gusta y por la que apuesto todo, se trata de un framework que soporta sesiones, mvc y mas importante SERVLETS así es python puede manejar servlets como java con este framework, por lo que su desempeño mejoraría muchisimo que me atrevería a decir que le anda pisando los talones a Java, pero de eso hablare mas adelante en un benchmark que pretendo hacer en estas 3 tecnologías.

como principales ventajas tiene:
1- curva de aprendizaje muy suave, es un lenguaje que se puede jactar de ser de muy alto nivel casi aproximándose al lenguaje humano, dejando atrás a java y php en este sentido.
2- se ejecuta como lo hace java con bytecode lo que lo hace muy rápido resultando estar en medio entre php y java en rapidez.
3- también implementa una gran cantidad de bibliotecas para hacer maravillas como sucede en php

como desventajas:
1- no hay muchos programadores en esta tecnología y la documentación es muy escasa en español y en ingles también aunque hay mas que en español.
2- implementar esta tecnología en web es muy compleja por lo tanto los hosting que soportan python son todavía mas escasos que en Java.

Este es un análisis simple  de estas tecnologías, iré haciendo mas análisis de estas tecnologías mas adelante y mas completas, esto es una introducción.

Solo como reflexión final y casi a modo de estocada final y letal, los que estamos a favor de python como es mi caso, podemos presumir de tener como respaldo a empresas tan grandes como ni mas ni menos Google, Yahoo y Nasa, estas tres empresas tienen sus sitios web en python.

Cabe reflexionar que estas empresas tienen equipos de ingenieros muy capacitados (de lo merjor del mundo) y que si voltearon sus ojos a esta tecnología es por algo ¿no creen?

Saludos.

3 comentarios:

  1. Me gusto la forma en que lo expones. Ciertamente, un desarrollo en java consume mucho tiempo y esfuerzo. Aunque en algo no estoy de acuerdo: Java no es "difícil" (al menos no como podría ser C con los punteros) De la curva, que puedo decir. Algunas semanas es mucho, comparado con las horas de Python. Un saludo!

    ResponderEliminar
  2. MMM AL DECIR GRAN CANTIDAD DE BIBLIOTECAS PARA HACER MARAVILLAS ME IMAGINO QUE HABLARAS DE SU FRAMEWORK DJANGO Y SI ES ASI ENTONCES TAMBIEN DEBERIAMOS HABLAR DEL FRAMEWORK DE JAVA QUE ES SPRING Y TIENE MUCHAS BIBLIOTECAS QUE HACEN LA VIDA MUCHA MAS FACIL Y TE HACEN MARAVILLAS -.-''

    ResponderEliminar
  3. Pues me parece una comparacion que no va...! porque son lenguajes muy distintos, PHP esta totalmente enfocado a la web, Python a la web con django y algo de escritorio (en pañales), JAVA para web pero del lado del servidor como objetos explotando datos, para web ya se utiliza java pages que es muy distinto. Ademas JAVA incluye para desarrollos empresariales y hasta embebido en dispositivos

    exite uno llamado ColdFusion para mi gusto excelente, muy potenteee, pero no valorado talvez x el costo.!!!, pero existe una alternativa libre, Open BlueDragon y no recuerdo ahorita el otro, tambien esta asp.net todos estos para web

    y existe el dicho "Depende del sapo es la pedrada" osea Depende del proyecto es la herramienta a utilizar, asi que el mejor lenguaje o herramienta.! sera la que se adecue a tu proyecto, asi de simple

    ResponderEliminar