Es mas que conocido que el gigante de las redes sociales trabaja incansablemente para hacer escalar su aplicación (realizada en gran parte con PHP y un core en C) para dar soporte a los millones de usuarios que tiene reduciendo sus costes de Hardware y Conectividad. Desde hace un par de meses atrás vengo leyendo que facebook se traÃa algo entre manos con PHP pero nadie sabÃa que estaba haciendo, se hablaba de un compilador y de una reescritura completa del interprete de PHP, si lo piensan en frÃo se darán cuenta de la locura que puede ser hacer esto.
Ayer leyendo Viva PHP me entero que el equipo del core de PHP fue invitado a las oficinas de Facebook para que estos les muestren en lo que estaban trabajando y que el martes serÃa la presentación general de este trabajo, bueno estamos a martes y salio a la luz para revolver la comunidad PHP como nunca antes lo habÃa visto.
Los locos de Facebook se mandaron un producto llamado HipHop, este es un traductor de lenguaje, si si lo dije bien, no es un compilador ni un interprete, es un traductor, algo no muy extraño en el mundo del desarrollo pero poco visto últimamente. La idea es traducir el código PHP (lenguaje de scripting, dinámico y debilmente tipado) a código C++ (lenguaje compilado, estático y fuertemente tipado). Esto obviamente hará ganar al nuestros servers muchisimo tiempo de procesamiento dado que evitaremos la interpretación por cada ejecución de los scripts PHP y permite que un lenguaje tan sencillo y hermoso como PHP sea convertido a un código tan óptimo como el de C++. Según las estimaciones de la gente de Facebook la ganancia en sus servers es de un 50% de CPU, lo que me parece muy probable y una guarangada.
La idea es desarrollar la solución con PHP y una ves terminada traducirla y compilarla con g++, dicho producto compilado tendrÃa empotrado su propio web server por lo que no necesitariamos mas de Apache (al menos para servir las paginas). Esta alternativa compitirÃa directamente con soluciones como APC y PHC.
Aparentemente también existe otro producto llamado HPHPI que harÃa algo similar pero sin tener que realizar el proceso de compilación.
Que es lo malo de todo esto, por que no todo es color de rosas, aparentemente ciertas funcionalidad de PHP serÃan sacrificadas por la imposibilidad de ser convertidas, no esta muy claro cuales son dichas funcionalidades pero la mas nombrada es la función eval, lo que para los sysadmins no serÃa algo critico dado que es una función sumamente insegúra y una de las que mas recursos consume en los servidores, pero muy utilizadas por productos muy conocidos como Joomla y otros.
Es muy interesante ver este tipo de soluciones que atacan a una de las problemáticas y criticas fundamentales de PHP, la escalabilidad. Para la mayorÃa de los desarrollos que realizan los programadores PHP normales (pequeños y medianos sitios) esto no será un hecho relevante, pero para los grandes sitios será algo mas que provechoso dado que con la incorporación de dicho producto podrán ganar altos grados de procesamientos en sus datacenter actuales.
En fin, no seguiré detallando mas sobre el tema dado que en menos de 24 hs ya esta invadida la internet con el mismo, pero me gustarÃa cerrar con una gran felicitación al equipo de ingenieros de facebook por el logro, me saco el sombrero ante ustedes, y como dirÃa Wayne
“We are not worthy!!!!!”
Aqui unos links para que continuen viendo sobre el tema:
http://developers.facebook.com/news.php?blog=1&story=358
http://blog.echolibre.com/2010/02/hiphop-for-php-facebook-unveils-its-magic/
http://blog.tabini.ca/2010/02/hiphop-what-you-need-to-know/
Previos
Leave a Reply