¿Por qué tantos programadores odian PHP pero la mayoría de ellos tienen sus sitios web personales o de empresa integrados en WordPress?

Dejando a un lado las generalizaciones en la pregunta, PHP a menudo es criticado por su seguridad, rendimiento e implementación en comparación con otros lenguajes.

Seguridad

Con respecto a la pieza de seguridad, no ha habido problemas de seguridad frecuentes asociados con las bibliotecas principales, pero la forma en que se implementa el lenguaje aumenta la probabilidad de que los desarrolladores implementen vulnerabilidades de seguridad. Al final, los problemas de seguridad introducidos por los desarrolladores tienden a estar asociados con el lenguaje en sí.

Por otro lado, hay más lenguaje que podría evitar que los desarrolladores se disparen en el pie. Por ejemplo, comprobación de manchas. Algunos lenguajes implementan esto que esencialmente marca el uso de una variable cuando se configura otra variable, una ocurrencia común con la inyección SQL:

$ num = $ params [: items_to_show]
$ sql = “SELECT * FROM some_table LIMIT $ num”

PHP no lo marcará como un problema, pero algunos idiomas con la comprobación de manchas activada y no le permitirán ejecutar el código (crédito a wikipedia para este ejemplo).

Actuación

Con respecto al rendimiento, el lenguaje es más lento que C, C ++, Java, etc., sus lenguajes típicos asociados con la velocidad, pero esto rara vez se nota en la mayoría de los sitios a menos que esté escalando drásticamente. Sin embargo, con PHP7 lanzado, ha habido mejoras en el rendimiento, por lo que no estoy seguro de cómo se compara con los idiomas mencionados anteriormente, pero si tuviera que adivinar, pensaría que todavía no es tan rápido …

Implementación

He escuchado / leído a otros desarrolladores criticando el lenguaje por la implementación general del lenguaje. En mi opinión, estas críticas son más frecuentes y se refieren a cosas como las funciones de biblioteca que ofrecen lenguajes como Ruby / Python vs. PHP. Por ejemplo, en Ruby, ejecuta en código en elementos en una matriz con una sola línea como:

@array.map{|x| x+2}

Esto devolvería una matriz con cada elemento con 2 agregados. En PHP esto sería algo como:

$ new_array = [];
foreach $ array como $ k => $ v {
$ new_array [$ k] = $ v + 2
}
devuelve $ new_array;

WordPress

Con respecto al uso de WordPress, no puedo hablar con la cantidad de desarrolladores que alojan su blog, PERO WordPress ofrece velocidad al mercado. Es una plataforma de blogs probada y los desarrolladores están notoriamente asociados con la eficiencia, por lo que el uso de una herramienta como WordPress en lugar de escribir su propia solución le permite obtener rápidamente su blog y pasar a cosas mejores / más valiosas.

Hay una gran diferencia entre los méritos de la herramienta (PHP en este caso) y los méritos potenciales de algo creado con una herramienta determinada (es decir, WordPress en este caso). Quizás es una afirmación un tanto generalizada afirmar que muchos programadores “odian” PHP mientras disfrutan al mismo tiempo de los beneficios de “wordpress”.

Sin embargo, incluso en la medida en que esto pueda ser cierto, no hay hipocresía o inconsistencia intelectual en tal posición: una herramienta cruda (mala) en comparación con otra (más “elegante”), una herramienta mejor puede usarse para hacer algo que Es una bendición para los demás.

Creo que esto es una suposición de tu parte. No diría que los programadores odian PHP. Se reduce a preferencias y experiencia al final del día. También depende de cómo haya ido tu carrera profesional. Si ha tenido un trabajo como ingeniero PHP, lo más probable es que se quede con él. Lo mismo para Ruby, lo mismo para Python. Si están usando WordPress para sus sitios web personales, no es tanto que esté construido con PHP sino porque es fácil de extender, administrar y personalizar.

Quien lo odia ni siquiera usó WordPress, o incluso si la compañía lo usa, está en contra de quien lo odia.

Utilizo frameworks PHP pero también odio WordPress, pero es solo una opinión personal ya que es bastante trabajo solo para extenderlo (una vez que intenté construir una API de solicitud personalizada para un cliente, y es una pesadilla, terminé abandonando el proyecto )