¿Por qué PHP sigue siendo el lenguaje de desarrollo de sitios web líder?

Editaré mi respuesta original (aún visible abajo).

La gente siempre compara idiomas y marcos sin contexto. Y sí, es muy cierto que es más fácil encontrar las palabras clave “PHP”, “Java” o “.NET” con más frecuencia que Ruby, Rails, Javascript, Python o las realmente nuevas como Elixir, Clojure, Scala, Rust, GoLang, etc.

Ahora agreguemos perspectiva. Esto es lo que la gente piensa:

Descargo de responsabilidad : los gráficos no están respaldados por ningún dato oficial (como no existe tal agencia, es solo mi punto de vista personal respaldado por 10 años haciendo reclutamiento y consultoría activa, su millaje puede variar).

Ahora, esto es lo que la gente realmente debería comenzar a considerar:

Como siempre, depende. Es demasiado fácil encontrar la palabra clave “PHP” que encontrar “Ruby” o “Clojure”.

Pero ahora trate de encontrar: “programador competente que comprenda las arquitecturas web adecuadas, la seguridad, la mantenibilidad, la reutilización, la capacidad de prueba, las mejores prácticas ágiles, como la integración continua, el desarrollo basado en pruebas, los patrones de diseño adecuados, la computación en la nube y las opciones de escalabilidad, SEO y SEM, etc. “y ahora tienes un verdadero desafío en tus manos.

Argumentaré que en el caso del mercado de desarrollo web (sin tener en cuenta los mercados móviles, de escritorio o más específicos) es mucho más fácil encontrar un desarrollador de Ruby más completo que entienda los ciclos adecuados de programación sostenible y limpia que encontrar un desarrollador de PHP con un conjunto de habilidades similares.

Nuevamente, su millaje puede variar, pero el punto es que no es tan blanco y negro como la mayoría piensa.

En la comunidad Ruby, la mayoría conoce a Rails. Esta comunidad creó elementos básicos de buen desarrollo. Se nos ocurrió Github. Se nos ocurrió SASS. Se nos ocurrió una adecuada canalización de activos. Se nos ocurrió la transpiración real de JS a través de Coffeescript (amarlo u odiarlo) y otros transpiladores como HAML, Slim, etc. En primer lugar, se nos ocurrieron diseños de API Restful más robustos. Se nos ocurrieron las preocupaciones de Platform as a Service a través de Heroku. Se nos ocurrió un monitoreo moderno como New Relic. Y así. Las dificultades iniciales de la comunidad Rails impulsaron el desarrollo web moderno. Por supuesto, no es casi todo “por eso”, pero hay una influencia real, ya que muchos marcos y herramientas más recientes derivan de eso y se vuelven maduros y consistentes en lugar de simplemente ser combinados.

Es por eso que todavía estoy en Ruby and Rails para el desarrollo web maduro.

Respuesta original:

Sé que suena sesgado, pero yo diría simplemente inercia. Comenzó en el momento adecuado con el conjunto correcto de características, que lo ayudaron a tomar fuerza y ​​ha estado funcionando desde entonces. Era mucho más fácil que escribir CGI con C / C ++ y tenía una curva de aprendizaje más fácil mientras se mantenía algo de la flexibilidad de Perl. Java todavía no era la herramienta elegida para la web en aquel entonces. Python recién comenzaba. Ruby estaba en su infancia, muy, muy lejos, escondido en Japón. .NET aún no se creó. No hay muchas opciones en ese entonces. Entonces, buen momento, y eso se suma a la inercia.

Nunca tuvo la intención de ser un lenguaje con todas las funciones, y aunque podría serlo, en realidad nadie lo usa seriamente fuera del tejido de páginas web. Por eso es muy especializado. No creará sistemas de colas de mensajes, servidores de aplicaciones, etc. Y no es necesario, no fue diseñado para eso.

Fue diseñado para hacer las cosas rápidamente, no de manera duradera, pero no te preocupes por eso cuando estás aprendiendo y quieres algo rápido fuera de la puerta.

He estado programando en PHP al comienzo de mi carrera, y me detuve a trabajar solo con Ruby / Rails en una startup, durante 3 años. La compañía en la que estoy trabajando ahora usa PHP, y me encanta, desde una perspectiva diferente.

Hay un montón de marcos y bibliotecas increíbles que siguen aumentando. PHP sigue evolucionando como lenguaje y es altamente productivo. Las implementaciones son muy simples también.

Como explica esta publicación de blog (Scraping – Nodejs Vs Php) ReactPHP hace el mismo trabajo que NodeJS, los resultados fueron aún más rápidos.

No veo la “inercia” como una buena explicación, ya que todavía puedo aprender y aplicar patrones de diseño, características del lenguaje y escribir una buena base de código. El marco de Laravel es un ejemplo de código de base de última generación: el marco de PHP para artesanos web.

Me hago eco de todo lo dicho anteriormente, pero también debes considerar el tiempo invertido en cualquier conjunto de habilidades técnicas. Las personas no cambian a menos que haya un incentivo considerable para cambiar. Si se puede hacer todo lo que se necesita hacer usando PHP como lenguaje de fondo, no hay razón para cambiar a Python o Ruby. Claro, hay marcos más robustos disponibles, pero cuando se trata de hacer un trabajo básico, la mayoría de las personas usan una herramienta que conocen, en lugar de elegir algo nuevo para hacer lo mismo. Es decir, hasta que salga algo tan increíble que uno DEBE usarlo para mantenerse actualizado, PHP golpeó a Perl, jQuery le dio nueva vida a JavaScript.