Desde hace aproximadamente unos dos años he estado flirteando con alternativas a PHP, en especial NodeJS. El motivo principal ha sido conocer otras soluciones con una aproximación diferente a los problemas que plantea el entorno web en general, y la potencial mejora que supone compartir el mismo lenguaje de programación en el entorno cliente y el servidor. Python también está en la lista de flirteos, aunque debo decir que a cierta distancia.
El atractivo por NodeJS es (y en parte seguirá siendo) un enfoque diferente para la operativa en los cuellos de botella de las aplicaciones web. Al poder tratar las operaciones I/O de una forma asíncrona (eventos y callbacks), es un valor añadido en ciertos casos. El enfoque asíncrono de NodeJS permite una ejecución más fluida, que a su vez permite combinar consultas exigentes con el trabajo paralelo mientras se espera a la finalización de estas tareas. Además, una orientación a eventos, soluciones PubSub y otras características derivadas hacen pensar en NodeJS como una opción más que interesante para ciertas soluciones del entorno cloud.
PHP tiene y tendrá infinidad de defectos, pero por alguna razón es el lenguaje más utilizado para aplicaciones web. La razón es sencilla: es fácil empezar el desarrollo con PHP, no requiere una curva de aprendizaje como Java. En una palabra, funciona.
Pero la propia evolución de PHP no ha sido nada sencilla. El paso de la versión 4 a la 5 supuso un salto bastante difícil de seguir, y la introducción gradual de los Frameworks primero (empujado probablemente por actores como Ruby on Rails), y en especial de los PSR, parece haber dividido una comunidad que debate entre la necesidad de estructurar y madurar el lenguaje, o mantenerlo en ese nivel de libertad que ha tenido desde sus inicios. Probablemente la aparición de lenguajes como Ruby (y RoR) como Python ha dado más empuje a la primera alternativa. Sinceramente lo desconozco.
Por último, la aparición de HipHop primero, y de HHVM después, han dado un empuje a la velocidad de carga de las aplicaciones PHP, con una integración completa (o casi) en muchas aplicaciones del ecosistema PHP,entre las cuales destacaría algunos casos clave, como Drupal, MediaWiki y Magento 2.
Es posible que las próximas versiones de PHP incorporen más mejoras en el rendimiento. ¿El mismo que Java? Probablemente no, pero seguro que a la par con NodeJS y mejor que otros lenguajes interpretados. Dependerá del uso que se le dé. En realidad, se puede descartar a PHP por varios motivos, pero en pocos casos ése será el de su rendimiento.
No pienso en Javascript como algo que deba convertirse en un lenguaje de programación para todos los usos, pero sí para cualquiera. Si un lenguaje permite moverme en varios entornos a la vez (navegador, servidor, aplicación móvil o de escritorio con node-webkit), eso es algo de valorar si por un lado se quiere prototipar y producir un resultado sin detenerse en los detalles del tipado de datos, o en un requerimiento de un extremo rendimiento o de extrema fiabilidad en algunos procesos.
Cada proyecto es diferente, pero PHP, como afirma el artículo comentado más arriba, es lo suficientemente rápido y maduro para ser un gran candidato.
© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.