¡Dejen de decir que PHP está muerto!

¡Dejen de decir que PHP está muerto!

He has an idea and wants to translate it into starting a business, but there is a problem: he has little money to invest. And for most people with entrepreneurship, getting the much needed capital is usually one of the biggest challenges …


He estado escribiendo esto por un tiempo. Ajustando aquí y allá, pero no podía decidir cuándo publicar. Con el reciente lanzamiento de PHP 8, “ahora” parecía el momento adecuado.

Todos los meses sale un artículo, un comentario o un tweet que dice que PHP está muriendo y que deberíamos dejar de usarlo. Si ve una pregunta en algún otro foro o en Stack Overflow sobre cómo aprender PHP, existe una probabilidad de casi el 100% de que alguien responda diciendo algo como: “¿Por qué querría aprender PHP? Aprenda algo interesante como <insertar-cool-language-that-isnt-php-here> ”.

En mis años como programador, he escrito varias cosas en PHP, entre otros lenguajes, y, en su mayor parte, simplemente he ignorado gran parte de ese lado de la conversación. Durante casi todos esos años, PHP “ha estado muriendo” y debería haber dejado de usarlo hace años. Sin embargo, cada vez hay más para aprender sobre PHP.

Puede pasar muchas horas aprendiendo otros lenguajes hasta casi me convencerse con la ocasional pieza anti-PHP bien escrita. Pero al final, deberá admitir que esas aventuras dieron grandes resultados. Aunque probablemente nunca usé muchos de ellos profesionalmente, aprenderá mucho sobre ser programador con solo aprender otro lenguaje.

Si hay algo para extraer de esta publicación, debería ser: “aprender otro idioma”, pero no porque “php esté muriendo”, simplemente no es cierto. Debería aprender otro idioma porque es bueno para usted como programador. Si PHP realmente estuviera muriendo, entonces seguro, tendría una razón para seguir adelante, pero ahora mismo, en este momento, no está muriendo.

Una de las primeras cosas que muchos programadores de PHP mencionarán cuando intenten defender sus elecciones, es uno de esos gráficos que muestran cuán popular es PHP en la web. Aunque esos números son muy interesantes, tengo la tendencia a creer que son un poco engañosos. Sería un error ignorar el hecho de que PHP es popular debido a WordPress. Lo ame o lo odie, WordPress es la razón por la que todos estamos aquí. Pero WordPress es… bueno… WordPress. Tiene muchas (y me refiero a muchas) fallas, pero conozco (y soy amigo de) mucha gente que hace muchas cosas increíbles, y mucho dinero, usando WordPress.

PHP no es WordPress. Y, aunque WordPress está firmemente cimentado en el libro de historia de PHP, PHP es mejor que WordPress, MUCHO mejor. Hay muchos problemas con WordPress y con PHP, pero eso no significa que sea una mala elección para todos los proyectos. Probablemente no estaría escribiendo mis aplicaciones web en C ++ (o al menos estaría MUY abajo en la lista de lenguajes para esos proyectos), pero eso no convierte a C ++ en un mal lenguaje. Simplemente no es adecuado para ese trabajo de la misma manera que yo no estaría usando PHP para escribir controladores de hardware ni nada relacionado con la IA. está muy lejos de su timonera.

La elección del lenguaje también tiene mucho que ver con lo que usted sabe. Como dice el viejo refrán: “el tiempo es dinero” y, en la mayoría de los casos, adoptar un nuevo lenguaje para un proyecto es una gran empresa que pondría más presión en los plazos que, por lo general, ya son ajustados. Sé de Python, pero también sé de PHP. Probablemente podría hacer las mismas cosas en Python, pero ciertas cosas podrían llevarme el doble de tiempo (al menos al principio) o viceversa. No significa que no usaré Python en absoluto, o que tenga algo en contra de Python, solo significa que PHP podría ser mi opción.

Aprender un lenguaje en realidad no es tan difícil y un programador experimentado podría captar la esencia de un idioma en un fin de semana. Pero eso no significa que conozcan el idioma. Conocer un lenguaje de programación no se trata solo de saber qué función incorporada hace qué, se trata de tener suficiente experiencia para saber CUÁNDO usar qué funciones, o cómo encaja el ecosistema.

