SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexió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 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/

Más contenido relacionado

La actualidad más candente

ENSAYO DE ACCESS
ENSAYO DE ACCESSENSAYO DE ACCESS
ENSAYO DE ACCESS123456uy
 
Mapa conceptual de la evolución de la web 1.0 hasta web 7.0
Mapa conceptual de la evolución de la web 1.0 hasta web 7.0Mapa conceptual de la evolución de la web 1.0 hasta web 7.0
Mapa conceptual de la evolución de la web 1.0 hasta web 7.0Ivan Anselmi
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)marianela0393
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 bEjercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 bIvan Deza Padilla
 
Organización, navegación y tipologías de sitios web
Organización, navegación y tipologías de sitios web   Organización, navegación y tipologías de sitios web
Organización, navegación y tipologías de sitios web LuisGonzlez362
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datosJose Musett
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipsejaquiiMc
 
Conjuntos de entidades débiles
Conjuntos de entidades débilesConjuntos de entidades débiles
Conjuntos de entidades débilesJuan Anaya
 
Python - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de DatosPython - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de DatosRoman Herrera
 

La actualidad más candente (20)

Access.ppt
Access.pptAccess.ppt
Access.ppt
 
ENSAYO DE ACCESS
ENSAYO DE ACCESSENSAYO DE ACCESS
ENSAYO DE ACCESS
 
Diapositivas de vistas
Diapositivas de vistasDiapositivas de vistas
Diapositivas de vistas
 
Mapa conceptual de la evolución de la web 1.0 hasta web 7.0
Mapa conceptual de la evolución de la web 1.0 hasta web 7.0Mapa conceptual de la evolución de la web 1.0 hasta web 7.0
Mapa conceptual de la evolución de la web 1.0 hasta web 7.0
 
Css - Tema 1
Css - Tema 1Css - Tema 1
Css - Tema 1
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
ENSAYO DE WIKI
ENSAYO DE WIKIENSAYO DE WIKI
ENSAYO DE WIKI
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 bEjercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
 
Organización, navegación y tipologías de sitios web
Organización, navegación y tipologías de sitios web   Organización, navegación y tipologías de sitios web
Organización, navegación y tipologías de sitios web
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datos
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipse
 
Modelos de red
Modelos de redModelos de red
Modelos de red
 
Microsoft Access
Microsoft AccessMicrosoft Access
Microsoft Access
 
Web 1.0, 2.0, 3.0, 4.0 y 5.0 y Deep web
Web 1.0, 2.0, 3.0, 4.0 y 5.0 y Deep webWeb 1.0, 2.0, 3.0, 4.0 y 5.0 y Deep web
Web 1.0, 2.0, 3.0, 4.0 y 5.0 y Deep web
 
Base de datos
Base de datosBase de datos
Base de datos
 
Conjuntos de entidades débiles
Conjuntos de entidades débilesConjuntos de entidades débiles
Conjuntos de entidades débiles
 
Python - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de DatosPython - Lenguaje de programación para Ciencia de Datos
Python - Lenguaje de programación para Ciencia de Datos
 

Similar a PHP casos éxito lenguajes servidor alternativas

los-diferentes-lenguajes-de-programacion-para-la-web
 los-diferentes-lenguajes-de-programacion-para-la-web los-diferentes-lenguajes-de-programacion-para-la-web
los-diferentes-lenguajes-de-programacion-para-la-webolguisf
 
los diferentes lenguajes de programación para-la-web
 los diferentes lenguajes de programación para-la-web los diferentes lenguajes de programación para-la-web
los diferentes lenguajes de programación para-la-webolguisf
 
Programacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorProgramacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorJose Felix Moran Agusto
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion webinfobran
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
Lenguajes de programación para la web
Lenguajes de programación para la webLenguajes de programación para la web
Lenguajes de programación para la webOscar Luis Cdrc
 
2009_asp.net_capitulo_1
2009_asp.net_capitulo_12009_asp.net_capitulo_1
2009_asp.net_capitulo_1zhylz Zevallos
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Internet - Teconología para Sistemas Web
Internet - Teconología para Sistemas WebInternet - Teconología para Sistemas Web
Internet - Teconología para Sistemas WebJhon Querevalú
 
Lenguajes de desarrollo web
Lenguajes de desarrollo webLenguajes de desarrollo web
Lenguajes de desarrollo webEvelioHdez
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webimei_02
 
Los dialectos ECMAScript y su implementación en los navegadores
Los dialectos ECMAScript y su implementación en los navegadoresLos dialectos ECMAScript y su implementación en los navegadores
Los dialectos ECMAScript y su implementación en los navegadoresHéctor Garduño Real
 
