Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Desarrollo Web: PHP vs Java vs Ruby

MaX

Holas a todos,

quería preguntar, sobretodo a los que tengan experiencia en desarrollo en ambos lenguajes, qué opinan sobre el rendimiento de cada uno (respecto a número de peticiones / seg). Estoy interesado principalmente en aplicaciones que sigan un modelo MVC. Por poner un ejemplo, algo hecho en CakePHP contra algo en SpringMVC.
No quiero comenzar un flame, sino todo lo contrario, un hilo constructivo.

Navegando por ahí, encuentro un benchmark en el que Java es entre 5 y 15 veces más rápido de media, pero a cambio consume algo más de memoria. Lo segundo me lo esperaba, lo primero no tanto. Pero ahí estamos hablando del lenguaje en sí, y no de la arquitectura usada.

Según php vs. java, da a entender que como las arquitecturas son similares, por lo que no sería un punto determinante en sí.

Mi duda principal viene porque en el entorno empresarial, java arrasa, mientras que en entornos menos corporativos es php. De hecho, ahora mismo las únicas webs de renombre que me vienen a la cabeza en java son ebay y fnac, mientras que php las hay a patadas (flickr, lastfm si no me equivoco, elpais, ...).
Y en webs más sencillas, ya no hay color, todo es php y/o asp.

Las razones que encuentro son (sobretodo para sitios sencillos) que php es más fácil para comenzar, y el hosting es bastante más barato.

Mi objetivo es el de sitios más o menos complicados, por lo que en principio la 'facilidad' del lenguaje no es determinante, pero sí el precio del hosting.

Hace unos años, lo discutían en barrapunto, pero quizás está bien refrescar un poco el tema.

¿Qué opinais vosotros?

Edición 28/6/07: De hecho, hago extensible la pregunta la ruby, y por tanto a rails. Estoy leyendo From java to ruby y de momento no me ha convencido ;)

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
BocaDePez
BocaDePez

Usa en lo que te sientas comodo y ves que puedes solucionar el problema que se plantea.

Por ahora yo me he sentido comodo con PHP: no he tenido problemas de velocidad, muchisima documentacion, gran cantidad de plugins...

Conclusión: Por ahora no tengo porque irme hacia JAVA si PHP hace todo lo que le pido y muy eficientemente.

Supongo que como todo: Los amantes de JAVA te diran que sin duda java, y viceversa con PHP.

No compares las GRANDES corporaciones. Ten en cuenta que para una empresa gigante pues piensa que es mejor invertir en un Microsoft SQL Server y otro smotores invirtiendo miles de euros bajo un Windows 2003 Server Data Center. Que la empresa sea grande no quiere que sea la opción correcta todo lo que esta escoja.

🗨️ 15
BocaDePez
BocaDePez

(soy el de antes)

Yo a todos los scripts PHP les calculo el tiempo que tarda en procesarlo. El 90% de los casos son 0 segundos, el 10% es de 1 segundo (incluso con conexiones a Base de Datos). Con ello quiero decir, que si PHP tarda 0 segundos, entonces JAVa que tarda 15 veces menos... es 0 igual? Estamos halbando de entonces milisegundos (o por ahí).

Fijate en este foro. Es PHP y el proceso de paginas yo tambien diria que esta entre el 0-1 segundos. Que sea en java no hara que funcione mas rapido, porque ya hablamos de 0 segundos!

Saludos.

🗨️ 4
LineBenchmark

En el caso de 0 segundos es porque lo redondea. Siempre se necesita un tiempo para procesar el script por pequeño que sea.
No es lo mismo 9ms que 900ms. y en scripts de gran tamaño el tiempo importa y más si se hacen llamadas de un script a otro.

AQUI tienes, por ejemplo, como ver ese tiempo que ahora no lo visualizas.

Slds. :-)

🗨️ 2
BocaDePez
BocaDePez

Si se trata de redondeo, entonces hablamos de que entonces esta entre 0ms y 499ms.

🗨️ 1
MaX

Como te dice Donovan, ahí estas truncado el tiempo de medida, y hay una diferencia brutal entre 9ms o 900ms, sobretodo cuando tienes muchos usuarios.

También hay que tener en cuenta que, la mayoría de las páginas, lo que hacen es meter y sacar texto de una base de datos, con un poco de procesado de visualización. En esos caso, la verdad es que te va a dar igual lo que uses, mientras escale relativamente bien con el número de peticiones. No hace falta ninguna arquitectura complicada.

El problema viene cuando tienes que hacer cosas por debajo más complicadas, o cuando quieres tener separado por comodidad de desarrollo la aplicación en 3 capas (MVC principalmente). Mi duda está en cuanto overhead crea el meter esas capas ahí usando en java y en php, por eso hablaba más de frameworks como Cake o Spring.

Yo tengo experiencia con php, aunque mucha más con java, pero las cosas que he hecho son radicalmente opuestas, de ahí mi duda.

Gallir tiene un par de entradas interesantes sobre estos temas:
- Plantillas PHP: there is no silver bullet
- Los problemas de Twitter (y la escalibilidad)

Un saludo ;)

BocaDePez
BocaDePez

¿Java? Quienes permitan que un applet "camine" dentro del disco duro deberían hacérselo mirar.

🗨️ 9
BocaDePez
BocaDePez

Se refiere a nivel servidor, al igual que PHP.

Si la discusion fuera en el cliente PHP no entraría en juego. Ademas de que ya es sabido, que JAVA es "lento corriendo"

🗨️ 6
MaX

Esa era la sensación que yo tenía, que java era más lento que php, pero según los benchmarks que he enlazado por ahí arriba, es todo lo contrario. No hay que olvidar que php es interpretado.

Otra cosa es como funciona en un entorno web, con las cachés del intérprete por medio y todo eso.

🗨️ 5
MaX
🗨️ 3
MaX
🗨️ 1
Frankie2004

No es un applet, sino un servlet. Paranoias las justas. Gracias.
P.D: A mí no me gusta Java, pero las cosas claras y el chocolate espeso.

MaX

Hablo de servlets ;)
Además que los applets corren con bastantes limitaciones de permisos.

De todas formas yo tampoco soy amigo de los applets =)

Worked

Esto es cuando menos, curioso:

tufuncion.com/hola-mundo

Respecto a tu pregunta... hay mucha gente que está pensando que en su momento PHP derrotó a PERL en el entorno de programación web, y que ahora PHP está muriendo en favor de RoR.

Yo la verdad es que me quedaría con PHP, su curva de aprendizaje es de las mejores... y entre una de las virtudes que le encuentro es que puede portarse (con más facilidad o menos... eso ya es otra historia) a lenguajes como C o PERL.

FIXED: Dios... curva con B... pa matarme xD

🗨️ 1
MaX

Es curioso pero creo que engañoso. Los lenguajes que más tardan seguro que son los que tienen que cargar el intérprete o la máquina virtual en memoria. Si ese tiempo está incluido en la medida (no lo pone), de ahí vienen las diferencias.

Sobre PHP y RoR, tengo la impresión de que RoR no lo está matando, sino que es más la moda que otra cosa. Quizás le coma algún usuario, pero dudo que llegue a sustituirlo. Hay que tener en cuenta que RoR es un MVC completo, PHP sólo el lenguaje, y hacer cosas con RoR puede ser matar moscas a cañonazos.

En cuanto a la curva de aprendizaje de PHP, no hay problema en ello, sino es las librerías que haya que usar ;)

Un saludo.