¿Por qué PHP se usa con tanta frecuencia en los servidores web? [cerrado]

14

Mi servidor web usa PHP al igual que el 76.9% de los servidores web según W3Techs:

http://w3techs.com/technologies/overview/programming_language/all

La razón por la que uso PHP es una inercia nacida de ver a todos los demás usándolo en servidores web. ¿Qué tiene PHP que lo haría tan ubicuo en los servidores web?

(Tenga en cuenta que esta pregunta es similar a la siguiente pero la lleva en una dirección diferente: ¿por qué no se utiliza Java para el desarrollo moderno de aplicaciones web? )

Deets McGeets
fuente
44
Siempre supuse porque es fácil de instalar en Apache y casi todos los servidores web son Apache.
maple_shaft
14
PHP es el lenguaje que demuestra que, si bien casi todos pueden programar, casi todos no deberían. Es el Visual Basic de la generación web.
Paul Tomblin
2
Quiero argumentar otro punto: PHP tiene buenas abstracciones para los sitios web: es compatible con la caché, tiene un ciclo inmutable de solicitud / respuesta, no te hace lidiar con la gestión de recursos, no te hace lidiar con estructuras de datos, es La naturaleza dinámica funciona bien con las bases de datos y tiene un montón de funciones integradas, por lo que los paquetes son más raros y la implementación es fácil. No me gusta PHP, pero es muy fácil defenderlo. No estoy convencido, pero es fácil de hacer.
Benjamin Gruenbaum

Respuestas:

41

PHP es un lenguaje diseñado específicamente para la programación web con integración integrada con la base de datos de código abierto más popular MySQL.

  • Fácil de comenzar: como principiante, es fácil comenzar con PHP. El usuario solo tiene que agregar algunas etiquetas PHP con, por ejemplo, un bucle for en sus archivos HTML existentes y luego subirlo al servidor y ver el resultado o un mensaje de error. La escritura dinámica y las matrices asociativas también hacen que sea más fácil comenzar a usar PHP.

  • Fácil de usar: en comparación con la mayoría de las soluciones como, por ejemplo, Java, PHP no necesita compilarse, por lo que es solo para escribir el script y luego subirlo al servidor y luego actualizar el navegador.

  • Soporte de base de datos integrado: PHP tiene (en su mayoría) soporte incorporado para las bases de datos más populares como, por ejemplo, MySQL, lo que significa que es fácil comenzar a usar bases de datos, no es necesario instalar controladores adicionales, solo para usar las funciones mysql. La herramienta de administración basada en web fácil de usar PHPMyAdmin (lanzada en 1998) también es importante para el éxito de PHP en combinación con MySQL.

  • Lenguaje antiguo (desde 1995) con una gran base de usuarios: PHP se hizo popular a principios (1995) ya que fue diseñado para la programación web. Desde entonces, la base de usuarios ha crecido y ahora hay muchos marcos y bibliotecas orientados a la web disponibles. Algunos ejemplos son los sistemas blogg y las plataformas de compras electrónicas.

  • Alojamiento barato: dado que PHP ha existido durante mucho tiempo y funciona bien tanto en Linux como en Windows, y muchos servidores web tienen soporte para ello. No hay problema para encontrar hosting con PHP preinstalado.

Jonas
fuente
1
marque esto como respuesta, no necesita ir más allá: P. Buena respuesta @Jonas
Pankaj Upadhyay
La mayoría de los puntos aquí también son ciertos para ASP clásico. Ah, y también JSP simple.
Adriano Carneiro
44
@Adrian: 1) PHP se lanzó antes de JSP y ASP. 2) Es más fácil usar MySQL con PHP ya que no tiene que manejar ODBC o JDBC y los controladores 3) ASP no era fácil y estaba extendido en Linux (hosting barato) en ese momento. 4) Java con su escritura estática es un poco más difícil de comenzar para un principiante.
Jonas
1
@Jonas, en su mayoría estás reforzando mi punto: 1) era el único lenguaje web decente, así que el lugar correcto, el momento correcto. 3) LAMP, de eso se trata mi publicación. Además, tómalo con calma, no digo que PHP sea malo, solo digo por qué se hizo popular: llenó un vacío, eso es todo.
Adriano Carneiro
99
"Fácil de comenzar" es, creo, lo que lo lanzó. Perl existía y podía hacer todo lo que PHP podía hacer. Pero PHP fue mucho más fácil para un principiante completo. Y sospecho que la comunidad también fue más amigable con los novatos. PHP llenó el vacío que VB hizo para la programación de Windows, lo suficientemente fácil como para que las personas puedan comenzar por su cuenta y crear algo.
GrandmasterB
10

