Con la explosión de las nuevas tecnologías para la Web, ningún Webmaster sensato consideraría diseñar todo un sitio usando sólo un editor de archivos HTML. Un sitio moderno, actualizado y atractivo tiene que ser dinámico si quiere prevalecer y conquistar la red. Las soluciones disponibles para conseguirlo son muchas, pero en Linux y otros sistemas Unix se destaca PHP, el lenguaje de programación para Internet más caliente del momento, libre, gratuito y de código abierto.
Antes de comenzar, considero justo decir que este artículo tiene como objetivo presentar el lenguaje de scripts para Internet conocido como PHP, además de repasar las más importantes alternativas disponibles para la creación de contenido dinámico en la Web. Está pensado para quienes quieren conocer sus posibilidades, disponibilidad y características fundamentales; no pretende de ninguna manera ser un tutorial o curso básico. Gurús de la programación para Internet abstenerse de continuar! :)
De lo estático a lo dinámico
¿Todavía siguen aquí? Perfecto! Primero hagamos un poco de historia...
Lejos quedaron los días en los que para ser un WebMaster consumado sólo debíamos dominar la operación de un editor de páginas HTML visual o las características avanzadas de nuestro procesador de texto preferido. En sólo unos años la web pasó de sencillas y estáticas páginas HTML adornadas con archivos GIFs animados a sitios totalmente dinámicos, personalizables y capaces de manejar enormes cantidades de contenidos propios. Una visita a nuestro portal preferido nos mostrará a qué nos referimos. En lugar de millones de páginas HTML estáticas, estos sitios usan aplicaciones para recuperar sus contenidos de una base de datos, respondiendo de esta manera a las acciones del usuario/visitante dinámicamente. Para hacer posibles estas aplicaciones surgieron todo tipo de lenguajes, nuevas tecnologías y plataformas de desarrollo, en ese orden.
Por mucho tiempo fué Perl el lenguaje creado por Larry Wall, el elegido para desarrollar aplicaciones CGI para la Web, como carritos de compras, buscadores, webmails, sitios de subastas, etc. Pero a pesar de su enorme popularidad y poder, Perl no fué desarrollado desde el principio con la Web en mente, de hecho Perl significa Practical Extraction and Reporting Language, lo que nos dá una clara idea de su objetivo principal. Eventualmente se hicieron evidentes los puntos débiles de Perl para el desarrollo ágil de aplicaciones para Internet cada vez más complejas. Las nuevas tecnologías que surgieron para suplirlas se dividen básicamente en 2: las del lado del cliente y las del lado del servidor.
Qué hay del lado del cliente
Las tecnologías dinámicas del lado del cliente se basan en las capacidades de nuestro navegador para poder interpretar el contenido dinámico que le envía el servidor y mostrarlo correctamente en nuestra PC. En un primer momento esta idea puede parecer buena, porque de esta manera el servidor deja en manos del cliente gran parte del trabajo de procesamiento del contenido. Pero esto también significa que generalmente debemos disponer de última versión de nuestro navegador favorito y una PC lo suficientemente rápida para poder hacer el trabajo que le delega el servidor.
Ejemplos de tecnologías de dinámicas del lado del cliente son:
Qué hay del lado del servidor
Del lado del servidor las cosas son un poco más interesantes. Como el contenido del sitio dinámico es procesado en el servidor de acuerdo a los pedidos del cliente, nuestro navegador (y en consecuencia nuestra PC) no realiza ningún trabajo de interpretación. Esto significa que podemos usar prácticamente cualquier navegador, en cualquier plataforma, con cualquier PC (aún una 386) para acceder este tipo de sitios.
Ejemplos de tecnologías de dinámicas del lado del servidor son:
[PAGEBREAK]
Así es PHP
PHP comenzó como un conjunto de scripts Perl escritos por Rasmus Lerdorf para su página personal, allá por 1994. Hoy PHP es uno de los más exitosos proyectos de código abierto existentes, con un ejército de programadores y colaboradores guiando su desarrollo, y una empresa (Zend) brindando el soporte que requiere su aplicación comercial y corporativa.
Como mencionamos, el código PHP se integra con el HTML en el mismo archivo, y es procesado en el servidor antes de ser enviado al cliente (navegador), que recibe el resultado como un archivo HTML puro. Las secciones de código PHP se encierran entre tags especiales, de esta manera:
El archivo que incluya código PHP debe tener la extensión .php, .php3 o .phtml (de acuerdo a cómo esté configurado el servidor Web), para que el intérprete PHP sepa que tiene que procesar su contenido antes de mostrarlo. Veamos cómo se vería un típico archivo .php que nos dé la bienvenida a nuestro sitio:
Bienvenido a mi Sitio
Espero que lo disfrutes!
El código anterior muestra claramente cómo pueden intercalarse libremente el código HTML con PHP. El navegador recibirá sólo código HTML, sin que sea visible para el visitante de nuestro sitio el código PHP que lo generó (!). Pero obviamente, PHP puede hacer mucho más que sólo imprimir mensajes de bienvenida...
Qué puede hacer PHP
Como mencionamos, PHP fué creado desde el principio como un lenguaje para Internet. Esto le ha permitido adoptar constantemente las nuevas tecnologías disponibles para la red de redes a medida que surgen, y al mismo tiempo, conservar los aciertos de las alternativas precedentes, como Perl. Veamos cuáles son las principales características que brinda PHP para explotar la Web con dinamismo:
[PAGEBREAK]
El trío dinámico
PHP es entonces un poderoso lenguaje de programación para Internet, pero no deja de ser sólo eso: un lenguaje de programación. Para contar con una completa y poderosa plataforma de desarrollo de aplicaciones Web libre y de código abierto, también necesitamos, como mínimo, un servidor Web libre y una base de datos libre. (Descontamos el sistema operativo, porque ya tenemos el mejor! :)
Nuestro servidor Web de preferencia para correr PHP es Apache, el mismo que usan más de la mitad de los sitios de todo el mundo. Libre y de código abierto desde el momento de su concepción, Apache es quizás el servidor Web que los autores de PHP tienen en mente.
Si bien PHP tiene un gran soporte para toda una variedad de bases de datos, es innegable que la que es más frecuentemente usada en conjunto con MySQL. Aunque es una excelente alternativa para sitios pequeños a medianos, MySQL carece de algunas características de avanzada, como las de PostgreSQL (la otra gran base de datos libre). Sin embargo esta falta queda enmendada con creces por la abrumadora cantidad de documentación (en inglés) y aplicaciones (libres) desarrolladas con la combinación PHP/MySQL.
Estos tres componentes fundamentales (PHP, Apache, MySQL) tienen la funcionalidad agregada de ser aplicaciones totalmente multiplataforma, es decir, todos están disponibles para múltiples sistemas operativos, no sólo Linux, sino también Solaris y Windows, entre otros. Esto representa una característica única frente a otras alternativas propietarias, que generalmente sólo están disponibles para una sola plataforma en particular, y nos brinda, además, la libertad de desarrollar nuestra aplicación Web en nuestra Workstation Linux con la tranquilidad de que puede ser instalada y ejecutada en prácticamente cualquier combinación de hardware/sistema operativo que use el servidor que la albergará.
Yo quiero mi PHP
Como mencionamos, PHP es el módulo más popular de Apache, el servidor Web más usado en Internet, por lo que su disponiblidad está casi asegurada en todo proveedor de hosting de la red. PHP se incluye como parte estándar en toda distribución Linux que se precie de tal. Quienes quieran usar su última versión pueden bajársela gratuitamente de PHP.net, su sitio oficial, donde además de sus fuentes pueden bajarse versiones precompiladas para Linux y Windows, entre otras plataformas.
Ahora también es posible encontrar distribuciones de Apache/PHP/MySQL (un trío que puede ser imbatible) listas para instalarse en un sistema Linux, Solaris, Windows, etc., si es que no queremos bajarnos, compilar y configurar cada uno por separado. Estos tres componentes son libres, gratuitos y multiplaforma, por lo que estas distribuciones pre-armadas también lo son. Algunas de de ellas son AbriaSoft y NuSphere SQL, que además incluyen la última versión de Perl y utilitarios de administración como phpMyAdmin. Para los partidarios de PostgreSQL, también está GreatBridge SQL que empaqueta en una sola instalación las últimas versiones de Apache/PHP/PostgreSQL.
Por último, se están popularizando scripts de configuración, mucho más modestos que las anteriores distribuciones, que a partir de los mismos paquetes con las fuentes de Apache/PHP/MySQL que es posible bajar de sus sitios, realizan automáticamente el trabajo de configuración, compilación e instalación. Estos scripts requieren un poco más de conocimientos al hora de operarlos, pero con ellos la instalación resultante puede ser mucho más personalizada. Ejemplo de este tipo de aplicaciones son Apache ToolBox y Apache Kit.
[PAGEBREAK]
Zend, el lado comercial de PHP
Todavía hay gente que tiene sus dudas sobre si tomar en serio o no para sus desarrollos propios a una tecnología Open Source como PHP, sin una gran compañía que la respalde con su soporte, capacitación, garantía, etc. Para ellos existe la empresa Zend, que guarda estrechos lazos con PHP. Además de soporte oficial, en su recientemente inaugurado Store, se pueden encontrar productos como:
Zend IDE (U$S 250), un entorno integrado de desarrollo para PHP. Basado en una tecnología cliente-servidor, Zend IDE incluye el único debugger disponible para PHP en este momento. El cliente funciona en Windows y Linux, y el Debug Server en Linux, Solaris y FreeBSD.
Zend Encoder Unlimited (U$S 2400), convierte los scripts PHP escritos en formato sólo texto a un formato binario independiente de la plataforma. De esta manera uno podría vender su aplicación sin entregar las fuentes (Te acordás de Clipper?)
Además: Zend Cache (cachea una versión compilada del script PHP, bajando la carga del servidor y proporcionando una respuesta más rápida); Zend Launch Pad (downloads precompilados con las últimas actualizaciones de PHP); Zend Support, y más...
Los precios de las herramientas Zend están muy lejos de ser Open Source, pero su variedad, disponibilidad y poder deberían convencer hasta el más fanático detractor del software libre sobre la idoneidad de PHP para afrontar los proyectos más ambiciosos para Internet. Quienes no necesitemos más argumentos, podemos ahorranos los U$S que Zend pretende cobrar por ellos... Y no entrar en el conflicto que supone usar software libre para producir software enlatado.
Conclusión
PHP es todo lo que vimos en esta nota y mucho más. Como prácticamente cualquier proyecto Open Source exitoso, PHP tiene un enorme soporte por parte de la comunidad, la que ha aportado documentación, correcciones y una enorme cantidad de aplicaciones de gran calidad totalmente libres y gratuitas. Quienes quieran incursionar en la programación con PHP deben recordar que las expectativas actuales para un sitio exitoso van mucho más allá de la funcionalidad que puedan proveer una serie de archivos HTML estáticos linkeados entre sí. Hoy el WebMaster competitivo debe ser un WebDeveloper, capaz de desarrollar una aplicación para un sitio dinámico como si se tratara de un sistema de facturación. Con el tiempo, la próxima plataforma de desarrollo de aplicaciones no será Windows, ni Mac, ni Linux, sino Internet.
Links recomendados


Links