Siempre escucho que PHP es para sitios web medianos y pequeños, mientras que .NET y Java para aplicaciones empresariales. Mi pregunta es sobre PHP. ¿Por qué PHP no es una buena opción para aplicaciones web empresariales? ¿Es porque si la aplicación web se hace más grande, entonces PHP será más lento ya que es un lenguaje interpretado?
Sé que el mundo corporativo elegirá .NET o J2EE por la integración con sus productos y por los servicios de back-end, etc. Sin embargo, si solo tenemos PHP para crear sitios y aplicaciones web, ¿cómo podemos usarlo para que funcione bien con grandes sitios?
En resumen, ¿existe una relación entre el rendimiento de PHP y el tamaño del sitio web? ¿Cuáles son los factores que hacen que PHP no sea una opción adecuada para sitios grandes?
Respuestas:
El rendimiento probablemente no sea uno de los factores. Para un lenguaje dinámico, PHP realmente funciona bastante bien; Dependiendo de la tarea, podría o no superar otras tecnologías. El modelo de aplicación simplemente es demasiado diferente para compararlo directamente con Java o ASP.NET. Incluso si hay una diferencia de velocidad medible, no es grande y probablemente sea lineal, lo que significa que puede resolverse lanzándole más hardware. Además, el lenguaje de programación en sí mismo rara vez es el cuello de botella: los algoritmos, el acceso a la base de datos, el ancho de banda de la red y la E / S en general son los culpables habituales, a menos que esté escribiendo algo realmente intensivo en CPU.
Las razones para usar ASP.NET o Java sobre PHP que son más probables incluyen:
Otra razón para el efecto percibido es que PHP es gratuito (como en la cerveza) y omnipresente: cada empresa de alojamiento web compartido barato tiene PHP en su paquete estándar, pero un servidor .NET o Java le costará mucho más. En consecuencia, una gran cantidad de sitios web pequeños usa PHP, no porque sea la mejor herramienta para el trabajo, sino la única disponible.
Eso no quiere decir que PHP no sea adecuado para grandes proyectos, simplemente no funciona bien con el tipo de programación 'empresarial'. Sus puntos fuertes se encuentran en otra parte, y si puede aprovecharlos, puede crear aplicaciones a gran escala tan fácilmente como lo haría con cualquier otra tecnología web.
fuente
Está confundiendo el tráfico ("sitio web pequeño y mediano" generalmente significa un sitio web con tráfico pequeño a mediano), con el grado de complicación de la lógica empresarial (sitio web simple versus solución empresarial). En el segundo caso, el rendimiento no es el factor clave.
Por ejemplo, Facebook es un sitio web de alto tráfico, pero no es una aplicación empresarial. Por otro lado, hay una gran cantidad de intranets basadas en servidores de aplicaciones Java, que no podrían manejar el tráfico de sitios web de tamaño medio.
El rendimiento basado en PHP no es la mejor opción, pero tampoco es tan malo. Especialmente comparado con otros lenguajes dinámicos. Sin embargo, una vez más, el rendimiento bruto no es el factor más importante. Crear sitios web de alto tráfico se trata más de optimizar la escalabilidad a nivel arquitectónico.
¿Por qué PHP es tan despreciado por la empresa? Hay pocas causas, primero sería su terrible reputación de seguridad . En segundo lugar, se percibe como un lenguaje para los aficionados que crean código de espagueti HTML-PHP feo e inmanejable. Esa percepción persiste, a pesar de que existen marcos MVC maduros. Supongo que tener el autor original de PHP argumenta que no necesitas un marco no ayuda. El hecho de que estos aficionados despistados con poca o ninguna habilidad de programación se llamen a sí mismos "programadores PHP" tampoco ayuda. La tercera razón es que cualquier programador experimentado estará de acuerdo, que PHP está mal diseñado como lenguaje. Puedes ver claramente que fue diseñado por un webmaster,
Y sí, en la empresa se trata de la integración del sistema, donde PHP tampoco brilla. Con suficiente esfuerzo puede crear módulos C. Hay un puente PHP-Java, que es bastante tedioso de usar. Más allá de eso no tienes mucho. Los intentos de crear Boost :: PHP (integración con C ++) han fallado. Los clones PHP que se ejecutan en JVM están lejos de tener una compatibilidad cercana al 100% con PHP (como nota al margen, no existe una definición formal del lenguaje PHP, la única referencia es la implementación predeterminada).
fuente
No tengo idea de por qué las personas afirman que PHP es para sitios web pequeños y medianos. Que yo sepa, esto no es cierto. Sé que algunos sitios web respaldados por PHP que comenzaron siendo pequeños y luego se convirtieron en los 100 mejores sitios web en mi país. Todavía usan PHP y no tienen planes de cambiar nada al respecto.
Lo que podría llevar a las personas a tal conclusión es que, en el caso de Java (y supongo que también con .NET), el escalado de aplicaciones es un término que se menciona con frecuencia en la documentación y la literatura. La mayoría de los servidores de aplicaciones soportan algún tipo de agrupación que permite la rápida adición de "caballos de fuerza" junto con el crecimiento de la popularidad. En el caso de PHP, debe construir el clúster usted mismo. Puede hacerlo de muchas maneras, utilizando diferentes componentes y debe conocer un poco o dos sobre el funcionamiento interno de PHP. Esto probablemente hace que la gente piense que con un solo servidor PHP (y, por lo tanto, un sitio web pequeño o mediano) es un callejón sin salida para PHP.
fuente
No existe tal cosa como solo una aplicación web empresarial. En el mundo empresarial, generalmente tiene un sistema empresarial completo, donde el elemento web es bastante pequeño en comparación con todo el sistema. Hay muchos sistemas debajo de la web que realizan procesamiento por lotes, mensajes en cola, integración empresarial, puertas de enlace y muchos más. El evento en la parte superior podría no ser solo
Si bien PHP es bueno para la web, no es tan bueno para los otros tipos de sistemas distribuidos. Y dado que hace todos estos sistemas en Java o .NET, también es fácil construir la pila web en la misma plataforma en lugar de en PHP.
fuente
Diría que los problemas con PHP se derivan menos del rendimiento que un historial de vulnerabilidades de seguridad. Si bien es indudablemente posible escribir un sitio web de cualquier tamaño o complejidad particular en PHP y aún mantener la seguridad, a medida que aumenta la complejidad, mantener la seguridad tiende a ser más difícil.
Java, por otro lado, fue diseñado con al menos algunas ideas sobre seguridad desde el primer día. Aunque esos no encajan completamente con la mayoría de las implementaciones actuales (el pensamiento original se centraba principalmente en los applets, no en los servlets), ese énfasis significa que sus características tienden a encajar mejor con la producción de código seguro. Y, por supuesto, tampoco se ha detenido, ya que los applets son en su mayoría un problema muerto ahora, Java se ha redefinido para enfatizar el papel del lado del servidor que ahora ocupa (en su mayoría).
Dado que .NET al menos intenta competir casi directamente con Java, proporciona casi el mismo tipo de características y capacidades a este respecto. Puede discutir (y los partidarios de ambos bandos lo hacen) sobre si Sun o Microsoft hacen un mejor trabajo a este respecto, pero el simple hecho de que ambos tengan equipos de personas realmente tratando de trabajar les da una ventaja bastante seria sobre PHP en este aspecto. el respeto.
fuente
1) Rendimiento: aquí se están confundiendo varias respuestas sobre ese punto.
El proyecto Phalanger (que utilicé con éxito en el pasado) le permite usar el código C # dentro de PHP y viceversa, o cambiar completamente de un idioma a otro. Probablemente tendrá que hacer algunos cambios, pero a medida que continúan trabajando en ello, cada vez es mejor.
Mi punto es que descubrieron que hay un factor promedio de velocidad 2.5 a favor de C # (o .NET en general, VB haría lo mismo, al final es MSIL).
Echa un vistazo a sus pruebas con Wordpress, atrajo a muchos desarrolladores.
Ahora no lo hemos visto aún, pero siempre está el tipo que te va a decir que FaceBook está escrito en PHP. Incorrecto. Fue, originalmente, hasta que se dieron cuenta de su error y escribieron HipHop para transformarlo a C ++.
EDITAR: Al parecer, el último bloque no está claro, así que lo que quise decir es que FaceBook está escrito en PHP, pero HipHop lo hace EJECUTAR como C ++, para mejorar la velocidad general, PORQUE PHP es lento.
2) Seguridad: como ya se ha dicho, PHP tiene una larga historia de problemas de seguridad.
3) Tiempo de desarrollo: Hacer un sitio web en PHP tiende a ser más fácil, especialmente con los marcos y todos los "creadores de sitios" disponibles. Hacer un sitio web PHP bueno, confiable y seguro es otra historia.
fuente