2012-02-10 8 views
10

Recientemente he recogido PHP y parece un lenguaje bastante ordenado que permite el desarrollo de aplicaciones web muy rápido (probablemente más rápido que mi favorito personal - Java :)¿Cuál es el razonamiento detrás del reclamo "PHP no escala (bien)"?

Ahora, no soy experto en PHP, ni con el lenguaje ni sus aspectos internos/específicos. Pero bastantes de mis colegas han hecho la afirmación de que las aplicaciones PHP no se amplían bien - un hecho que no he podido averiguar por mí mismo y de ahí la pregunta.

Acabo de aprender el sabor de PHP y mi única conjetura de no escalabilidad es escalabilidad de los lenguajes de procedimiento frente a OO (C contra C++/Java). Estoy de acuerdo y puedo ver cómo eso sería un obstáculo para aplicaciones web extremadamente complejas. Sin embargo, soy consciente de que OO-ness llega al mundo PHP y no veo que sea un obstáculo (corrígeme si mi hipótesis es incorrecta).

Aparte de eso, no entiendo qué problemas de escalabilidad se presentarían para una aplicación web con un gran número de usuarios (por el bien de la discusión, supongamos un diseño tranquilo, sin sesiones, ya que soy consciente de cómo impide la escalabilidad). Estoy más interesado en conocer las razones 'objetivas' de tal reclamo, si es posible. La subjetividad está bien, pero no estoy aquí para comenzar un debate sobre PHP y todo lo demás. Solo estoy interesado en saber cuáles son las posibles limitaciones de este lenguaje que debo tener en cuenta y no me debería morder más tarde si/cuando la aplicación web tuviera 1000 usuarios por día (o por hora).

+0

Esto se ha discutido muchas veces (escalabilidad google php). Además, algunos de los sitios web más grandes del mundo funcionan con PHP. – simshaun

+2

@simshaun: ¿Podría proporcionarme algunos enlaces? Eso podría ayudarme a marcar mi propia Q como duplicado y cerrarla, solo necesito una explicación detrás de la afirmación: P – PhD

+0

El resultado más importante es "Mito de escalabilidad de PHP" - http://onjava.com/onjava/2003/ 10/15/php_scalability.html - ¡aunque está bastante anticuado! – PhD

Respuesta

5

No puedo pensar en un idioma que tenga una limitación de escalabilidad. Una de las limitaciones de escalabilidad para un idioma sería algo así como:

Idioma X no puede ser utilizado para escribir programas que requieren más de 1000 líneas de código.

Eso suena ridículo, y lo es.

El estigma de que las aplicaciones de PHP no escalan bien proviene del hecho de que muchos programadores inexpertos eligen PHP para sus aplicaciones web. Esto se debe a que PHP es un lenguaje fácil de aprender, se integra muy bien con Apache y es compatible con casi todos los hosts del mundo.

Los programadores inexpertos suelen utilizar malas prácticas al escribir el código. Dado el número suficiente de estas malas prácticas esparcidas por toda la web, escritas en el lenguaje favorito del programador inexperto, es fácil ver por qué algunas personas son reacias a PHP.

También hay, probablemente, una actitud de "más santo que tú" que algunos programadores tienen hacia PHP (nuevamente, debido a su simplicidad).

PHP escala tan bien como cualquier otro idioma cuando se tienen en cuenta el almacenamiento en caché de páginas y las mejores prácticas. Hay muchos proyectos PHP bien utilizados para probarlo.

+0

¿Qué hay del hecho de que PHP tiene un solo subproceso? – Rabiees

+1

@Ken Esto es simplemente una respuesta falsa.'Language X no se puede usar para escribir programas que requieren más de 1000 líneas de código 'suena ridículo, porque eso no es en absoluto lo que se entiende por escalabilidad. No puede pensar en una limitación de escalabilidad, porque no tiene idea de lo que significa. Python y PHP son ambos lenguajes que muestran limitaciones de escalado verticales porque solo se pueden ejecutar en un solo subproceso nativo. No estoy seguro acerca de la escala horizontal, pero puedo imaginar que PHP tampoco lo hace bien. – taylorcressy

+0

@taylorcressy - No estoy seguro de qué relación tiene el enlace con la escalabilidad de un lenguaje de programación. Escalar una aplicación puede requerir esas técnicas, pero el lenguaje en el que se escribe la aplicación es arbitrario. – ken

Cuestiones relacionadas