Por la misma razón, MySQL es tan popular: estaba en el lugar correcto en el momento correcto.

Con el auge del servidor Linux en los años 90, la plataforma LAMP (Linux-Apache-MySQL-PHP) apareció como una opción confiable y, lo más importante, gratuita.

Como nota al margen, tome MySQL en el momento. Estas eran dos características faltantes de MySQL (desde el principio de mi mente, podría haber más) no hace mucho tiempo :

  • Sin desencadenantes
  • No es totalmente compatible con ACID

¿Cómo llegó a ser tan popular un DB que ni siquiera era ACID (atomicity-consistency-aislamiento-durabilidad)? La misma respuesta que PHP: estaba en el lugar correcto en el momento correcto.

Más información sobre el "lugar correcto en el momento correcto" en los componentes de LAMP:

Adriano Carneiro
fuente
3
Si "estaba en el lugar correcto en el momento correcto" es la respuesta, entonces Perl y CGI con C deberían haber visto la misma popularidad.
Jonas
2
"¿Cómo llegó a ser tan popular una base de datos que ni siquiera era compatible con ACID?" - Eso es fácil ... no era tan importante para la mayoría de la gente. MySQL fue lo suficientemente confiable para la mayoría de los usos web. ¿Lo suficientemente confiable desde el principio para un banco? Probablemente no. ¿Para un foro web? Si.
GrandmasterB
Tenía un colega que gritaba "¡pero MySQL no es un RDBMS!". Eso me parece divertido. La popularidad es algo gracioso. Nosotros, los desarrolladores de software, no debemos ser esclavos de la tendencia, tenemos que seguir aprendiendo para seguir trabajando. Cualquiera que defienda demasiado a un técnico es menos probable que lo deje ir. Y eso siempre es profesionalmente peligroso. Este tema ha terminado para mí. :)
Adriano Carneiro
8

Si miras a tu alrededor, la mayoría de las personas que ejecutan PHP en estos días ejecutan Wordpress, Drupal, Joomla y similares. O una de las 10,000 aplicaciones gratuitas y populares que prácticamente funcionan con un host PHP barato y una pequeña configuración. Muchas veces se instala no porque alguien esté haciendo algo que se ejecuta en PHP, sino que la opción más fácil es usar algo construido en PHP.

Wyatt Barnett
fuente
7

Me estoy enseñando PHP ahora mismo, así que tal vez pueda responder.

Un archivo de código fuente PHP puede contener una combinación de HTML, JavaScript y PHP, por lo que parece realmente fácil poner en funcionamiento aplicaciones web simples. Las interacciones más complejas, que requerirían una gran cantidad de Java en una situación JSP, o algunas contorsiones extrañas en una situación CGI-BIN, son atendidas por PHP: ni siquiera tiene que saber si un HTTP GET o POST llamó a su código, todo lo que su código quiere saber vive en _REQUEST o _SERVER o _COOKIE variables globales.

PHP-the-langauage se analiza y ejecuta con bastante rapidez, por lo que no notará una gran caída de rendimiento al generar HTML, en lugar de tener un montón de archivos HTML estáticos.

PHP-the-interpreter tiene llamadas a la biblioteca para casi todos los DBMS de código abierto, y muchos de los propietarios, también, por lo que hacer que una aplicación web de 3 niveles parezca fácil. PHP-the-interpreter incluye llamadas a la biblioteca para muchas otras situaciones comunes (también conocidas como "casos de uso"), por lo que no tiene que escribir mucho código usted mismo, simplemente llame a la biblioteca. Entonces, al igual que las "aplicaciones empresariales" J2EE, el problema pasa de saber cómo codificar a saber cómo buscar cosas de la biblioteca. Esto es ayudado por el muy decente php.net PHP manual.

Como lenguaje de programación, PHP no tiene muchas construcciones exóticas, o difiere demasiado de, por ejemplo, C, FORTRAN 4 o Pascal, por lo que los programadores que ya conocen un idioma pueden aprender fácilmente el lenguaje de programación PHP.

Bruce Ediger
fuente
3

Hay dos puntos clave para el éxito de PHP: el momento y el enfoque en el alojamiento compartido.

