Cuando se habla de idiomas, estas dos citas de Stroustrup siempre aparecen en mente:
Cualquiera que se acerque a usted y le diga que tiene un lenguaje perfecto es ingenuo o vendedor.
y
Solo hay dos tipos de idiomas: los que la gente se queja y los que nadie usa.
Ahora a la pregunta en cuestión. La mayor parte del odio se dirige principalmente a PHP4. PHP5 se lanzó por primera vez en julio de 2004 (beta un año antes) y la última versión de PHP4 es 4.4.9 lanzada en agosto de 2008 . Ya no hay una razón válida para usar PHP4, a menos que, por supuesto, mantenga alguna aplicación heredada. PHP4 ya no es compatible con el grupo PHP, y todos esperamos que desaparezca pronto.
La brecha entre las dos versiones es mayor de lo que suele ser entre dos versiones principales, ya que el motor detrás del intérprete se reescribió desde cero e incluyó un nuevo modelo de objetos. El lanzamiento de PHP5 coincidió aproximadamente con el lanzamiento de MySQL5, una revisión importante de MySQL. PHP generalmente se combina con MySQL y la quinta versión de ambos abordó varios problemas y los puso al día con la competencia. MySQL también está sujeto a comentarios de FUD , pero, bueno, es la base de datos detrás de AdWords de Google .
PHP 5.3 fue una versión importante en todo menos en el nombre. Muchas de las características que estaban destinadas a PHP6 se abrieron paso en 5.3 y para cada desarrollador 5.2 por ahí recomendaría migrar a 5.3+ más pronto que tarde. La versión actual, 5.4, incluye algunas características increíbles (entre otras):
Ahora para sus comentarios específicos:
PHP es bueno pero genera código de espagueti
Eso no es del todo cierto. Ningún lenguaje genera ningún tipo de código, siempre depende del desarrollador arruinarlo, el código de espagueti es posible en todos los idiomas. Sin embargo, lo que es cierto es que PHP tiene una barrera de entrada muy baja en comparación con otros lenguajes populares, por lo tanto, es mucho más fácil para los desarrolladores inexpertos escribir código malo (pero que funcione). Pero ese es un efecto secundario de cada lenguaje fácil de aprender.
Además, PHP no aplica ningún estilo o paradigma en particular, y siempre depende de usted decidir qué hacer. Siempre he pensado en esto como algo bueno, mientras que otros lo ven como un punto válido de crítica. Tendrás que decidir por ti mismo.
PHP es bueno pero Python es material de matrimonio
PHP carece de cosas que obtienes en otros lenguajes como C # o JAVA
Si lo hace Y el lenguaje X de uso general carece de muchas cosas que obtienes en PHP. Como ser portátil en todos los sistemas operativos Y en servidores http, y soporte para todas las bibliotecas de terceros imaginables que serían útiles en un entorno de desarrollo web. Tienes que entender que PHP no carece de nada importante , si lo hubiera hecho, habría muerto hace mucho tiempo. La comparación entre el lenguaje X de propósito general y otros lenguajes multipropósito con PHP es una falacia, manzanas y naranjas. Aunque PHP ofrece algunas facilidades para respaldar la idea de que es de uso general, no lo es, es un lenguaje web.
Debe tener en cuenta que la ruta evolutiva de PHP es bastante diferente del lenguaje X de uso general : PHP creció y evolucionó, no fue diseñado. Cada vez que se agrega una característica al idioma es por necesidad real, no de acuerdo con algún ideal imaginario de lo que debería ser un idioma. Los lenguajes son, ante todo, herramientas, y PHP es perfecto como tal.
No tengo nada en contra del lenguaje X de uso general , estoy dispuesto a elegir la herramienta adecuada para el trabajo. Siempre he mezclado y emparejado, y también estoy codificando en Java y Python, a veces en paralelo con PHP. Pero PHP es el único con el que consideraría casarme. :)
Si está considerando comenzar con PHP, debería comenzar con la última versión estable, como lo haría en cualquier otro idioma.