¿La gran mayoría de las personas odian PHP únicamente porque otras personas lo hacen?

Hay muchas razones por las cuales las personas “odian” PHP, o al menos lo desprecian. Algunos de ellos son fundados, otros no, y algunos son circunstanciales.

1.) “Pajar / aguja inconsistente”

Se escucha a mucha gente golpeando sobre una aguja de pajar inconsistente, pero esto se puede leer con una sola regla:

matriz: aguja, pajar
cuerda: pajar, aguja

Es tan simple como eso, pero la gente a menudo olvida y asume que es más complicado.

Referencia


2.) PHP es un archivo HTML, con lógica

PHP asume que el archivo será HTML primero, lo que puede conducir a algunos problemas estúpidos de salida donde el espacio en blanco se cuela antes o después de esas etiquetas . Hay algunos planes para cambiar eso, pero puede causar problemas y recuerda a todos que PHP tiene un historial de “creación de plantillas primero, programación posterior”.

Nuevo tipo de archivo para secuencias de comandos PHP de código puro: https://wiki.php.net/rfc/phpp

3.) Sin estándares

Hay un millón de marcos con un millón de estándares, las personas pelean por snake_case v camelCase y no tienen planes claros sobre lo que es correcto. Eso significa que las personas que vienen de Ruby a PHP (dicen que tienen que construir una biblioteca PHP para una API REST que acaban de construir) no tienen idea de qué hacer. He visto mucho este problema, pero PHP-FIG (anteriormente conocido como PHP Standards Group) está trabajando en eso.

PHP-FIG: https://github.com/php-fig/fig-s…
Grupo de Google: https://groups.google.com/group/…

4.) Falta de paquetes de calidad

NPM, Bundler / Gems, PIP, CPAN, etc., proporcionan paquetes de código de calidad para que los desarrolladores se conecten a su código, lo que significa que pueden escribir menos y hacer más. PHP no tiene un sistema de paquetes consistente que no sea PEAR, que es una bestia envejecida que la mayoría de las personas ignora debido a la baja calidad o vejez de los paquetes.

PSR-0 (parte de PHP-FIG) es un estándar que se ha generado para ayudar a que los paquetes de código trabajen juntos, y Composer es un proyecto que se ha creado para hacer el manejo de dependencias de estilo NPM para PHP. Con el tiempo veremos un aumento en la calidad, lo que significa que cada desarrollador reconstruirá mucho menos código incorrecto una y otra vez, y se puede ahorrar mucho más tiempo en lugar de que los desarrolladores trabajen en soluciones fragmentadas “específicas del marco”.

Paquetes: El camino a seguir para PHP: http://philsturgeon.co.uk/blog/2…
Compositor: http://getcomposer.org

5.) Concepto erróneo

Conozco a un grupo de desarrolladores de Ruby increíblemente inteligentes que solían usar PHP en los 4 días de PHP, y parecen pensar que nada ha cambiado. PHP 4 a 5 fue un salto masivo y PHP 5.2 a PHP 5.3 fue otro salto ENORME (después de todo, PHP 5.3 estaba destinado a ser PHP 6, pero trasportaron todas las características distintas de Unicode que no funcionaría).

El hecho de que anden diciéndoles a todos sus amigos de Ruby que PHP no tiene “método_perdido” (lo hacemos, se llama __call ()) y se quejan de otras cosas que ya no existen, o que han sido mejoradas o agregadas, eso significa mucho de las personas que se ríen de PHP se ríen de una versión de PHP de 7 años. Alguien dijo que PHP era terrible por no tener un servidor integrado como Ruby … bueno, sí.

Servidor web integrado en PHP: http://php.net/manual/en/feature…

6.) Lo estabas haciendo mal

“Puedes mezclar MySQL, HTML y PHP en los mismos archivos. ¡PHP es asqueroso!”

He dicho lo mismo sobre ColdFusion y cortésmente me explicó que lo estaba haciendo mal. Este es un buen punto. El hecho de que un idioma sea lo suficientemente flexible como para permitirte hacer lo que quieras no lo hace malo.