Al principio la web era estática. Los servidores web solo podían distribuir HTML pregenerado, esto obviamente no fue suficiente después de algún tiempo, por lo que en 1993 el equipo de NCSA amplió su servidor web (el predecesor de Apache httpd) con una tecnología llamada CGI que permitía llamar a programas específicos desde el servidor web que podría generar HTML (u otro contenido) sobre la marcha. Esto fue genial ya que la gente podía hacer todas las cosas. Un lenguaje comúnmente utilizado en ese momento para ese propósito era Perl. Perl es un lenguaje fuerte en el procesamiento de texto que es una propiedad clave para manejar datos de solicitud HTTP y producir HTML. Entonces la gente lo usó.

Pero había un problema: para cada solicitud que el servidor web tenía que ejecutar un programa externo, Perl tenía que inicializar y ejecutar el script. Esto causó bastante dolor de cabeza. Una solución fue mod_perl llegando ca. 1997. mod_perl es un módulo para el servidor web Apache que integra el intérprete de Perl directamente en el proceso del servidor web, por lo que no se necesita un inicio adicional.

Pero nuevamente, este enfoque tenía un problema: mod_perl era extremadamente poderoso y tenía acceso a la configuración completa del servidor. No podría usar un servidor para alojar múltiples clientes independientes, ya que podrían dañar fácilmente a otras personas, ya sea a propósito o por accidente. Y ahí es donde llegó PHP.

PHP fue construido de una manera que podría ejecutarse como módulo Apache (por lo tanto, no tener el hit de inicio para cada solicitud) pero proporciona un entorno de nada compartido entre las solicitudes. Una vez que se realizó una solicitud, se perdió toda la información y una solicitud posterior a otro host virtual se atendería de forma independiente. PHP también ofreció funciones para restringir el acceso (safe_mode, open_base_dir). Con esa opción arquitectónica, las empresas podrían instalar PHP en su servidor y proporcionar a los clientes acceso FTP (o similar) para cargar sus archivos y, de ese modo, alojar a muchos clientes en una sola máquina sin mucho trabajo. Esto provocó una competencia que condujo a precios baratos para el alojamiento basado en PHP, lo que hizo de PHP una plataforma ubicua.

Además, PHP tuvo algunos beneficios sobre Perl, como permitir mezclar código HTML y PHP o acceso directo a variables de solicitud (ver también register_globals) que en Perl fue más difícil (análisis personalizado o dependencia de CGI.pm) que les gustó a los desarrolladores.

Otro aspecto que hizo que PHP tuviera éxito en esos días fue un buen soporte en Windows. Conseguir que Perl u otros idiomas funcionaran en Windows fue difícil, pero en ese momento muchos desarrolladores aún no usaban Windows en casa y la virtualización o los contenedores. PHP se ejecutó fácilmente en Windows para que las personas pudieran usarlo para el desarrollo y luego empacar los archivos e implementarlos en Linux. Con Perl, por ejemplo, tendría que obtener la distribución perl correcta y luego verificar qué módulos están disponibles, etc.

¿Qué hay de otros idiomas? Los lenguajes compilados como C o C ++ nunca tuvieron tracción ya que las secuencias de comandos sirven mejor al mercado en rápido desarrollo. Java existía, pero las máquinas virtuales Java requerían muchos más recursos y alojamiento compartido en la forma en que PHP lo soportaba era apenas factible. La inversión en hardware fue mucho mayor. ASP (como predecesor de ASP.Net) estaba vinculado a la plataforma Windows, limitándolo a las organizaciones que ya ejecutan Windows y que no temen los costos de licencia, y nuevamente no cuentan con soporte de alojamiento compartido.

Se produjeron otras tecnologías diferentes, pero fueron comerciales (Cold Fusion o Netscape Server con JavaScript del lado del servidor) limitando su alcance o no desaparecieron hasta que llegó Ruby-on-rails, que probablemente fue el primer entorno que recibió muchos atención, pero en ese momento PHP ya era muy popular entre una gran comunidad y un software bien establecido (como Wordpress o Drupal), lo que dificultaba la competencia, especialmente porque el desarrollo de PHP nunca se detuvo y aún continúa.

johannes
fuente
1

Seamos realistas, PHP es barato, fácil de aprender, tiene una gran comunidad, puede alojarlo en cualquier lugar y ha existido mucho. Entonces, si piensa que alguien usa Internet como una forma de ganar dinero rápidamente en una industria pequeña / mediana y tiene que crear un área de desarrollo para hacerlo con una infraestructura prácticamente inexistente, PHP suena bastante bien (para empezar).

Así que creo que PHP es una excelente manera de ganar dinero rápidamente con un grupo de programadores y una pequeña computadora como servidor.

Guiman
fuente