Facebook se fue al carajo

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

http://vivaphp.com.ar/soft/compilador-php-de-facebook

http://vivaphp.com.ar/soft/facebook-hyper-php

Share

Leave a Reply

Your email address will not be published. Required fields are marked *