Facebook está programado en PHP

O por lo menos hasta hace un par de años, lo estaba. Lo podemos leer en el artículo HipHop for PHP: Move Fast.

En este artículo explican que PHP es la mejor opción porque es simple, rápido, y permite que un ingeniero se incorporé rápidamente al desarrollo:

As a programming language, PHP is simple. Simple to learn, simple to write, simple to read, and simple to debug. We are able to get new engineers ramped up at Facebook a lot faster with PHP than with other languages, which allows us to innovate faster.

Pero como necesitaban más velocidad, en Facebook desarrollaron un compilador de PHP a C++: HipHop.

FuelPHP, otro framework de PHP

FuelPHP es un framework para PHP que se anuncia como simple, flexible y desarrollado por la comunidad para PHP 5.3.

Tampoco es nuevo, ya tiene varios años, pero lo acabo de descubrir. Mientras que antes el problema era cuál elegir porque no había mucha oferta, ahora sigue estando el problema de cuál elegir, pero por la sobreabundancia de posibilidades. En la Wikipedia podemos consultar el artículo Comparison of web application frameworks – PHP y en el sitio web PHP Frameworks tenemos otra comparativa.

Las excepciones en PHP

Las excepciones son el mecanismo que ofrece muchos lenguajes de programación para controlar las situaciones de error o inesperadas que pueden surgir durante la ejecución de un código.

 PHP ofrece un mecanismo de excepciones muy similar al de otros lenguajes como C++ y Java, aunque como es algo que se ha añadido en las últimas versiones, su integración con el propio lenguaje no es completa.

En el artículo Exception Best Practices in PHP 5.3 se dan algunos consejos sobre la mejor forma de utilizar las excepciones en PHP.

Y aquí dejo el primer vídeo, PHP 5: Excepciones – Conceptos básicos, de una serie de vídeos que realicé para explicar el uso de excepciones en PHP:

[kml_flashembed movie=”http://www.youtube.com/v/EDN4At6y8Kg” width=”560″ height=”315″ wmode=”transparent” /]

Adiós a mysql en PHP

Cuidado, me refiero a la extensión tradicional de PHP para acceder a MySQL, no estoy diciendo que ya no se pueda usar MySQL desde PHP.

Esta API, la “API original”, estará obsoleta a partir del próximo PHP 5.5, y es muy probable que en PHP 6 (si alguna vez existe), no estará soportada.

En la documentación oficial lo pone bien claro:

Esta extensión está obsoleta a partir de PHP 5.5.0 y no está recomendada para escribir código nuevo, ya que será eliminada en el futuro. En su lugar, se debería utilizar la extensión mysqli o PDO_MySQL. Véase también la Información general de la API de MySQL para obtener ayuda al elegir una API de MySQL.

Y así lo pone también en el registro de cambios de esta extensión:

5.5.0 mysql_connect Esta función generará un error de nivel E_DEPRECATED.
mysql_db_name La función mysql_list_dbs es obsoleta, por lo que emite un error de nivel E_DEPRECATED.
mysql_pconnect Esta función generará un error de nivel E_DEPRECATED.
mysql_tablename La función mysql_tablename es obsoleta, por lo que emite un error de nivel E_DEPRECATED.

En la noticia deprecating ext/mysql de julio de 2011 ya se avisaba.

¿Y qué se tiene que usar en su lugar? Se recomienda PDO o ext/mysqli, y en el siguiente vídeo explico las principales características de mysqli:

[kml_flashembed movie=”http://www.youtube.com/v/4_t06hNgb1o” width=”560″ height=”315″ wmode=”transparent” /]

Peligros de PHP

El artículo PHPitfalls explica varios peligros (o cagadas) de PHP, cuando no se sabe usar correctamente.

Me ha gustado mucho el siguiente párrafo que podemos encontrar al principio de este artículo:

Because PHP is so accessible and ubiquitous, there are a lot of people copying and pasting scripts together – people who in a more perfect world would be forbidden by law from ever touching source code. Even when real developers are doing it, hacking an easy language does not absolve anybody from the responsibility of knowing what goes on inside a system behind the scenes.