PHP, casos de éxito y comparativas con otros lenguajes

10
Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web 18 de enero de 2015 Página 1 de 10 Estudio: PHP comparativas y casos de éxito INTRODUCCIÓN Los lenguajes de programación que se ejecutan en un servidor para proveer dinamismo a una página web son muy diversos, básicamente la mayoría de lenguajes existentes tienen alguna adaptación para permitir crear páginas web. El mayor debate hoy en día es por qué el lenguaje PHP es el más difundido y adoptado en Internet ya que es el lenguaje con el que se han creado cerca del 82% de los sitios web, por ello, este estudio pretende dar a conocer las alternativas existentes a este famoso lenguaje, así como presentar ejemplos de las principales implementaciones que fueron hechas usan- do PHP y que pueden considerarse como casos de éxito. 1. LENGUAJES PARA SERVIDORES Cuando se habla de una arquitectura cliente-servidor, existen tecnologías que se usan en ambos elementos, tanto en el cliente como en el servidor, una de las tecnologías que comúnmente se usan en estos entornos son los lenguajes de programación, por lo que habrá lenguajes específicos para ser ejecutados en un servidor, es decir, las peticiones de procesamiento de información no provienen del mismo equipo, sino que son peticiones hechas por usuarios de otros equipos (clientes). La primera tecnología para páginas web de este tipo fue CGI (Common Gateway Interface), con el que se ejecutaban aplicaciones desarrolladas por ejemplo en C, las cuales devolvían un resultado en un lenguaje apto para la web. Sin embargo, uno de sus problemas era en rendimiento ante mu- chos usuarios simultáneos así como en seguridad, ya que era bastante riesgoso que se pudieran eje- cutar acciones no deseadas; por ello se ideó una forma de que un único proceso atendiera a todos los clientes simultáneos, así fue como surgieron los servlets, que además de solventar dichos proble- mas, evitaba ejecutar programas del sistema operativo. Las necesidades fueron creciendo y adicio- nalmente a ello se presentó el problema del desarrollo de grandes proyectos que resultarían costosos a lo largo del tiempo, por lo que se crearon lenguajes que se pudieran incluir en las mismas páginas web para ser interpretados y pre- compilados, estos fueron los lenguajes de scripts (Wikipedia, 2014). A continuación se resumen brevemente las principales tecnologías empleadas para realizar computación en el lado del servidor, sin em- bargo, PHP no aparece en esta lista ya que se reservará un apartado especial para mencionar- lo más a detalle debido a su gran importancia. Ilustración 1. Tasa de uso de tecnologías en el servidor. Fuente: w3techs.com

Transcript of PHP, casos de éxito y comparativas con otros lenguajes

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 1 de 10

Estudio: PHP comparativas y casos de éxito

INTRODUCCIÓN

Los lenguajes de programación que se ejecutan en un servidor para proveer dinamismo a una página

web son muy diversos, básicamente la mayoría de lenguajes existentes tienen alguna adaptación

para permitir crear páginas web. El mayor debate hoy en día es por qué el lenguaje PHP es el más

difundido y adoptado en Internet ya que es el lenguaje con el que se han creado cerca del 82% de

los sitios web, por ello, este estudio pretende dar a conocer las alternativas existentes a este famoso

lenguaje, así como presentar ejemplos de las principales implementaciones que fueron hechas usan-

do PHP y que pueden considerarse como casos de éxito.

1. LENGUAJES PARA SERVIDORES

Cuando se habla de una arquitectura cliente-servidor, existen tecnologías que se usan en ambos

elementos, tanto en el cliente como en el servidor, una de las tecnologías que comúnmente se usan

en estos entornos son los lenguajes de programación, por lo que habrá lenguajes específicos para ser

ejecutados en un servidor, es decir, las peticiones de procesamiento de información no provienen

del mismo equipo, sino que son peticiones hechas por usuarios de otros equipos (clientes).

La primera tecnología para páginas web de este tipo fue CGI (Common Gateway Interface), con

el que se ejecutaban aplicaciones desarrolladas por ejemplo en C, las cuales devolvían un resultado