Desarrollo de la web.adriana
Desarrollo de la web.adrianaDesarrollo de la web.adriana
Desarrollo de la web.adrianaAdrianaMarcela16
 

Similar a PHP casos éxito lenguajes servidor alternativas (20)

los-diferentes-lenguajes-de-programacion-para-la-web
 los-diferentes-lenguajes-de-programacion-para-la-web los-diferentes-lenguajes-de-programacion-para-la-web
los-diferentes-lenguajes-de-programacion-para-la-web
 
los diferentes lenguajes de programación para-la-web
 los diferentes lenguajes de programación para-la-web los diferentes lenguajes de programación para-la-web
los diferentes lenguajes de programación para-la-web
 
Programacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorProgramacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidor
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion web
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion web
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
Desarrollo en el servidor
Desarrollo en el servidorDesarrollo en el servidor
Desarrollo en el servidor
 
Capitulo 1 - Proyecto integrador 2015-2016
Capitulo 1 - Proyecto integrador 2015-2016Capitulo 1 - Proyecto integrador 2015-2016
Capitulo 1 - Proyecto integrador 2015-2016
 
Lenguajes de programación para la web
Lenguajes de programación para la webLenguajes de programación para la web
Lenguajes de programación para la web
 
2009_asp.net_capitulo_1
2009_asp.net_capitulo_12009_asp.net_capitulo_1
2009_asp.net_capitulo_1
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
Internet - Teconología para Sistemas Web
Internet - Teconología para Sistemas WebInternet - Teconología para Sistemas Web
Internet - Teconología para Sistemas Web
 
Lenguajes de desarrollo web
Lenguajes de desarrollo webLenguajes de desarrollo web
Lenguajes de desarrollo web
 
Tecnologias de desarrollo web
Tecnologias de desarrollo webTecnologias de desarrollo web
Tecnologias de desarrollo web
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-web
 
Los dialectos ECMAScript y su implementación en los navegadores
Los dialectos ECMAScript y su implementación en los navegadoresLos dialectos ECMAScript y su implementación en los navegadores
Los dialectos ECMAScript y su implementación en los navegadores
 
Desarrollo de la web.adriana
Desarrollo de la web.adrianaDesarrollo de la web.adriana
Desarrollo de la web.adriana
 

Más de Héctor Garduño Real

Sistema para la Evaluación del Aprendizaje en entornos B-Learning
Sistema para la Evaluación del Aprendizaje en entornos B-LearningSistema para la Evaluación del Aprendizaje en entornos B-Learning
Sistema para la Evaluación del Aprendizaje en entornos B-LearningHéctor Garduño Real
 
Tesis - Fábrica de software Estado de México 2009
Tesis - Fábrica de software Estado de México 2009Tesis - Fábrica de software Estado de México 2009
Tesis - Fábrica de software Estado de México 2009Héctor Garduño Real
 
Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes Héctor Garduño Real
 
Asignatura: Fundamentos de Redes de Computadoras
Asignatura: Fundamentos de Redes de ComputadorasAsignatura: Fundamentos de Redes de Computadoras
Asignatura: Fundamentos de Redes de ComputadorasHéctor Garduño Real
 
Asignatura: Introducción a las ciencias de la computación
Asignatura: Introducción a las ciencias de la computaciónAsignatura: Introducción a las ciencias de la computación
Asignatura: Introducción a las ciencias de la computaciónHéctor Garduño Real
 
Principales CMS y Estadísticas de uso
Principales CMS y Estadísticas de usoPrincipales CMS y Estadísticas de uso
Principales CMS y Estadísticas de usoHéctor Garduño Real
 
Práctica de instalación y uso de Joomla
Práctica de instalación y uso de JoomlaPráctica de instalación y uso de Joomla
Práctica de instalación y uso de JoomlaHéctor Garduño Real
 
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web Services
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web ServicesPráctica de Creación de Máquina Virtual con LAMP en Amazon Web Services
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web ServicesHéctor Garduño Real
 
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...Héctor Garduño Real
 
Metodologías de Desarrollo de Aplicaciones Web Seguras
Metodologías de Desarrollo de Aplicaciones Web SegurasMetodologías de Desarrollo de Aplicaciones Web Seguras
Metodologías de Desarrollo de Aplicaciones Web SegurasHéctor Garduño Real
 