Sé PHP, pero también sé cómo configurar un servidor web Nginx y cómo configurar FPM u opcache; Tengo el conocimiento suficiente para tomar decisiones inteligentes sobre las dependencias; Sé cómo implementar de forma segura aplicaciones PHP en producción y soy consciente de los problemas de seguridad que podrían presentarse si no tengo cuidado con la forma en que uso ciertas funciones del lenguaje. Estas cosas son más que simplemente “conocer” un lenguaje. Como programadores, invertimos una gran cantidad de tiempo en aprender estas cosas que a menudo se encuentran fuera de los lenguajes que elegimos.

Por eso es realmente decepcionante cuando otro programador me dice que mi elección de lenguaje es “m**rda”. Es decir, ha pasado X cantidad de tiempo mejorando en esta tecnología, pero ahora esta persona está diciendo que su elección fue incorrecta.

Bueno, no está mal. PHP le ha dado a más de uno una carrera con la cual estar feliz. Vivir en una casa bonita y conducir un gran coche porque han pasado mucho tiempo volviéndose realmente buenos en esto.

Muchos de los que dicen “odiamos PHP y pensamos que debería morir” mencionan una serie de cosas que creen que hacen de PHP una mala elección en todos los aspectos. Algunas de esas cosas que hemos estado escuchando durante años y se basan en versiones de PHP muy distantes (no sé por qué todo el mundo todavía está tan centrado en PHP 4, en serio). Otras cosas son simplemente infundadas y falsas. Esta no es una diatriba de “mi lenguaje es mejor que el tuyo”, y creo sinceramente que cada lenguaje de programación tiene un propósito. Las personas que traen estas cosas al mundo, generalmente lo hacen por una buena razón. Los lenguajes de programación generalmente no ocurren por error.

 

Entonces, ¿por qué PHP?

La respuesta es simple: porque estaba ahí. Soy autodidacta y aunque poseo títulos de formación formal, una hoja de papel con un sello de una universidad no determina si puedo o no ‘decirle’ a las computadoras qué hacer.

En mi experiencia puedo decir que basta con ‘jugar’ con las computadoras y el código por un buen tiempo, no es obligatorio tener esa pasión en la educación. Basta con tener gusto por las computadoras e Internet.

Creo que la mayoría de los programadores llegan a PHP por la misma razón: Por querer una forma de hacer que un sitio web hiciera más que mostrar una imagen y un párrafo de texto. La emoción de descubrir cómo sacar cosas de una base de datos y mostrarlas en una página web. ¡Es increíble! Esto es exactamente lo que se necesita para sumergirse de cabeza.

Entonces, dar con WordPress. Y como cualquier otro ladrón frente a la pantalla de una computadora con algunos conocimientos básicos de PHP, WordPress cambia todo. Esto es genial, ¿o no?

WordPress debe su éxito a personas que quieren un blog pero no tienen un extenso conocimiento para crearlo por sí mismos.

Instaló WordPress… Luego agregó un complemento y cambió el tema … Luego hizo un pequeño cambio en el tema para que hiciera otra cosa, o se viera un poco diferente. Luego modificó un complemento. Luego hizo su propio tema. Entonces pensó: ¿Qué más puedo hacer?

“PHP es demasiado fácil. Debería aprender algo difícil “.

Una de las principales razones por las que PHP es tan popular es porque es muy ubicuo. Está instalado en casi todas partes. Demonios, incluso su MacBook promedio viene con PHP preinstalado (aunque parece que cambiará en una versión futura de MacOS).

También es muy fácil escribir PHP desde el principio. Por lo general, no es necesario que haga nada especial. Cree un archivo index.php y coloque una sola línea de PHP en él y cárguelo en prácticamente cualquier cuenta de alojamiento compartido:

<?php
echo 'Hello, World!';

Y está listo. Comenzar con PHP es realmente fácil porque realmente no necesita saber también cómo hacer que PHP funcione. Casi siempre ya está hecho por usted.

Sin embargo, si puede creerlo, esta “facilidad de uso” es en realidad una de las quejas sobre PHP. La teoría dice que si PHP es tan fácil, entonces también es muy fácil escribir código realmente peligroso en PHP.

¿Se sugiere entonces que los lenguajes que son más difíciles de usar tienen menos probabilidades de usarse para crear código incorrecto? Leí en alguna parte que algo así como el 70% de los parches que Microsoft lanza para Windows son para abordar problemas de memoria introducidos debido a C ++ (pero no me citen sobre eso). Dudo que las personas que escriben C ++ para Microsoft sean aficionados y estoy bastante seguro de que sepan lo que están haciendo. Sí, Windows es mucho más complejo que el sitio web de un carrito de compras promedio, pero creo que el argumento es válido. No estoy de acuerdo con que PHP sea fácil de usar y sea lo que lo haga peligroso. Python es altamente considerado como amigable para principiantes, pero no tiene la misma reputación de “peligroso”. Es fácil escribir código peligroso en CUALQUIER lenguaje. No es el lenguaje lo que hace que el código sea peligroso, es la falta de conocimiento.