en un lenguaje apto para la web. Sin embargo, uno de sus problemas era en rendimiento ante mu-

chos usuarios simultáneos así como en seguridad, ya que era bastante riesgoso que se pudieran eje-

cutar acciones no deseadas; por ello se ideó una forma de que un único proceso atendiera a todos los

clientes simultáneos, así fue como surgieron los servlets, que además de solventar dichos proble-

mas, evitaba ejecutar programas del sistema operativo. Las necesidades fueron creciendo y adicio-

nalmente a ello se presentó el problema del desarrollo de grandes proyectos que resultarían costosos

a lo largo del tiempo, por lo que se crearon

lenguajes que se pudieran incluir en las mismas

páginas web para ser interpretados y pre-

compilados, estos fueron los lenguajes de

scripts (Wikipedia, 2014).

A continuación se resumen brevemente las

principales tecnologías empleadas para realizar

computación en el lado del servidor, sin em-

bargo, PHP no aparece en esta lista ya que se

reservará un apartado especial para mencionar-

lo más a detalle debido a su gran importancia.

Ilustración 1. Tasa de uso de tecnologías en el servidor.

Fuente: w3techs.com

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 2 de 10

1.1. ASP .NET (Active Server Pages .NET)

La versión anterior fue simplemente ASP, sin embargo a partir de 2002 fue lanzada la versión .Net

utilizando el Common Language Runtime, lo que permite crear páginas web usando cualquier len-

guaje admitido por el .Net Framework. En realidad las Active Server Pages son un ambiente de

aplicación abierto y gratuito en el que se puede combinar código HTML, scripts y componentes

ActiveX del servidor para crear soluciones dinámicas y poderosas para el web (Wikipedia, 2015).

Actualmente ASP.Net tiene tres modelos de programación, con lo cual se pueden crear aplica-

ciones basándose tanto en un solo modelo como en los tres, de forma que se tengan aplicaciones

híbridas. El modelo ASP.NET Web Forms permite un gran nivel de abstracción por su modelo de

programación basado en eventos y controles, lo que facilita y agiliza el desarrollo. El modelo

ASP.NET MVC permite un modelo de programación basado en la arquitectura MVC, además de

ello tiene una completa integración con pruebas unitarias. Y finalmente el modelo ASP.NET Web

Pages permite un modelo de programación más simple y rápido de aprender para crear páginas web

pero incluyendo la funcionalidad y flexibilidad de ASP.NET, es el ideal para los que vienen de otras

tecnologías o inician el aprendizaje.

ASP.Net tiene diversas limitaciones, entre las cuales se pueden destacar:

Necesariamente requieren ser ejecutadas sobre un servidor me Microsoft IIS.

Aún para necesidades sencillas es preciso escribir una gran cantidad de código.

Se impone un cierto orden sobre para escribir la página, lo que beneficia en tener un código

más limpio, mientras que en ASP tradicional es lo contrario, puede ser un tanto desorgani-

zado el código, lo que abre las puertas a tener malas prácticas de programación y dificultar

la mantenibilidad.

Por el contrario, entre las ventajas que se le pueden destacar están:

Se pueden crear rápidamente aplicaciones web basándose en la multitud de controles exis-

tentes, lo que ahorra tiempo al momento de escribir código.

Excelente para crear aplicaciones multicapa ya que permite separar completamente la inter-

faz de la lógica de negocios.

La integración de AJAX es muy sencilla.

1.2. JSP (Java Server Pages)

Las Java Server Pages son una forma alternativa de crear servlets1, ya que el código JSP se traduce

a código de servlet Java la primera vez que se invoca y en adelante es el código del nuevo servlet el

que se ejecuta, produciendo como salida el código HTML que compone la página web de respuesta.

Es decir, las páginas JSP son traducidas a servlets en tiempo real, el cual se guarda en caché y es

rehusado hasta que la JSP original es modificada (Wikipedia, 2014).

Las ventajas que se pueden resaltar de JSP son:

Ya que Java es un lenguaje de propósito general, se puede separar en niveles las aplicacio-

nes web y en múltiples plataformas.

