El odio sin motivo a PHP.

Las razones que nos llevan a las personas a odiar algo son completamente irracionales, como cualquier sentimiento, pero hoy, vivimos en una sociedad donde por alguna razón extraña tenemos que formar parte del equipo de algo y formar parte de ese equipo en muchas ocasiones nos lleva a querer lo que quiere el equipo y a odiar lo que odia el equipo. Lo vemos en todo, hoy muy acentuado en fútbol o política, pero sí, también los desarrolladores hemos optado por esta tendencia, front end odia a back end y viceversa y los lenguajes de programación no se iban a librar de esta tendencia, también tienen haters.

PHP es uno de esos lenguajes que sufre el odio de muchos desarrolladores, y ojo, no digo que te tenga que gustar PHP, pero tanto como odiarlo. He oído a muchos compañeros esta frase de: "¡Uf, odio PHP! y lo mejor de todo es que muchos ni lo han tocado o muy por encima, no saben sus características y sobre todo sus utilidades y beneficios en ciertos contextos.

Los desarrolladores no podemos permitirnos odiar una tecnología, tampoco tienen que gustarnos todas, pero es bueno saber que existen y cuáles son sus particularidades para así saber si es bueno optar por una o por otra en un proyecto concreto. En el caso de PHP, sus cualidades y características y lo hacen útil en un montón de situaciones relacionadas con el desarrollo web.

Un poco de historia

PHP nace en 1994, curiosamente como un proyecto personal de Rasmus Lerdorf, de ahí que el acrónimo PHP venga de Personal Home Page Tools, estaba escrito en C y era un conjunto de scripts que servían para rastrear las visitas de su currículum online, como podéis imaginar, en aquella época, Google Analytics no estaba ni pensado. Poco a poco fue añadiendo funcionalidades como la capacidad de conectar con bases de datos y muchas más cosas. Pero no fue hasta PHP 3 donde encontramos que el lenguaje evoluciona hasta algo que hoy podamos identificar con el PHP moderno.

Una de las principales cualidades de PHP a finales de la década de los 90 era su capacidad de crear páginas webs dinámicas, dando vida a una web que por aquellos entonces era bastante estática y haciendo mucho más accesible a los desarrolladores la posibilidad de, por ejemplo, registrar usuarios o mostrar contenido condicionalmente.

La locura de PHP al inicio

Probablemente por aquí venga parte del disgusto de gran parte de la comunidad con el lenguaje y es que a principio de los 2000 el concepto de "buenas prácticas" no estaba tan extendido como hoy y al no ser PHP un lenguaje tipado y poder entrelazarse con el código HTML en línea, leer un proyecto PHP en algunos casos podía ser una locura, pero siendo sinceros, no pasa eso hoy por ejemplo con React y sin embargo la gente lo adora. Yo he visto proyectos de React que no hay por donde meterle mano, componentes de clases mezclados con funcionales, una estructura de carpetas incomprensible, componentes perdidos aquí y allí, he llegado a ver incluso un componente de React con más de 5000 líneas de código y ojo, eso en 2022.

Por tanto, que un proyecto desarrollado con una tecnología concreta sea un caos, no depende de la tecnología, si no de quien o quienes lo desarrollan y su capacidad para seguir unas buenas prácticas comunes.

Seguridad en PHP

Otro de los motivos esgrimidos para "odiar" a PHP con frecuencia ha sido la seguridad y si bien es cierto que PHP tuvo bastantes carencias en ese sentido, me da la sensación de que la gente aún tiene esa percepción de cuando era PHP 4, de hecho, PHP 5 ya surge corrigiendo gran parte de las carencias en seguridad del lenguaje y hoy estamos ya en la versión 8 de PHP, la seguridad hoy en día no es un inconveniente mayor que en cualquier otro lenguaje de programación.

Velocidad de PHP

Este es otro handicap de PHP con respecto a lenguajes compilados y es que hay que admitir que es mucho más lento que lenguajes como Java o C ya que estos lenguajes se compilan, pero la versión 8 de PHP incorpora JIT que es grosso modo un compilador en tiempo real, sin duda la mayor mejora que trae esta versión haciéndolo 5 veces más rápido con respecto a la versión 7.

A ver, es obvio que sigue siendo más lento que lenguajes compilados, ¿pero significa esto que es lento?, para nada, de echo pocas ocasiones encontrarás donde la velocidad de PHP 8 sea un handicap razonable para descartarlo a la hora de incluirlo en un proyecto, sobre todo el tipo de proyecto para el que PHP fue concebido que es la web.

Tipos en PHP

El último motivo de odio hacia PHP que trataremos hoy son los tipos. PHP no es un lenguaje fuertemente tipado, de hecho, no es hasta la versión 7 donde podemos empezar a usar tipos en PHP para proteger nuestros datos. Esto ya en realidad es algo de gusto persona, hay gente que ama los lenguajes fuertemente tipados, no es mi caso, de echo me parecen un coñazo. Para mí lo ideal realmente es que puedas tipar o no según tu conveniencia, ocurre lo mismo con Javascript, no es un lenguaje tipado y para solucionarlo, Microsoft inventó Typescript, pero incluso así, Typescript no te obliga a tiparlo todo de una manera estricta. Y lo mismo pasa con PHP, puedes tiparlo o no según tus necesidades y eso para mí es perfecto ya que ha situaciones en las que, por ejemplo, los datos que recibe una variable puede ser un string o un integer o puede interesarte cambiar el tipo de datos que contiene una variable sobre la marcha o una función puede devolverte varios tipos de datos.

En esos casos, lenguajes fuertemente tipados te obligan a escribir mucho más código y puede darte mil dolores de cabeza a la hora de compilar según qué tipo de proyecto. No es que un lenguaje no tipado no pueda darte dolores de cabeza cuando de repente ves que falla algo y es porque una variable no tiene el tipo esperado, pero si eres un desarrollador limpio que sabe lo que hace y que utiliza buenas prácticas de programación, al igual que no te dará dolores de cabeza compilar un lenguaje fuertemente tipado, tampoco te los dará programar en un lenguaje no tipado y para mí la gran ventaja es que puedes tipar o no según tus necesidades.

Evolución y ventajas de PHP

PHP ha evolucionado mucho, quizás de los lenguajes que más lo han hecho desde su nacimiento, hoy apenas echarás en falta características de muchos lenguajes de programación, por ejemplo, puedes crear interfaces, tipos de datos complejos, manejarlos a tu conveniencia y es rápido.

Pero sobre todo es un lenguaje de programación pensado para la web y eso lo hace el mejor en este aspecto para manejar el backend de un proyecto web. De hecho, yo como front end echo mucho de menos que los puntos de entrada de los empaquetadores no puedan ser, plugins a parte, archivos con extensión .php, ya que el Server Side Rendering no se complicaría tanto en muchas ocasiones.

Tenemos frameworks muy potentes como Laravel que nos facilitan mucho la vida a la hora de crear un proyecto web en PHP y que además ahora incluso cuenta con la posibilidad de integrar Vite y Vue en el proyecto de una forma muy eficiente y fácil.

Pero, sobre todo, levantar un proyecto en PHP es barato, la mayoría de hostings que puedes comprar tienen integrado Apache y PHP por precios irrisorios, de hecho en la mayoría de mis proyectos personales utilizo PHP para crear API REST que consumir desde el front end.

Conclusión, si nunca has usado o solo muy por encima PHP, pruébalo y verás que es una tecnología que te puede ser útil. Si la usaste hace años, dale otra oportunidad, pero, sobre todo, si vas a usar PHP, no uses Wordpress, odio Wordpress 😝