hack00

Probablemente Facebook sea el sitio más grande que corre PHP y ahora se le ha ocurrido desarrollar su propia versión del lenguaje, el cual le han llamado, apropiadamente, Hack. Es claro que tanto Facebook como otros sitios, necesitan muchas veces escalar el lenguaje para que éste pueda con las necesidades impuestas. Probablemente por ello los programadores de Facebook se pusieron a trabajar en un mejor PHP.

Ya la red social había puesto a disposición de todos herramientas internas de código abierto para que PHP fuese mejor. La primera de ellas fue HipHop o HPHPc, un compilador de PHP a C. Más tarde se movieron a la creación de una máquina virtual HipHop o HHVM y dejaron atrás HPHPc y el proyecto asociado a éste. HHVM era tan rápido como el compilador JIT (Just in Time) para PHP 5.4

HHVM empezó corriendo PHP convencional, pero permitió a Facebook extender el lenguaje. Ahora las extensiones del mismo han ido tan lejos que prácticamente hablamos de un nuevo lenguaje, Hack, que corre sobre HHVM. La clave es que es tipificado estáticamente y esto parece ser un mundo de diferencia con PHP en muchos sentidos.

Hack ha sido usado en Facebook por el tiempo suficiente y es ahora código abierto, con codigo fuente, desde luego, con la máquina virtual HHVM. Hay algunas herramientas que se incluyen para hacer la conversión incluso más fácil. Hack se construyó sobre PHP por lo que la mayoría de los programas en PHO pueden correr como si fuesen programas de Hack, pero hay algunas funciones y características que tienen que ser quitadas. Para convertir un programa en una forma más apropiada para Hack, se necesita añadir los tipos, pero esto puede hacerse gradualmente. Si se especifica un tipo para un parámetro, esto quiere decir que se obliga al uso de la regla. Si no se especifica el tipo, entonces se trata como un tipo dinámico como usualmente se usa en PHP.

Además de los tipos estáticos, Hack tiene otras novedades. Por ejemplo, un conjunto de colecciones que trabajan con tipos estáticos y con genéricos. Cada diseñador de un lenguaje favorece la expresión Lambda, la cual se ha añadido y que se dice que es mejor que lo que PHP con closures hace, porque automáticamente trabaja con las variables que se necesitan.

Una característica importante es que Hack soporta comandos asíncronos al mejor estilo de C#. Se pueden declarar funciones como asincrónicas (async) y llamarlas con await -ésta es la mejor manera de hacer programación asíncrona. Otra característica que es interesante es la herencia múltiple, aunque siendo sincerons, nunca he visto una sola aplicación que la necesite pero bueno, ahí está, para quien crea que puede sacarle jugo.

Pero si revisamos Hack, en realidad no es un nuevo lenguaje, es más bien un PHP mucho mejor, digamos, una actualización importante del antiguo PHP. Juega el mismo rol que juega CoffeeScript con JavaScript. La realidad es que Facebook está casado con PHP y no se puede deshacer de él fácilmente. Por ello el hecho de que hayan incrementado las capacidades de PHP solamente hablan de las necesidades que tiene la red social para seguir creciendo en su plataforma.

Se puede descargar Hack. Hay tutoriales interactivos incluso. Facebook está organizando el Hack Developer Day para promover el lenguaje.

Referencias:

Hack

Enlaces Patrocinados
Comentarios