1 Un servlet es una clase en Java usada para ampliar las capacidades de un servidor web, ya que se ejecuta en

el servidor y no en el cliente.

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 3 de 10

Las páginas son compiladas a servlets, los cuales a su vez son compilados a código máqui-

na a través de la máquina virtual, lo que hace que se tenga mejor desempeño que otras tec-

nologías.

1.3. Perl (Pratical Extracting and Report Language)

Perl es un lenguaje de propósito general que es utilizado para una amplia variedad de tareas, inclu-

yendo administración de sistemas, desarrollo web, programación en red, desarrollo de GUI y más.

Para ser más precisos, Perl es un lenguaje interpretado, optimizado para el procesamiento de archi-

vos de texto plano, que extrae información de ellos e imprime reportes en base a esa información.

Por ejemplo en el caso de páginas web se ha usado como lenguaje de scripting, es decir, se ha usado

para escribir scripts2 CGI (Wikipedia, 2014).

Perl permite de forma sencilla la generación de páginas web dinámicas, lo cual masificó su uso

para la web, por lo cual se han creado distintos módulos y bibliotecas orientadas a distintos temas

Web.

1.4. Ruby

Ruby es un lenguaje de programación interpretado, dinámico, multi-plataforma y orientado a obje-

tos, con sintaxis similar a Python y Perl. Es un lenguaje que se distingue porque permite una gran

productividad del programador gracias a un enfoque hacia la simplicidad, menos código, menos

errores, mayor facilidad de mantenimiento, y sin necesidad de compilación. (Yabar Aizcorbe,

2007).

Ruby tiene un gran framework para aplicaciones web llamado Ruby on Rails (conocido como

RoR), es decir, un conjunto de programas y librerías que ayudan a desarrollar y unir los diferentes

componentes de un proyecto web. Ruby on Rails sigue el paradigma MVC. Además de su arquitec-

tura Modelo Vista Controlador, Rails ofrece módulos como como Action Mailer (para enviar correo

electrónico), Active Resource (para crear recursos REST), AJAX on Rails (para fácil integración

de AJAX), también incluye jQuery, Gemas(plugins para implementar rápidamente nuevas funcio-

nalidades), soporte para servidores web, bases de datos, etc. (Wikipedia, 2015).

1.5. ColdFusion

Perteneciente a Adobe, ColdFusion sirve para crear sitios web complejos y de alto tráfico, pues está

diseñado para correr en máquinas multi-procesador y en clusters de servidores. Los scripts escritos

en ColdFusion correrán de la misma manera en cualquier navegador web y entre sus principales

características destacan su excelente integración con archivos pdf, Ajax, .Net y el servidor Exchan-

ge. ColdFusion es ejecutado en un servidor que lleva el mismo nombre (Wikipedia, 2015).

1.6. Erlang

Es un lenguaje de programación orientado a la concurrencia que incluye una máquina virtual y bi-

bliotecas. Así nace un framework llamado Erlyweb que permite realizar de forma sencilla sitios

web usando el lenguaje Erlang, un framework de este tipo facilita el seguimiento de fallos y agrega

estabilidad y robustez permitiendo crear sitios web escalables de una forma fácil (Wikipedia, 2015).

2 Un script es un archivo almacenado en formato de texto plano que contiene un conjunto de órdenes para

realizar diversas tareas como combinar componentes, interactuar con el Sistema Operativo o con el usuario.

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 4 de 10

1.7. Python

Python es un lenguaje de programación interpretado de tipado dinámico, multiplataforma y multi-

paradigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida,

programación funcional (Wikipedia, 2015).

Por una parte se encuentra el famoso Django, un framework de desarrollo web de código

abierto, escrito en Python, que respeta el paradigma conocido como Model Template View que faci-

lita la creación de sitios web complejos haciendo énfasis en el re-uso, la conectividad y extensibili-

dad de componentes, el desarrollo rápido y el principio “No te repitas” (Don’t Repeat Yourself –

DRY). Django facilitan el desarrollo rápido de páginas orientadas a contenidos e incluye aplicacio-

