Admitámoslo: los desarrolladores que llevamos años en esto hemos tenido que soportar innumerables chistes sobre el pobre elefante de PHP. Que si es un lenguaje de juguete, que si sus tipos son de plastilina, o que si se arrastra en cuanto le pides procesar algo en paralelo sin recurrir a extensiones extrañas. Sin embargo, ahí sigue, sosteniendo en silencio cerca del 75% de las webs que visitas a diario. Pero la paciencia de la comunidad tiene un límite, y con la llegada de la versión 8.5, el equipo del Zend Engine ha decidido dar un puñetazo sobre la mesa de los sistemas distribuidos. ¿El objetivo? Solucionar de una vez por todas los dos grandes dolores de cabeza de las arquitecturas empresariales modernas: la seguridad de tipos complejos en tiempo de ejecución y la verdadera concurrencia asíncrona sin trucos de magia.
(más…)Etiqueta: Concurrencia nativa
-

¿El renacer definitivo? PHP 8.6 introduce «Asynchronous Blueprints» nativos en el núcleo del lenguaje
Si eres de los que aún repite en reuniones de equipo aquello de que «PHP está muerto», lamento decirte que tu chiste ha envejecido bastante mal. Mientras el ecosistema de desarrollo se obsesiona con la velocidad de Go o la seguridad de Rust, el viejo titán de la web —el mismo que sigue moviendo cerca del 75% de los sitios de internet— acaba de dar un golpe sobre la mesa que va a cambiar las reglas del juego en la arquitectura de servidores. El equipo de desarrollo del lenguaje ha desvelado la hoja de ruta oficial para PHP 8.6, y la joya de la corona tiene nombre propio: Asynchronous Blueprints.
Para cualquiera que haya lidiado con la creación de sistemas distribuidos de alta disponibilidad, el gran talón de Aquiles de PHP siempre ha sido su naturaleza síncrona y bloqueante por defecto. Tradicionalmente, cada petición web levanta un proceso aislado que espera pacientemente a que la base de datos responda o a que una API externa devuelva un JSON. Si esa llamada tarda 500 milisegundos, el proceso se queda de brazos cruzados, consumiendo RAM y bloqueando el hilo de ejecución. Sí, teníamos parches geniales como Swoole, ReactPHP o las fibras (Fibers) introducidas en PHP 8.1, pero requerían frameworks específicos, extensiones complejas en el servidor o arquitecturas muy encorsetadas que no terminaban de encajar en el flujo de trabajo estándar de la comunidad.
(más…)
