¿Porqué elegir PHP para crear aplicaciones web?

¿Por qué aprender PHP?
PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Se usa principalmente para la interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+. (Wikipedia)
En cuanto al desarrollo de aplicaciones web se trata, son muchos los artículos que pueden encontrarse por la red proclamando las virtudes ésta o aquella tecnología. Lejos de caer en la tentación de hacer una defensa acérrima de una opción concreta, vamos a intentar dar un paso atrás para distanciarnos de lo que nos es conocido, y buscar un punto de vista objetivo que nos ayude a elegir la herramienta adecuada para cada caso.

¿Qué alternativas existen?

Si nos disponemos a realizar una aplicación web, lo primero que habremos de hacer será elegir las tecnologías que usaremos para llevar a cabo el desarrollo. En este punto nos daremos cuenta de que las principales alternativas que nos encontramos son las siguientes:

JAVA
.NET
PYTHON
RUBY
PHP
JAVA y .NET

Tanto en Java como en .Net las curvas de aprendizaje que tiene que sobrellevar el programador inicialmente son bastante fuertes. El caso en el que Java y .Net muestran su potencial completamente y marcan una gran diferencia con respecto a sus competidores, es en el desarrollo de aplicaciones empresariales.

Nos encontramos por lo tanto, que si lo que nos traemos entre manos es el desarrollo de una aplicación web para una pyme, por ejemplo un pequeño ERP o CRM, una tienda on-line, un blog, o una web personal con cierta funcionalidad, la elección de Java o .Net (aun que sea completamente válida) se nos queda un poco grande, porque no estaremos aprovechando su verdadero potencial, tendremos que hacer frente a un periodo de aprendizaje duro, y nos encontraremos con un proceso de desarrollo considerablemente lento.

En el caso de elegir tecnologías .Net, además, tendremos que tener en cuenta el gasto generado por el licenciamiento de un servidor Windows que aloje la aplicación y tal vez el del gestor de base de datos (en caso de elegir alguna alternativa de pago como SQL Server o similar).
PYTHON, RUBY y PHP

Python, Ruby y PHP (entre otros) son tecnologías de desarrollo muy ágiles, cuyas curvas aprendizaje son muy suaves, y que cubren con solvencia la mayoría de los casos que nos vamos a encontrar. Y aunque «en teoria» no puedan competir con Java y .Net en el desarrollo de grandes aplicaciones, toda regla tiene su excepción, y en este caso nos encontraremos con una lista de excepciones bastante interesante. ¿Sabíais, por ejemplo, que Facebook está desarrollado en PHP?

También conviene pensar en las facilidades que nos encontraremos a la hora de poner en producción una aplicación desarrollada en php, ruby o Python, ya que existen multitud de servicios de alojamiento (gratuitas y de pago) que disponen de servidores con las especificaciones necesarias para soportar este tipo de aplicaciones.

¿Entonces, sirve o no sirve PHP para desarrollar grandes aplicaciones?

Existe la creencia de que PHP no es válido para desarrollar grandes aplicaciones que tengan que soportar un gran numero de usuarios concurrentes y que tenga que cumplir con la necesidad estar en alta disponibilidad. Se suele decir que «una imagen vale más que mil palabras», pero en este caso sería más adecuado decir que «un ejemplo vale más que mil palabras», y ese ejemplo es nada más y nada menos que Facebook.

A continuación podeis encontrar el enlace a un interesante post del blog de desarrolladores de Facebook. En el mismo se explica cómo han optimizado en el rendimiento de PHP para dar respuesta a las exigentes necesidades que tiene una aplicación de la envergadura de Facebook.

En el post, básicamente, se explica que han creado un pre-compilador, llamado HipHop, que traduce PHP a código C++ optimizado, y cómo tras ello han conseguido un considerable ahorro en tiempo de CPU de los servidores. Cito textualmente:

Menos CPU significa menos servidores, lo que significa menos gastos generales. Este proyecto ha tenido un impacto tremendo en Facebook.
Pero dejando de lado los detalles técnicos me gustaría destacar el primer párrafo del post, que apoya la idea que defendemos en este articulo:

Uno de los valores clave de Facebook es moverse rápido. Durante los últimos seis años, hemos sido capaces de lograr mucho gracias al rápido ritmo de desarrollo que PHP ofrece. Como lenguaje de programación, PHP es simple. Fácil de aprender, fácil de escribir, fácil de leer y fácil de depurar. Somos capaces de conseguir nuevos ingenieros mucho más rápido con PHP que con otros lenguajes, lo que nos permite innovar más rápido.
¿De todas formas, es el caso de Facebook una excepción?

No, no lo es. Haciendo una pequeña búsqueda por Internet se pueden encontrar varios ejemplos de aplicaciones de cierta envergadura desarrolladas en PHP. A continuación mencionamos algunos:

¿Cómo sacar el máximo provecho a PHP?

Después de haberse acercado a PHP por primera vez y haber logrado cierta experiencia, el siguiente paso natural es investigar los frameworks de desarrollo existentes para PHP, tales como Symphony o cakePHP.

Estos frameworks ofrecen funcionalidades que con pocos comandos hacen «scaffolding» sobre el esquema de base de datos, generan automáticamente las clases necesarias y las típicas operaciones de CRUD (create, update, delete). Y disponen, así mismo, de «helpers» (ayudantes) para crear formularios web y otras muchas tareas. Todo ello, hace que el tiempo de desarrollo (ya de por si reducido) se vea reducido aún más.

¿Y ahora qué?

Si después de leer esto, quereis introduciros en el Desarrollo Web con PHP todavía estáis a tiempo de apuntaros en los cursos de PHP organizados por CEIN en Pamplona e impartido por Ainara Bilbao.

Curso PHP (Nivel Iniciación) Del 26 al 31 de Octubre.
Curso PHP (Nivel Medio) Del 10 al 14 de Diciembre.

Más información e inscripciones
Raúl Mayo
Teléfono: 848425503
Email: rmayo@cein.es

Glosario (fuente Wikipedia)

ERP (Enterprise Resource Planning)
Sistemas de Información Gerenciales que integran y manejan muchos de los negocios asociados con las operaciones de producción y de los aspectos de distribución de una compañía en la producción de bienes o servicios.
CRM (Customer Relationship Management)
Sistemas informáticos de apoyo a la gestión de las relaciones con los clientes, a la venta y al marketing.
Alta disponibilidad (High availability)
Protocolo de diseño del sistema y su implementación asociada, que asegura un cierto grado absoluto de continuidad operacional durante un período de medición dado. Disponibilidad se refiere a la habilidad de la comunidad de usuarios para acceder al sistema, someter nuevos trabajos, actualizar o alterar trabajos existentes o recoger los resultados de trabajos previos. Si un usuario no puede acceder al sistema se dice que está no disponible. El término tiempo de inactividad (downtime) es usado para definir cuándo el sistema no está disponible.
Scaffolding
Técnica soportada por algunos frameworks MVC (modelo-vista-controlador) en la cual el programador escribe una especificación que describe la base de datos. El compilador usa dicha especificación para generar código que la aplicación usa para crear, leer y actualizar entradas de la base de datos. Se utiliza la especificación inicial como un «andamio» sobre el cual crear una aplicación eficaz y potente.

Esta entrada fue publicada en Curso y etiquetada , . Guarda el enlace permanente.

5 respuestas a ¿Porqué elegir PHP para crear aplicaciones web?

  1. Carlos Teixeira dijo:

    Aquí dejo un artículo interesante, que explica la tecnología que hay detrás de facebook. No conviene centrarse siempre en el mismo ejemplo, pero es el más significativo.

    http://royal.pingdom.com/2010/06/18/the-software-behind-facebook/

    Y la gran ventaja de todo esto es que proyectos que se aprovechan de alternativas open source pueden ser escalados a pequeñas empresas, aprovechando el código generado, depurado, revisado, testeado, mejorado, optimizado …muchas más palabras terminadas por ado… por empresas referentes del sector. Ahí está el auténtico avance.

  2. Facebook principalmente usa PHP, se puede saber por el /home.php, maneja PHP con MySQL, tienes toda la razón.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s