nes para sistema de comentarios, sindicar contenido vía RSS y/o Atom, y un sistema de redirección

de URLs (Wikipedia, 2014).

Por otra parte también existe CubicWeb, otro framework de código abierto para el desarrollo

de aplicaciones con funciones integradas de web semántica, escrito en Python y con principios de

programación orientada objetos. El framework está formado por componentes (clases programadas

en Python) llamados cubos, que pueden ser reutilizados para construir sistemas más complejos (Wi-

kipedia, 2015).

1.8. Scala

Scala es un lenguaje de programación multi-paradigma que integra características de lenguajes fun-

cionales y orientados a objetos y que corre en la máquina virtual de Java, por lo que es compatible

con las aplicaciones Java existentes (Wikipedia, 2014).

Para este lenguaje fue creado un framework libre para páginas web llamado Lift, el cual se creó

como alternativa de Ruby on Rails. Lift fue diseñado para crear proyectos de alto rendimiento, esca-

lables y de alta concurrencia. Entre las características que se le pueden destacar son: Resistente a

vulnerabilidades comunes; Alto rendimiento y escalado que mejoran los niveles de tráfico; Así co-

mo la creación rápida de proyectos con fácil mantenimiento. Un ejemplo de desarrollo con Lift es

Foursquare (Wikipedia, 2014).

1.9. Smalltalk

Smalltalk es un lenguaje de programación, orientado a objetos y con tipado dinámico. Este lenguaje

es de los primeros lenguajes orientados a objetos, y en él todo es un objeto, incluso los números

reales o el propio entorno. Smalltalk ha influenciado a Java y Ruby, y de su entorno han surgido

muchas de las prácticas y herramientas de desarrollo promulgadas actualmente por las metodologías

ágiles (Wikipedia, 2015).

De Smalltalk nace el framework de código abierto Seaside, enfocado a crear aplicaciones web.

Seaside tiene una arquitectura basada en componentes, por lo que las páginas web se construyen

como árboles de componentes individuales, por lo que cada porción de la página se puede encapsu-

lar como un componente. Seaside implementa la característica “Continuación” que proporciona un

mecanismo para la restitución y reanudación, que resulta útil cuando se actualiza la página o se usa

el botón “atrás” del navegador, de forma que se pueda continuar el flujo de procesamiento. En

Seaside el código HTML debe ser generado mediante programación ya que no ofrece el uso de

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 5 de 10

plantillas, lo cual es un beneficio pues se puede separar en gran medida el contenido (HTML) de la

presentación (CSS) (Wikipedia, 2014).

1.10. Groovy

El lenguaje de programación Groovy (basado en Java) está orientado a objetos, con características

similares a Python, Ruby, Perl y Smalltalk. Es implementado sobre la plataforma Java pero también

puede usarse de manera dinámica como un lenguaje de scripting (Wikipedia, 2013).

También Groovy tiene un framework libre para el desarrollo de aplicaciones web llamado

Grails, el cual resulta altamente productivo, pues sigue paradigmas como la de no te repitas (DRY),

así mismo proporciona un entorno de desarrollo estandarizado y oculta gran parte de los detalles de

configuración al programador. Inicialmente era conocido como Groovy on Rails pero tuvo que

cambiar su nombre. Sus características más destacables son: Usa tecnologías de Java como Hiber-

nate y Spring; Tiene un entorno de desarrollo orientado a pruebas; Proporciona al usuario una am-

plia variedad de funcionalidades que normalmente resultarían complejas e inconsistentes en su

construcción manual (Wikipedia, 2014).

1.11. Otros lenguajes

Como se puede leer, son pocos los lenguajes nativos diseñados para crear aplicaciones web, sin

embargo, también se presentaron algunos ejemplos de adaptaciones de otros lenguajes para dicho

fin haciendo uso de frameworks que facilitan el desarrollo, la lista que se mostró aquí de frame-

works es corta y solo se enlistan sobre los principales lenguajes, ya que en realidad son muchos más

los que se pueden encontrar para otros lenguajes.

2. EL LENGUAJE PHP

PHP (PHP Hypertext Preprocessor) está entre los lenguajes más usados actualmente y principal-