Análisis de lecturas sobre el Internet de las Cosas
Análisis de lecturas sobre el Internet de las CosasAnálisis de lecturas sobre el Internet de las Cosas
Análisis de lecturas sobre el Internet de las CosasHéctor Garduño Real
 
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0Héctor Garduño Real
 
Práctica de instalación y uso de Alfresco
Práctica de instalación y uso de AlfrescoPráctica de instalación y uso de Alfresco
Práctica de instalación y uso de AlfrescoHéctor Garduño Real
 
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)Héctor Garduño Real
 
Práctica en Joomla de reproductor de streaming de video y audio
Práctica en Joomla de reproductor de streaming de video y audioPráctica en Joomla de reproductor de streaming de video y audio
Práctica en Joomla de reproductor de streaming de video y audioHéctor Garduño Real
 

Más de Héctor Garduño Real (20)

Sistema para la Evaluación del Aprendizaje en entornos B-Learning
Sistema para la Evaluación del Aprendizaje en entornos B-LearningSistema para la Evaluación del Aprendizaje en entornos B-Learning
Sistema para la Evaluación del Aprendizaje en entornos B-Learning
 
Tesis - Fábrica de software Estado de México 2009
Tesis - Fábrica de software Estado de México 2009Tesis - Fábrica de software Estado de México 2009
Tesis - Fábrica de software Estado de México 2009
 
Asignatura: Informática 1
Asignatura: Informática 1Asignatura: Informática 1
Asignatura: Informática 1
 
Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes Asignatura: Interconectividad de Redes
Asignatura: Interconectividad de Redes
 
Asignatura: Fundamentos de Redes de Computadoras
Asignatura: Fundamentos de Redes de ComputadorasAsignatura: Fundamentos de Redes de Computadoras
Asignatura: Fundamentos de Redes de Computadoras
 
Asignatura: Desarrollo Sustentable
Asignatura: Desarrollo SustentableAsignatura: Desarrollo Sustentable
Asignatura: Desarrollo Sustentable
 
Asignatura: Introducción a las ciencias de la computación
Asignatura: Introducción a las ciencias de la computaciónAsignatura: Introducción a las ciencias de la computación
Asignatura: Introducción a las ciencias de la computación
 
Principales CMS y Estadísticas de uso
Principales CMS y Estadísticas de usoPrincipales CMS y Estadísticas de uso
Principales CMS y Estadísticas de uso
 
Práctica de instalación y uso de Joomla
Práctica de instalación y uso de JoomlaPráctica de instalación y uso de Joomla
Práctica de instalación y uso de Joomla
 
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web Services
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web ServicesPráctica de Creación de Máquina Virtual con LAMP en Amazon Web Services
Práctica de Creación de Máquina Virtual con LAMP en Amazon Web Services
 
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...
Práctica con WebGoat: HTTP Splitting, DoS, Ma-licious Execution e Injection F...
 
Metodologías de Desarrollo de Aplicaciones Web Seguras
Metodologías de Desarrollo de Aplicaciones Web SegurasMetodologías de Desarrollo de Aplicaciones Web Seguras
Metodologías de Desarrollo de Aplicaciones Web Seguras
 
Análisis de lecturas sobre el Internet de las Cosas
Análisis de lecturas sobre el Internet de las CosasAnálisis de lecturas sobre el Internet de las Cosas
Análisis de lecturas sobre el Internet de las Cosas
 
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0
Caso de éxito de IoT: Agricultura inteligente en Viñedos 2.0
 
Análisis del Whitepaper DB4O
Análisis del Whitepaper DB4OAnálisis del Whitepaper DB4O
Análisis del Whitepaper DB4O
 
Práctica de instalación y uso de Alfresco
Práctica de instalación y uso de AlfrescoPráctica de instalación y uso de Alfresco
Práctica de instalación y uso de Alfresco
 
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
Práctica de Bases de Datos con MySQL (diseño, desarrollo y uso)
 
Más alla de la web 2.0
Más alla de la web 2.0Más alla de la web 2.0
Más alla de la web 2.0
 
Práctica de herramientas web 2.0
Práctica de herramientas web 2.0Práctica de herramientas web 2.0
Práctica de herramientas web 2.0
 
Práctica en Joomla de reproductor de streaming de video y audio
Práctica en Joomla de reproductor de streaming de video y audioPráctica en Joomla de reproductor de streaming de video y audio
Práctica en Joomla de reproductor de streaming de video y audio
 

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Último (20)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

PHP casos éxito lenguajes servidor alternativas

  • 1. 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
  • 2. 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.
  • 3. 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.
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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.
  • 8. 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).
  • 9. 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)
  • 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 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/