La estructura proviene de un marco. No conozco a muchas personas que usan Ruby que no usan Sinatra o Rails, y no conozco a muchos tipos de Nodo que no usan Express, CanJS, etc.

7.) Elitismo

No usar PHP es genial. ¿Quién quiere usar el mismo idioma que usó cuando comenzó a escribir código cuando era niño? ¿Quién quiere usar algo que tiene montones de niños de script terribles que lo usan? No debe ser un desafío, no es lo suficientemente inteligente para un programador inteligente como usted.

Necesitas algo que te desafíe y cualquiera que use PHP simplemente no es lo suficientemente inteligente como para aprender algo más …

Odio mucho ese punto de vista. En el ascensor de hoy, al entrar, mi colega escuchó una conversación de dos desconocidos: “No puedes confiar en estas tiendas PHP, ¿por qué no aprenden un idioma real?”. Esto cubre muchas de las opiniones de las personas que lo rodean, y si no es elitista, al menos es miope.

Entonces, ¿por qué la gente todavía usa PHP?

Si nada mas; Impulso

Las últimas estadísticas de W3Techs muestran que casi el 78% de los principales millones de sitios están construidos con PHP. Ahora, aunque puedes oler la calidad del lenguaje en sí, no puedes oler eso.

http://w3techs.com/technologies/…

Soy competente en PHP, Ruby, Python y he incursionado en NodeJS. ¿Por qué estoy usando PHP? Porque tiene el mercado más grande.

Muchos desarrolladores quieren perseguir “el lenguaje perfecto”, “el IDE perfecto”, “la plataforma de alojamiento perfecta”. La respuesta es que no hay una herramienta perfecta, solo opciones. Nadie debería estar “odiando” a ninguno de ellos.

No sé acerca de la mayoría de los que odian, pero puedo hacer con confianza las siguientes dos declaraciones sobre PHP:

  • PHP ha merecido históricamente una gran parte del odio dirigido a él.
  • Desde PHP 5.3 / 5.4, se ha transformado como un lenguaje y merece otra mirada.

Claro, PHP funciona como un lenguaje de plantillas si así lo desea, y sí, algunas de las funciones de procedimiento heredadas tienen una API inconsistente. También es muy posible escribir código terrible con PHP, como siempre fue. Es muy permisivo como idioma, y ​​me gusta mucho esa filosofía.

Pero la introducción de un marco orientado a objetos adecuado que incorpora métodos mágicos, espacios de nombres y cierres, así como algunas de las nuevas anotaciones, el servidor de prueba incorporado y el administrador de dependencias Composer, han hecho una gran diferencia. Se siente como una plataforma significativamente más madura para construir aplicaciones web modernas.

Por supuesto, la web ha avanzado, y los tipos de aplicaciones que PHP puede manejar de manera competente se basan en aproximadamente 2007 / 2008. Todavía no maneja muy bien el desarrollo impulsado por eventos, y las aplicaciones en tiempo real son un dolor en el cuello. Vale la pena ver los marcos como Photon, pero no creo que ninguno de ellos esté listo para el horario estelar todavía.

Sin embargo, en estos días hay mucho poder bajo el capó, y dada su enorme base de apoyo, definitivamente sigue siendo un competidor.

Diría que para muchas personas, esta es la razón principal para odiar a PHP. Nadie puede negar que haya problemas con PHP, pero ese no es el punto. Hay problemas con todos los idiomas (lenguaje inteligente, PHP tiene muchas peculiaridades).

Es demasiado fácil

Al final, creo que todo se reduce a esto: PHP es muy fácil de comenzar y esta es la razón por la cual hay tantos novatos en la comunidad PHP.

Obviamente, no es genial ser parte de esa multitud y preferirías asociarte con personas que codifican en Python, Ruby, NodeJS, Go y similares.