mente en las páginas web, sin embargo actualmente es un lenguaje de propósito general. A conti-

nuación se indica brevemente sus principales características (Minera, 2010):

1. Es open source: Lo cual amplia considerablemente sus posibilidades al poderlo usar para

cualquier fin y de cualquier forma que se desee.

2. Es multiplataforma: Disponible para los principales sistemas operativos del mercado.

3. Soporte para múltiples bases de datos: Destaca por su alta compatibilidad con MySQL, sin

embargo soporta una amplia variedad de bases de datos, y con su conector ODBC se puede

acceder a muchas más.

4. De rápido aprendizaje: Es un lenguaje muy simple, ya que aprender los fundamentos lleva

poco tiempo y profundizar en algunos temas no es tan difícil.

5. Es tecnología abierta: Ya que no pertenece a una empresa comercial, las mejoras son pro-

puestas, guiadas y desarrolladas por la comunidad, por lo que benefician a todos.

6. Capacidad de expansión: Usando otros módulos se puede aumentar su potencial.

Es un lenguaje interpretado basado en scripts que no necesita ser compilado para ejecutarse. Su

sintaxis se basa en los lenguajes C, Java y Perl, también fue uno de los primeros lenguajes que se

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 6 de 10

podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que

procesara los datos. Al día de hoy PHP es considerado como uno de los lenguajes más flexibles,

potentes y de alto rendimiento, razón por la cual sitios con alto tráfico como Facebook, lo han ele-

gido como su tecnología de servidor (Wikipedia, 2015).

Actualmente PHP se puede ejecutar bajo los servidores web Apache, IIS (Internet Information

Server), PWS (Personal Web Server), AOLServer, Roxen, OmniHTTPd, Oreilly Website Pro,

Sambar, Xitami, Caudium, Netscape Enterprise Server, THTTPD, entre otros (Minera, 2010).

Aunque originalmente PHP estaba orientado a la creación de sitios webs, actualmente se pue-

den crear aplicaciones con una interfaz gráfica para el usuario, utilizando alguna extensión como

PHP-Qt, PHP-GTK, WxPHP, WinBinder, Roadsend PHP, Phalanger, Phc o HiP Hop VM, inclusive

desde la línea de comandos se puede usar con PHP-CLI.

PHP no obliga a seguir una metodología para programar, aun haciéndolo, el programador puede

aplicar en su trabajo cualquier técnica de programación o de desarrollo que le permita escribir códi-

go ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han

hecho del patrón de diseño Modelo Vista Controlador (MVC), que permiten separar el tratamiento y

acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes

(Wikipedia, 2015).

Dentro de las desventajas que se podrían

mencionar de PHP es que el manejo de errores

no es tan sofisticado como por ejemplo en

ColdFusion o ASP, además de que no existe un

IDE o Debugger.

Así pues cabe destacar que PHP ha tenido

una gran adopción, tanto así que entre 2004 y

2010 se mantuvo en el 4to lugar de los lengua-

jes de programación más populares. Sin em-

bargo actualmente ha descendido y se encuentra en la 6ta posición como se puede apreciar en la

tabla de estadísticas de tiobe.com y corre el riesgo de ser desbancado por JavaScript quien aumenta

cada vez más su popularidad y que recientemente con una adaptación se ha introducido a la catego-

ría de lenguajes del lado del servidor (TIOBE).

Ilustración 2. Uso de lenguajes de 2010 a 2015.

Fuente: w3techs.com

Ilustración 3. Top ten de lenguajes más populares de 1985 a 2015. Fuente: tiobe.com

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 7 de 10

2.1. Frameworks para PHP

Al igual que otros lenguajes de programación, PHP también cuenta con frameworks para agilizar y

mejorar la calidad de la programación, facilitando también la escalabilidad y el mantenimiento del

código. La siguiente lista resume muy brevemente los cinco más populares frameworks para PHP

(Hostdime Colombia):

7. Laravel: Tiene una sintaxis expresiva, elegante, con el objetivo de eliminar la molestia del

desarrollo web facilitando las tareas comunes, como la autenticación, enrutamiento, sesio-