“Fácil” no es una razón para disuadir a los principiantes de aprender PHP, sino más bien, una razón para darles a esos principiantes mejores herramientas para tomar mejores decisiones sobre el código que escriben. Es una razón para ayudarlos a encontrar los recursos adecuados para aprender PHP correctamente. Aunque haya escrito una buena cantidad de código “peligroso”, habrán personas bien ubicadas en su vida (no siempre programadores PHP) que le ayudarán a descubrir dónde mejorar.

 

PHP es lento

Bueno, eso no es cierto. PHP es tan rápido o lento como el código que escribe. PHP es un lenguaje de secuencias de comandos, por lo que no tiene sentido compararlo con los lenguajes compilados, sin embargo, por alguna razón, se ve a personas comparar PHP con Rust o Go. Esas simplemente no serán comparaciones valiosas. Probablemente sea mejor compararlo con Python o Ruby, pero la “velocidad” de un lenguaje depende de varios factores diferentes. El lenguaje en sí, sí, pero también su entorno; qué código está ejecutando, cómo está configurado el intérprete, etc. Decir que PHP es lento sin contexto es falso.

PHP es definitivamente lento con respecto a ciertos tipos de tareas. Por ejemplo, PHP probablemente no sea su primera opción si está trabajando en el espacio del aprendizaje automático (aunque hay algunos proyectos muy interesantes que se muestran prometedores).

A veces, verá puntos de referencia entre dos idiomas diferentes que hacen lo mismo, como recorrer un millón de registros y hacer un cálculo simple. Los resultados suelen tener una diferencia de milisegundos. Esto a veces se usa para mostrar que PHP es lento (o rápido, en algunos casos). Si está escribiendo software en el que unos milisegundos adicionales al recorrer un millón de registros serían desastrosos, entonces tal vez esté haciendo las preguntas incorrectas.

 

WordPress es malo

Sí, estoy un poco de acuerdo. No soy el mayor fan de WordPress en estos días, pero también estoy dispuesto a admitir que sin WordPress probablemente no existiría el tipo de comunidad PHP que tenemos hoy.

Sin embargo, también es malo juzgar un lenguaje debido a una sola pieza de software. Es como decir que C ++ es un lenguaje inadecuado porque no le gusta Microsoft Windows.

PHP no es un pony de un solo truco y WordPress es solo un lado de la historia de PHP. Hay muchos marcos y paquetes para elegir si esa es la forma en que le gustaría ir. A Laravel se le ha atribuido el mérito de “hacer que PHP vuelva a ser genial”, y tengo que admitir que el marco es, con mucho, uno de mis favoritos y una opción fácil para mí para la mayoría de los proyectos.

No es justo culpar a PHP por los recelos de WordPress. Se podría argumentar que WordPress fue un reflejo de las limitaciones de PHP, pero eso fue hace mucho tiempo, y el lenguaje ha madurado mucho desde entonces.

 

PHP no está preparado para empresas

¿Por qué? Realmente no entiendo de dónde viene esto. Pero es uno grande. ¿Qué hace que un lenguaje esté “preparado para la empresa”? ¿Cómo es que un lenguaje está más preparado para la empresa que otro? Java es probablemente uno de los lenguajes más populares en el espacio empresarial, pero no porque Java en sí esté preparado para empresas. Es debido a la existencia de la plataforma Java EE. Por lo que tengo entendido, Java EE es una plataforma en la que se crean aplicaciones empresariales. Suena un poco como un marco, ¿verdad? Entonces, tal vez la pregunta debería ser “¿está <my-favourite-php-framework> empresarial?”

La respuesta a esa pregunta es para una publicación completamente diferente. El punto que estoy tratando de hacer es que PHP como lenguaje está tan “preparado para la empresa” como cualquier otro lenguaje. Depende enteramente de cómo lo use.

 

PHP no escala

