Una no tan breve historia de PHP

En la prehistoria

A principios de los años 90 Tim Berners-Lee estableció las bases de la World Wide Web cuando desarrolló, mientras trabajaba en el CERN, el primer servidor web (CERN httpd) y el primer navegador de la historia (WorldWideWeb, más tarde rebautizado como Nexus). Durante los primeros meses, la web consistió en una pequeña gran colección de documentos estáticos escritos en HTML, pero no pasó mucho tiempo antes de que Robert McCool y su equipo del NCSA pensaran en la posibilidad de poder responder a las peticiones del navegador con el resultado de la ejecución de pequeños programas, permitiendo así al servidor web una mayor interacción con el usuario.

Así nació en 1993 CGI (Common Gateway Interface), como parte del servidor NCSA HTTPd, que más tarde daría origen al famoso Apache. Esta tecnología, que aún se utiliza ampliamente en los servidores web debido a su sencillez, definía una interfaz común mediante la cuál el servidor web, y por tanto el cliente, podía comunicarse con un programa situado en el servidor, utilizando para ello variables de entorno predefinidas, argumentos de línea de comandos, y la entrada y salida estándar. La mayoría de estos programas estaban escritos en C o en Perl.


El nacimiento de PHP

Y así llegamos a una tarde de otoño de 1994, en la que un programador danés en paro afincado en Toronto (Canadá), Rasmus Lerdof, se pone manos a la obra para escribir un pequeño CGI en Perl que le ayude a contabilizar las visitas que llegan a su currículum vitae, guardando este valor en una base de datos mSQL. Más tarde, como el servidor web en el que se alojaba tenía algún problema de rendimiento, Rasmus decide reescribir su script en C, para ahorrarse la carga de tener que crear un nuevo proceso de Perl cada vez que alguien visitara su web.

El pequeño script de Rasmus llama la atención de otras personas alojadas en su mismo servidor, que le piden poder utilizarlo, y van sugiriendo cada vez más y más funcionalidades. De esta forma, acaba con una pequeña colección de 30 scripts distintos, que decide combinar en una única librería C.

El siguiente paso es escribir un sencillo analizador sintáctico que busque etiquetas en el código HTML y las reemplace con la salida de las funciones correspondientes de su pequeña librería. Este analizador sintáctico va aumentando en complejidad, y Rasmus añade etiquetas condicionales, etiquetas de bucles y funciones. El danés bautizó este paquete de software, junto con algunas utilidades de uso común por esas fechas, como un libro de visitas y un contador, con el nombre de Personal Home Page Tools (Herramientas para Página de Inicio Personal) o PHP Tools.

Además, de forma paralela, Rasmus empieza a desarrollar otro CGI que analizaría consultas SQL, y facilitaría crear los formularios y las tablas correspondientes. Esta herramienta se llamó FI (Form Interpreter), y al conjunto de ambos paquetes PHP/FI.

Con todo ya listo, y tras crear una lista de correo y un pequeño FAQ, el 8 de Junio de 1995, Rasmus anuncia la primera versión oficial de PHP en los grupos de noticias. Esta primera versión, publicada bajo la licencia GPL, sólo corría en servidores UNIX y carecía de características tan básicas como el bucle for.

No obstante, el número de usuarios comienza a crecer, y algunos programadores empiezan a ayudar en el proyecto. PHP y FI se combinan creando un único binario, se reescribe el analizador sintáctico, y el paquete se renombra a Personal Home Page Construction Kit (Kit de Construcción de Páginas Personales). Con esto llegamos a la publicación de PHP/FI 2.0, el 1 de Noviembre de 1997, con una base de usuarios de unas 50.000 personas.


La contribución de Zend

Con la versión 3.0, lanzada el 6 de Junio de 1998, bajo una licencia dual GPL – PHP License, el lenguaje daría un salto de gigante en cuanto a rendimiento, funcionalidad y popularidad, alcanzando el millón de usuarios. Esto fue posible en gran parte gracias a la colaboración de Zeev Suraski y Andi Gutmans, dos programadores israelíes que descubrieron PHP/FI 2.0 cuando buscaban una herramienta para desarrollar una aplicación de comercio electrónico para la universidad, y que más tarde fundarían la famosa Zend Technologies, llamada así por la contracción de sus nombres de pila.

Zeev y Andi volvieron a reescribir el analizador sintáctico de PHP y contribuyeron en la reescritura de buena parte del resto de su código. También diseñaron una nueva API que permitía crear extensiones para PHP, atrayendo así la atención de un gran número de programadores.