nes y caché. Proporciona, potentes herramientas accesibles necesarias para construir gran-

des aplicaciones robustas, con un contenedor de controles de inversión, sistema de migra-

ción expresiva, y el apoyo de las pruebas unitarias estrechamente integrada.

8. CodeIgniter: Usa el enfoque MVC y cuenta con un amplio conjunto de librerías para tareas

comúnmente necesarias, así como una interfaz sencilla. Su sistema central sólo requiere al-

gunas pequeñas bibliotecas, con bibliotecas adicionales cargadas dinámicamente a petición,

con base en sus necesidades de un determinado proceso, lo que significa que es extrema-

damente rápido y flexible.

9. Yii: Promueve el diseño limpio y motiva el desarrollo rápido, optimizando el desarrollo pa-

ra garantizar un producto final extremadamente eficiente, extensible y mantenible. Cuenta

con soporte de almacenamiento en caché de gran alcance y está explícitamente diseñado pa-

ra trabajar de manera eficiente con AJAX. También incluye validación de entradas, filtrado

de salida, la prevención de inyección de SQL y de Cross-site scripting.

10. Symfony: Ayuda a acelerar la creación y el mantenimiento ya que proporciona un conjunto

de elementos prefabricados que se pueden integrar rápidamente en su aplicación, combina-

da con una metodología clara para ayudar a trabajar de forma eficiente y eficaz en las tareas

más complejas.

11. Zend Framework: Los componentes de la biblioteca estándar forman una poderosa herra-

mienta extensible cuando se combinan, ofreciendo una aplicación MVC de alto rendimiento

y bastante robusta. Es altamente adaptable las necesidades, con una base modular para que

pueda usar bloques de construcción en combinación con otras aplicaciones o frameworks.

3. PHP vs principales competidores

La pregunta que siempre estará latente es cuál de los lenguajes es el mejor o cuál elegir, así que a

continuación se presentas las comparaciones contra sus principales competidores (PHP.net).

PHP vs ASP

ASP no es realmente un lenguaje en sí mismo, sino que en realidad se emplea Visual Basic

Script, JScript, y C #, entre otros. Su mayor inconveniente es que está patentado y solo se puede

usar en Internet Information Server (IIS), además de ser un lenguaje lento, engorroso y con menor

estabilidad. Así mismo los componentes integrados en ASP son muy limitados, por lo que si se

necesita usar funciones avanzadas (como la interacción con servidores FTP), se tiene que comprar

los componentes adicionales. Como ventaja es que resulta fácil de aprender si ya se es experto en

Visual Basic.

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 8 de 10

PHP vs ColdFusion

PHP es más rápido y eficiente para tareas complejas de programación así como más estable

y con menor consumo de recursos. Mientras ColdFusion cuenta con mejor control de errores y abs-

tracción de bases de datos, aunque ese déficit fue subsanado en PHP 4. Una cualidad particular que

está catalogado como uno de los puntos fuertes de ColdFusion es su excelente motor de búsqueda.

Por otra parte, PHP se ejecuta en casi todas las plataformas modernas, mientras que ColdFusion está

más limitado. ColdFusion posee un buen IDE y es generalmente más rápido para los nuevos pro-

gramadores para lograr resultados para aplicaciones muy simples, mientras que PHP requiere ini-

cialmente más conocimientos de programación. Finalmente, ColdFusion está diseñado para los no

programadores, mientras que PHP se enfoca más en programadores.

PHP vs Perl

La mayor ventaja de PHP sobre Perl es que fue diseñado para secuencias de comandos para

la web, mientras que Perl fue diseñado para hacer mucho más, por lo que Perl puede ser muy com-

plicado, es decir, PHP tiene toda la funcionalidad de Perl pero sin hacerlo tan complicado. PHP es

también más fácil de integrar en HTML que con Perl, además su línea de comandos (PHP-CLI) es

lo suficientemente potente como para realizar tareas de alto nivel tanto como Perl.

4. Usos exitosos de PHP

A continuación se presentan los que podrían considerarse los tres principales casos de éxito de PHP.