Este es el único que tiene quizás un hilo de verdad, pero es más complicado de lo que piensas. En verdad, PHP puede escalar sin problemas, si escribe un código decente. Cuando la gente dice que PHP no escala, generalmente se refieren a la idea de que las aplicaciones escritas en PHP podrían no ser capaces de manejar una gran cantidad de solicitudes (como en millones). La cuestión es que todavía no es tan simple y creo que muchos de los conceptos erróneos provienen de WordPress, que hasta hace poco era bien conocido por tener problemas de escalabilidad.

Como prueba, Slack, la plataforma de mensajería que intentó reemplazar el correo electrónico, tiene millones de usuarios, todos los cuales se conectan todos los días a un sistema cuyo backend está escrito en PHP. Si esa no es una historia de cómo PHP puede escalar, entonces no sé qué es. Mucha gente cita a Facebook como un buen ejemplo, y aunque creo que Facebook probablemente todavía usa PHP de alguna forma, creo que probablemente hayan alejado gran parte de su aplicación de PHP. Pero, para ser honesto, Facebook es un caso un tanto especial.

No se puede hablar de escalabilidad sin hablar también de infraestructura. Si está alojando un blog de WordPress en un alojamiento compartido simple y de repente recibe decenas de miles de visitas… bueno, eso probablemente podría ser un problema y su anfitrión le enviará un correo electrónico desagradable, o al menos le facturará mucho más. de lo que esperabas.

Escalar una aplicación implica mucho más que la elección del idioma. Hay muchas partes móviles y es frustrante cuando PHP se lleva la mayor parte de la culpa. Las versiones más nuevas de PHP, en el entorno adecuado y configuradas correctamente, son más que capaces de manejar una gran cantidad de solicitudes por segundo. Laravel Vapor, que es una plataforma sin servidor propia para aplicaciones Laravel que se ejecutan en AWS, tiene cifras realmente impresionantes.

A veces pienso que la cuestión de la escalabilidad también es un poco exagerada. En mi experiencia escribiendo cosas en PHP, nunca he tenido que lidiar con “millones de solicitudes” por segundo. Ni siquiera cerca. La mayoría de nosotros no vamos a construir el próximo Facebook, no importa cuánto nos guste soñar con hacer precisamente eso. En realidad, creamos aplicaciones mucho más específicas. Trabajamos con industrias específicas, a menudo en países específicos y nunca tenemos que preocuparnos por atender más de unos pocos cientos de solicitudes por segundo. Para muchos de los proyectos en los que estamos involucrados, eso sería grande. No significa que lo que hacemos no sea importante, solo significa que no necesitamos pensar en ese tipo de escala. Escalar aplicaciones para atender millones de solicitudes no forma parte de nuestro día a día normal.

 

PHP es feo

Tienes que estar bromeando. Dejé lo más irritante para el final. Si está seleccionando su pila de tecnología en función de lo agradable que se ve, entonces lo está haciendo mal y necesita reevaluar seriamente sus opciones.

Pero aún así, realmente no creo que sea cierto. Probablemente se deba a la antigua práctica de usar PHP directamente en HTML (lo que es feo). La cosa es: realmente ya no hacemos eso. De hecho, está seriamente mal visto.

No estoy diciendo que los llamados “lenguajes bonitos” sean malas elecciones, pero definitivamente no debería ser su factor determinante. Java es francamente feo, pero es uno de los lenguajes más populares del mundo. Argumentar en contra del uso de PHP porque es feo es una tontería.

PHP probablemente no es el lenguaje más hermoso, pero encuentro que es bastante legible cuando está bien escrito. Y PHP 8 trae algunas herramientas realmente geniales para ayudar a que su código sea aún más “hermoso”.

 

Me encanta PHP

Realmente lo hago. Amo el lenguaje y el ecosistema. Me encanta cómo ha ido mejorando en los últimos años. PHP 8 no es solo otra iteración del mismo lenguaje. Con cada lanzamiento importante obtenemos herramientas mejores y más útiles.

Me encanta que PHP sea fácil de empezar, pero también me encanta que sea complejo y, en realidad, hay mucho que saber para ser considerado un programador PHP profesional. Me encanta Symfony y Laravel y creo que la gente detrás de ellos es tan responsable de impulsar el lenguaje como el equipo central de PHP.

Pero sobre todo me encanta ser programador. No solo en PHP, sino que me encanta crear cosas en cualquier idioma que utilice. Me encanta el hecho de que puedo decirle a las computadoras qué hacer y que me enseñé a mí mismo cómo hacerlo. Sin PHP, no sé qué estaría haciendo ahora. Pero, en cambio, puedo hacer algo que me encanta hacer, usando un lenguaje que me encanta usar.

Recent Post