HipHop para PHP ( HPHPc ) es un transpilador de PHP descontinuado creado por Facebook . Al utilizar HPHPc como compilador de fuente a fuente , el código PHP se traduce a C++ , se compila en un binario y se ejecuta como ejecutable , a diferencia de la ruta de ejecución habitual de PHP, que consiste en transformar el código PHP en códigos de operación e interpretarlo . HPHPc consta principalmente de códigos fuente C++, C y PHP, y es un software gratuito y de código abierto distribuido bajo la licencia PHP .
La motivación original detrás de HipHop era ahorrar recursos en los servidores de Facebook, dada la gran base de código PHP de facebook.com. A medida que avanzaba el desarrollo de HipHop, se dio cuenta de que HipHop podía aumentar sustancialmente la velocidad de las aplicaciones PHP en general. Se han observado aumentos en el rendimiento de generación de páginas web en factores de hasta seis en comparación con Zend PHP. [4] [5] [6] [7] [8] Un objetivo declarado de HPHPc era proporcionar un alto nivel de compatibilidad para Zend PHP, donde la mayoría de los programas PHP basados en Zend se ejecutan sin modificaciones en HPHPc. [6] HPHPc fue originalmente de código abierto a principios de 2010. [1]
Como complemento a HPHPc, los ingenieros de Facebook también crearon un "modo de desarrollador" de HipHop (versión interpretada de un motor de ejecución de PHP, conocido como HPHPi ) y el depurador de HipHop (conocido como HPHPd ). Estas adiciones permiten a los desarrolladores ejecutar código PHP a través de la misma lógica proporcionada por HPHPc y al mismo tiempo hacen posible depurar el código PHP de forma interactiva definiendo relojes , puntos de interrupción , etc. La ejecución del código a través de HPHPi produce un rendimiento menor en comparación con HPHPc, pero los beneficios para los desarrolladores fueron , en ese momento, valía la pena tener que mantener estos dos motores de ejecución para producción y desarrollo. HPHPi y HPHPd también fueron de código abierto en 2010. [1]
Según muchos, HPHPc cumplió sus objetivos, especialmente dentro de Facebook, ya que permitió que facebook.com funcionara mucho más rápido y utilizara menos recursos. Sin embargo, a principios de 2013, Facebook dejó de utilizar HPHPc en favor de HipHop Virtual Machine (HHVM), que es un motor de ejecución basado en compilación justo a tiempo (JIT) para PHP, también desarrollado por Facebook. [2] [9] Hubo muchas razones para esto; uno de ellos fue la curva aplanada de HPHPc para mejorar aún más el rendimiento. Además, HPHPc no era totalmente compatible con el lenguaje PHP, incluidas las construcciones create_function()
y eval()
, e implicaba un proceso de implementación específico que consumía tiempo y recursos y requería compilar y distribuir un binario de más de 1 GB a muchos servidores en poco tiempo. Además, mantener HPHPc y HPHPi en paralelo (como debían ser, para la coherencia de los entornos de producción y desarrollo) se estaba volviendo engorroso. Finalmente, HPHPc no fue un reemplazo directo de Zend, lo que requirió que los clientes externos cambiaran todos sus procesos de desarrollo e implementación para usar HPHPc. [2]