4.1. Facebook

La gigante red social de Facebook está construida en PHP, sin embargo lo usan de una forma dife-

rente para hacerlo más eficiente, ya que usan un compilador en tiempo real haciendo uso de una

máquina virtual llamada HipHop Virtual Machine (HPVM), la cual toma el código PHP, lo trans-

forma a HipHop bytecode (HHBC) el cuál a su vez lo traduce a código máquina optimizado para

una ejecución nativa en el servidor, teniendo como resultado respuestas en menos de medio segun-

do (Wikipedia, 2015).

Así pues, no hay mejor ejemplo de caso de éxito que Facebook, una de los sitios web más

robustos en Internet y quien ha optado por PHP como su lenguaje base, al cual le hicieron adapta-

ciones en la forma en cómo se ejecuta gracias a que es un lenguaje libre.

4.2. MediaWiki

MediaWiki es una Sistema Wiki, del cual su implementación más representativa es la gran Wikipe-

dia, uno de los sitios web más populares a nivel mundial y con un alto número de visitas. MediaWi-

ki ha sido programado con PHP tradicional y se ha reescrito su código en varias ocasiones con el fin

de hacerlo más escalable. El código de MediaWiki contiene varios “hooks” para agregar código

PHP adicional en una forma extensible, lo que permite a los desarrolladores crear extensiones sin

necesidad de modificar el núcleo o tener que enviar código para su revisión, un ejemplo es la exten-

sión PHPIDS que se desarrolló para identificar intrusiones debido a sus constantes problemas de

seguridad presentados (Wikipedia, 2015).

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 9 de 10

4.3. WordPress

La plataforma más grande del mundo de Content Management System es WordPress, ya que según

las estadísticas de w3techs.com, cubre el cerca del 60% del mercado de los CMS existentes, con lo

que representa el 23% a nivel general, es decir, 23% de los sitios web en todo Internet usan

WordPress el cual está escrito en lenguaje con PHP.

CONCLUSIÓN

Los casos de éxito y las comparativas, aunado a la descripción de otros lenguajes presenta-

da en el tema 1, pueden dar una idea general de la razón del por qué PHP ha tenido tanto éxito al día

de hoy, por ello se puede concluir y deducir que las siguientes razones son:

1) Es un lenguaje que nació pensado para la web, por lo que sus beneficios son exponencial-

mente mayores que el resto de los lenguajes.

2) Algunos no lo consideran un lenguaje robusto, pero esto se debe a que es un lenguaje rela-

tivamente nuevo, sin embargo ha madurado y evolucionado rápidamente, lo cual lo posi-

ciona cada vez más como una mejor alternativa

3) Es un lenguaje multiplataforma, con una gran comunidad, y de gran estabilidad que además

es libre lo que permite hacer grandes adaptaciones, por ejemplo, algunas deficiencias que

son criticadas por algunos, las subsanan los frameworks.

Referencias Bibliográficas Hostdime Colombia. (s.f.). 6 FrameWorks PHP Para El Desarrollo Ágil De Aplicaciones Web | Blog

Hostdime Colombia. Recuperado el 17 de Enero de 2015, de Hostdime Colombia:

http://www.hostdime.com.co/blog/6-frameworks-php-para-el-desarrollo-agil-de-aplicaciones-web/ Minera, F. J. (2010). PHP 6 (Primera ed.). Argentina: Fox Andina.

PHP.net. (s.f.). PHP: PHP and other languages - Manual. Recuperado el 17 de Enero de 2015, de PHP:

http://php.net/manual/fa/faq.languages.php

TIOBE. (s.f.). TIOBE Software: The Coding Standards Company. Recuperado el 17 de Enero de 2015, de

TIOBE Software: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Wikipedia. (14 de Diciembre de 2013). Groovy (lenguaje de programación) - Wikipedia, la enciclopedia

libre. Recuperado el 17 de Enero de 2015, de Wikipedia, la enciclopedia libre:

https://es.wikipedia.org/wiki/Groovy_(lenguaje_de_programación)

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Computación en el servidor web

18 de enero de 2015 Página 10 de 10