Otras novedades de esta versión, lanzada para Windows 95, Windows NT, Macintosh y varias versiones de UNIX, fue la introducción de una muy básica orientación a objetos, el soporte para los sistemas de bases de datos más populares, como MySQL y PostgreSQL, y la creación de un módulo nativo para Apache. Fue también en esta versión en la que el nombre del lenguaje perdió el sufijo /FI, quedando sólo en PHP, y en la que el acrónimo cambió su significado por el que conocemos hoy en día, ‘PHP Hypertext Pre-processor’ (Pre-procesador de hipertexto PHP), tras una votación de los desarrolladores, y después de un breve periodo de tiempo en que se utilizó como nombre ‘Professional Home Pages’ (Páginas de Inicio Profesionales).

El 22 de Mayo de 2000 se lanza PHP 4, basado en el Zend Engine 1.0, una máquina virtual de código abierto, bajo licencia PHP, desarrollada también por Zeev y Andi. Desde esta versión el código fuente se compila primero a un código máquina intermedio llamado bytecode, y el Zend Engine se encarga después de ejecutar este código, al estilo Java. Esto mejoró considerablemente la velocidad de ejecución respecto de la versión anterior.

Entre las novedades introducidas en PHP 4.0 también encontramos mejoras de rendimiento en la API de extensiones, una capa de abstracción que permitía a PHP ejecutarse en la mayoría de los servidores web más populares, sesiones HTTP, control de buffer de salida, el tipo booleano, mejoras en la orientación a objetos y varias construcciones nuevas. También se pasó de usar una licencia dual GPL – PHP License, a utilizar exclusivamente la licencia PHP, lo que causó un pequeño revuelo entre la comunidad open source. Y es que Rasmus y el resto de desarrolladores no veían sentido a utilizar una licencia dual, teniendo en cuenta que los usuarios solían siempre utilizar la menos restrictiva de las dos.

Las revisiones menores de PHP 4 también introdujeron mejoras interesantes, como la inclusión de las variables superglobales en PHP 4.1.0, la desactivación por defecto de la opción register_globals en PHP 4.2.0, o la posibilidad de ejecutar los scripts desde la línea de comandos y la capa de acceso a ficheros y recursos de red a través de flujos o streams en PHP 4.3.0.


Presente y futuro de PHP

El 13 de Julio de 2004, por fin, contando el lenguaje con una base de usuarios de 15 millones de dominios, se lanza PHP 5, basado en el Zend Engine 2.0, versión que haría que PHP entrara en su madurez, y lo convertiría en un lenguaje muy agradable de utilizar. El esfuerzo principal a la hora de desarrollar esta versión se centró en una muy necesaria mejora en el soporte de la orientación a objetos, muy pobre y discutida hasta ese momento, aunque también se añadieron otras características igual de importantes, como la capa de abstracción de acceso a bases de datos PDO (PHP Data Objects u Objetos de Datos PHP), SQLite por defecto, manejo de excepciones con bloques trycatch, iteradores, mejoras en el manejo de XML gracias a la extensión SimpleXML, mejoras en la velocidad y el rendimiento, y muchas cosas más.

La versión 5.3.x, la actual a la hora de escribir estas líneas, y que fue lanzada inicialmente el 30 de Junio de 2009, introdujo también características muy interesantes, inicialmente pensadas para PHP 6, como los espacios de nombres, el late static binding (enlace estático en tiempo de ejecución), closures o funciones anónimas.

Y es que la futura sexta versión del lenguaje, que venía planeándose desde mediados de 2005, viene sufriendo retrasos desde hace un tiempo, principalmente, debido a lo ambicioso del proyecto y los problemas con el soporte completo de Unicode. Tanto es así, que el desarrollo de PHP 6 se movió a una rama en Marzo de 2010, y el desarrollo continúa en el trunk, en un código basado en la versión 5.3.

Pero el futuro de PHP se presenta más brillante que nunca, no obstante, con millones de usuarios en todo el mundo y siendo utilizado en un 75% de los servidores, alcanzando el puesto de cuarto lenguaje más utilizado del mercado según TIOBE; con novedades tan útiles en un futuro próximo como los traits y con frameworks que nada tienen que envidiar a Django o Ruby on Rails, como Yii, y a Struts o Spring MVC, como Zend o Symfony.

14 comentarios en «Una no tan breve historia de PHP»

  1. Pingback: Una no tan breve historia de PHP

  2. Pingback: El Paamayim nekudotayim de PHP

  3. Pingback: Una breve historia de PHP « ForoUpiicsa.Net

Responder a andre Cancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.