PHP no es un mal lenguaje (o al menos no es tan malo como algunos pueden sugerir). Tuve maestros que ni siquiera sabían que PHP estaba orientado a objetos hasta que les dije. He tenido clientes que desconfían de nosotros de inmediato cuando decimos que somos desarrolladores de PHP y nos cuestionan por no usar lenguajes y marcos elegantes como Django o RoR, o lenguajes "empresariales y sólidos" como Java y ASP.NET.
Facebook está construido en PHP. Hay muchos proyectos sólidos que impulsan la web como Joomla y Drupal que se utilizan en la empresa y los gobiernos. Hay marcos y bibliotecas que tienen algunas de las mejores arquitecturas que he visto en todos los idiomas (Symfony 2, Doctrine). PHP tiene la mejor documentación que he visto y una gran comunidad de profesionales.
PHP tiene características avanzadas de OO como reflexión, interfaces, y mucho menos que PHP ahora admite la reutilización horizontal de forma nativa y limpia a través de rasgos .
Hay malos programadores y script kiddies que le dan a PHP una mala reputación, pero potencian a la comunidad PHP al mismo tiempo, y debido a que es tan fácil hacer las cosas PHP, a menudo puedes hacer las cosas de la manera incorrecta, pero ¿por qué culpar a ¿idioma?.
Ahora, para resumir esto en una pregunta real: ¿cuál sería un argumento bueno, sólido, breve y dulce para evitar ser mal visto y detener los prejuicios de una sola vez y defender su honor cuando dice que es un desarrollador de PHP? .
(galleta gratis con la crema batida para aquellos con evidencia empírica de convencer a alguien —cliente u otro— en el acto)
PD: usamos Symfony , y el código termina siendo hermoso y fácil de mantener
PPS: Facebook está escrito en PHP, compilado en C ++ a través de HipHop y desplegado en Hadoop. Aquí: http://arstechnica.com/business/2012/04/exclusive-a-behind-the-scenes-look-at-facebook-release-engineering/1/
fuente
Respuestas:
La única respuesta que tengo es esta: todo apesta.
Puede encontrar toneladas de argumentos en contra de que la OOP sea buena (una búsqueda rápida los revelará) versus la programación funcional o de procedimiento. Parece indicar que el soporte OO de PHP lo defiende.
Google en blanco apesta y encontrarás resultados para cualquier cosa. Python apesta . Ruby apesta . Los rieles apestan . PHP apesta . Java apesta .
¿Quieres saber lo que realmente apesta? Programadores. Los programadores apestan. Cualquier buen desarrollador debería ser capaz de crear una aplicación increíble, front-end y back-end, independientemente del idioma, ¡incluso si no estaban familiarizados con el idioma! (Es decir, un buen programador debería poder aprender y trabajar con cualquier idioma de manera efectiva).
También tenga en cuenta que el éxito de una aplicación no tiene nada que ver con su código. He oído que el código de Facebook es horrible, pero por Dios es efectivo. Probablemente, lo mismo ocurre con Wikimedia (Wikipedia está construida en PHP y también es un sitio web extremadamente popular). ¡Lo que realmente importa son los resultados!
PHP es el lenguaje con el que estoy más familiarizado personalmente. Lo defenderé hasta la muerte. He trabajado con frameworks PHP, código PHP directo y PHP, python y ruby (e incluso Java) para el desarrollo web. No puedo decir que uno sea particularmente mejor que el otro. Lo que más importa son los desarrolladores y los algoritmos. He visto código increíblemente bueno y completamente horrible en muchos idiomas (especialmente PHP ya que tengo mucha exposición).
Ahora para su pregunta: depende de con quién esté tratando
Empresarios
Se preocupan principalmente por los resultados y la rentabilidad. El hecho de que el exitoso Facebook, Wikipedia y Wordpress usen PHP debería ser más que suficiente para convencerlos de que es un lenguaje efectivo para construir aplicaciones exitosas.
Programadores
Deja que tu código hable por sí mismo. Si un desarrollador dice que PHP es inferior de alguna manera, muéstrele algún código PHP que considere efectivo. La prueba del budín está en comer.
fuente
success of an application has nothing to do with its code
<- Cierto. Pero cuando las personas dicen que "PHP es un mal lenguaje", no quieren decir "las aplicaciones escritas en PHP son malas", sino que significan que "las aplicaciones escritas en PHP a menudo no son divertidas para trabajar debido a los espaguetis de código". Hay grandes aplicaciones escritas en PHP, para estar seguro. Pero no creo que esta respuesta aborde lo que los programadores quieren decir cuando llaman PHP "malo".PHP tiene una historia sórdida. Es mucho mejor ahora que fue hace poco tiempo, pero hubo un tiempo, un tiempo muy largo, donde se fomentaron muchas malas prácticas y patrones y fueron difíciles de evitar. Hay toda una generación de terribles códigos PHP que todavía están dando vueltas, y en la medida en que los nuevos programadores están aprendiendo al leer códigos antiguos, están aprendiendo mal comportamiento. Puede que PHP ahora no merezca su reputación de blackend, pero de todos modos se lo ganó.
Su mejor apuesta para defender PHP es distanciar y distinguir cuidadosamente el estado actual del arte de la historia con la que todos están familiarizados. Puedes decir que PHP no es un lenguaje terrible, pero si estás hablando con alguien que ha estado en la industria durante varios años, su memoria les dice lo contrario.
Muéstreles cómo el equipo de PHP aprendió de sus errores y mejoró el lenguaje. Atrás quedaron los días de citas mágicas y registros globales. Atrás quedó el paradigma global de todo, el modo seguro y mysql_escape_string. Explíqueles que los programadores PHP reales siempre usan espacios de nombres y consultas parametrizadas, evitan funciones obsoletas y siempre colocan su código de biblioteca fuera de la raíz del documento.
PHP ha cambiado y los programadores de PHP han cambiado. Es por eso que PHP es la maravillosa plataforma que es hoy. Además, es la única plataforma que sabe que sus clientes tendrán preinstalada. Eso es enorme.
Como nota al margen, recomendaría no citar los marcos y motores CMS existentes como una gran victoria para PHP. Corre el riesgo de que señalen cosas como el estudio de seguridad de Websense de hace 4 días que muestra que el 94% de las infecciones recientes del sitio web fueron contra sitios web PHP que ejecutan software como Joomla y Wordpress. Ese no es el tipo de empresa con la que quieres que te vean. En cambio, señale que su código será mucho más seguro que todas esas otras cosas.
fuente
PHP es el COBOL de la web. Ambos idiomas no son respetados, sin embargo, muchas personas se ganan la vida construyendo y manteniendo sistemas escritos en ellos, y están presentes en volumen en casi todos los principales sistemas informáticos de su mundo nativo ( es decir , la web y los negocios comerciales, respectivamente). Ambos lenguajes son menospreciados por los profesionales de otros lenguajes más populares, basados en gran medida en hábitos antiguos y obsoletos practicados por programadores que desde entonces han aprendido mejor y mejorado sus herramientas.
PHP debería ser tan afortunado que viva la vida de COBOL. COBOL ha existido por más tiempo que cualquier otra cosa que no sea FORTRAN, y no desaparecerá en el corto plazo. Existen muchos programas COBOL de uso diario que son más antiguos que las personas que los mantienen. Puede que no sea "el nuevo calor", pero siempre habrá dinero para ganar trabajando en y con él.
fuente
Creo que también puede ser útil comprender la otra cara de la moneda y reconocer la escasez de PHP. Si bien PHP ha avanzado mucho de ser un lenguaje de plantillas, todavía hay muchas cosas que podrían mejorarse. Hay algunos puntos en los que todavía falta PHP: Unicode, características funcionales, la organización de la biblioteca estándar,
array
etc.Lo que sugiero es que, para hacer una discusión constructiva sobre las fortalezas y debilidades de PHP, podría ser bueno reconocer todo esto. "Sí, sé que la biblioteca estándar de PHP no está muy organizada. Pero si se escribió hoy, podría hacer uso de espacios de nombres y API orientadas a objetos". "Sí, sé que la matriz predeterminada hace un poco de desorden al mezclar las estructuras del diccionario y la matriz. Pero si uno quiere algunas mejores colecciones, puede utilizar el SPL".
Su punto de vista resultará más fuerte si demuestra que sabe que los argumentos de los demás tienen alguna razón.
fuente
¿Por qué?
Cualquiera que te haga sentir que tienes que defenderte (ya sea carrera, cónyuge, hábitos de gasto, etc.) está perdiendo su propio tiempo. Tomar el tiempo para defenderse es simplemente burlarse del tipo equivocado de personas: ahora está perdiendo su propio tiempo y el de ellos.
Elimina a estas personas de tu vida: estarás mejor sin ellas.
fuente
No hay una frase breve y dulce que puedas revelar para convencer a la gente de la valía de PHP y sus desarrolladores, pero escribiste un argumento muy convincente justo antes de hacer la pregunta.
fuente
Para abordar el tema "PHP es un lenguaje incorrecto", debe averiguar por qué la persona en cuestión piensa que es un lenguaje incorrecto. Quizás trabajó en un mal proyecto escrito en PHP. Tal vez no le gusta prefijar sus variables
$
. Tal vez ellos mismos han intentado usar el lenguaje y han escrito un desorden insostenible. Muchos programadores que provienen de otros lenguajes de programación ven PHP y ven un desorden, porque lo que tiene sentido en PHP no tiene sentido en otro lenguaje o en otras plataformas. Por ejemplo, en PHP, las matrices son la "cinta adhesiva del universo" y se utilizan para lograr prácticamente cualquier cosa, mientras que en otros lenguajes de programación tal cosa sería absurda.Sugeriría una combinación de las respuestas aquí.
create_function
. Se fue la jungla de llamarinclude
manualmente a todas partes.free
, y todo es "OO-ish", pero el tiempo de ejecución es grande y OO puede ser limitante. C ++? Le permite crear tipos que se comportan exactamente como los tipos primitivos (por ejemplo, int) en el lenguaje, pero eso conlleva una gran cantidad de complejidad. PHP? Hace que sea muy fácil comenzar sin muchos conocimientos de programación, pero como resultado tiene muchísimo código basura publicado en Internet.Hay un lugar para cada idioma. Elija el idioma que se adapte al problema en cuestión, no intente calzar un idioma preferido en lugares donde no pertenece.
fuente