Wikipedia. (28 de Octubre de 2014). Django (framework) - Wikipedia, la enciclopedia libre. Recuperado el

17 de Enero de 2015, de Wikipedia, la enciclopedia libre:

https://es.wikipedia.org/wiki/Django_%28framework%29

Wikipedia. (16 de Noviembre de 2014). Grails - Wikipedia, la enciclopedia libre. Recuperado el 17 de Eneo

de 2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/Grails

Wikipedia. (19 de Septiembre de 2014). JavaServer Pages - Wikipedia, la enciclopedia libre. Recuperado el

16 de Enero de 2015, de Wikipedia, la enciclopedia libre:

https://es.wikipedia.org/wiki/JavaServer_Pages

Wikipedia. (13 de Diciembre de 2014). Lift (web framework) - Wikipedia, the free encyclopedia. Recuperado

el 17 de Enero de 2015, de Wikipedia, the free encyclopedia:

https://en.wikipedia.org/wiki/Lift_(web_framework)

Wikipedia. (29 de Diciembre de 2014). Perl - Wikipedia, la enciclopedia libre. Recuperado el 16 de Enero de

2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/Perl

Wikipedia. (22 de Noviembre de 2014). Scala (lenguaje de programación) - Wikipedia, la enciclopedia libre.

Recuperado el 17 de Enero de 2015, de Wikipedia, la enciclopedia libre:

https://es.wikipedia.org/wiki/Scala_(lenguaje_de_programación)

Wikipedia. (16 de Diciembre de 2014). Script del lado del servidor - Wikipedia, la enciclopedia libre.

Recuperado el 14 de Enero de 2015, de Wikipedia, la enciclopedia libre:

https://es.wikipedia.org/wiki/Script_del_lado_del_servidor

Wikipedia. (21 de Mayo de 2014). Seaside (software) - Wikipedia, the free encyclopedia. Recuperado el 17 de

Enero de 2015, de Wikipedia, the free encyclopedia:

https://en.wikipedia.org/wiki/Seaside_(software)

Wikipedia. (3 de Enero de 2015). ASP.NET - Wikipedia, la enciclopedia libre. Recuperado el 16 de Enero de

2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/ASP.NET

Wikipedia. (11 de Enero de 2015). ColdFusion - Wikipedia, la enciclopedia libre. Recuperado el 16 de Enero

de 2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/ColdFusion

Wikipedia. (17 de Enero de 2015). CubicWeb - Wikipedia, la enciclopedia libre. Recuperado el 17 de Enero

de 2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/CubicWeb

Wikipedia. (17 de Enero de 2015). ErlyWeb - Wikipedia, la enciclopedia libre. Recuperado el 17 de Enero de

2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/ErlyWeb

Wikipedia. (17 de Enero de 2015). Facebook - Wikipedia, the free encyclopedia. Recuperado el 17 de Enero

de 2015, de Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/Facebook

Wikipedia. (16 de Enero de 2015). MediaWiki - Wikipedia, the free encyclopedia. Recuperado el 17 de Enero

de 2015, de Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/MediaWiki

Wikipedia. (8 de Enero de 2015). PHP - Wikipedia, la enciclopedia libre. Recuperado el 17 de Enero de

2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/PHP

Wikipedia. (6 de Enero de 2015). Python - Wikipedia, la enciclopedia libre. Recuperado el 17 de Enero de

2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/Python

Wikipedia. (3 de Enero de 2015). Ruby on Rails - Wikipedia, la enciclopedia libre. Recuperado el 16 de

Enero de 2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/Ruby_on_Rails

Wikipedia. (9 de Enero de 2015). Smalltalk - Wikipedia, la enciclopedia libre. Recuperado el 17 de Enero de

2015, de Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/Smalltalk

Yabar Aizcorbe, R. (29 de Marzo de 2007). a revolución del desarrollo Web: Ruby on Rails | El blog de

Ronny. Recuperado el 16 de Enero de 2015, de El blog de Ronny:

https://ronnyml.wordpress.com/2007/03/29/la-revolucion-del-desarrollo-web-ruby-on-rails/