Entonces, aunque muchos de los que odian PHP no tienen idea de los desarrollos actuales en PHP, se suben al carro y comienzan a enviar spam.

PHP? Depende …

Mi principal argumento en contra de los que odian PHP (o cualquier lenguaje) es este:

Como ingenieros de software, solucionamos problemas y tenemos una gran variedad de herramientas disponibles para hacerlo. Algunas herramientas son mejores que otras para un trabajo específico, pero eso no viene al caso. Si tenemos una opción, debemos elegir la herramienta que sea mejor para el trabajo y no la que más nos guste. A veces, tomamos esta opción, pero un profesional de software creará una solución hermosa con cualquier herramienta.

Dicho esto, creo que en muchos casos PHP es una de las mejores herramientas para el trabajo. Obviamente no para la línea de comandos, SO, GUI, etc., sino para la web. PHP fue construido únicamente por esta razón y se nota.

Facilidad de configuración, implementación, velocidad (en comparación con otros lenguajes de secuencias de comandos), bibliotecas y marcos comunitarios y posiblemente el mejor administrador de dependencias.

En mi opinión, Python es más hermoso y está mejor diseñado que PHP, y esta es la razón por la que me gusta tenerlo en mi repertorio de lenguajes de programación. Para la web, sigo eligiendo PHP (especialmente para código abierto), debido a las razones que dije anteriormente *.

Una última analogía

Nací en Alemania y, como todos, mi entorno me influyó mucho. Después de la secundaria, empecé a viajar mucho y aprendí mucho sobre otras culturas e idiomas. Dejar mi entorno normal me permitió reflexionar sobre él de manera más objetiva y al final (o eso espero) terminé convirtiéndome en una mejor persona.

Me alegra saber C, Java, Javascript, Ruby y Python además de PHP. Me hizo un programador menos asqueroso. También tengo que admitir que estoy muy, muy contento de no haber comenzado con PHP, porque desaprender los malos hábitos es difícil, pero estoy muy contento de tenerlo en mi cinturón de herramientas, porque PHP es uno de mis mejores (pero lejos de mis herramientas más queridas).

* y en este caso, para ser honesto, también porque mi conocimiento del entorno de Python, por ejemplo, herramientas, bibliotecas, marcos, no es tan profundo como el de PHP

More Interesting

¿Cuáles crees que son las razones principales por las que la mayoría de los equipos de ingeniería son tan homogéneos?

¿Qué puede suceder si un terrorista desarrolla un software súper AI con control total sobre él?

¿Hack Reactor sería útil para un europeo que intenta conseguir un trabajo en Londres / Berlín / Barcelona (ya que no puedo en los EE. UU. Por problemas de visa)?

¿Puede un ingeniero de software hacer sus carreras en IA, Big Data, HCI?

¿Puede alguien que no puede escribir un programa limpio obtener un doctorado en ingeniería de software?

¿Qué software de pedido / inventario está más orientado, por lo que para Amazon recomendaría como un arranque / menor costo para comenzar? Incorporación a un software más avanzado / costoso en el futuro.

¿Cuál es la mejor estrategia para que un cliente tranquilo haga un seguimiento de los clientes en línea?

Soy graduado de Ingeniería de Software, trabajé como administrador web antes y recientemente comencé a trabajar como desarrollador web (soporte). ¿Estoy en el camino correcto?

¿Qué carrera profesional ofrece un mejor crecimiento y seguridad laboral en el punto de un estudiante de ECE, desarrollo de productos de software o desarrollo de productos integrados?

¿Cuál es la mejor solución de analizador de correo electrónico disponible?

¿Puedo cambiar a su dominio después de tener 1 año de experiencia en el dominio de telecomunicaciones?

¿En qué punto tienes que tener tus propios servidores?

¿Cuál es la mejor manera de abordar el lanzamiento de una nueva reunión tecnológica?

¿Qué es el proceso de revisión en las pruebas de software?

¿Cuál es una breve explicación de la sintaxis de RegEx?