SlideShare una empresa de Scribd logo
Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 1

Resumen—Este ensayo nos dará una idea general acerca de
las plataformas utilizadas para crear y/o desarrollar
aplicaciones web, identificaremos los principales lenguajes de
programación (o plataformas de desarrollo) para la
implementación aplicaciones web y los servidores (de
aplicaciones) en los cuales se instalan dichas aplicaciones (por
lenguaje de programación).
Índice de Términos: Plataforma de desarrollo,
Aplicaciones web, programación, implementación.
I. INTRODUCCIÓN
En la actualidad Internet es la mayor fuente de contenidos
donde los usuarios pueden buscar información sobre lo que
necesitan. Los motores de búsqueda Como Google son los
encargados de esta actividad, que generalmente dan como
resultado un exagerado volumen de información, tan grande
que encontrar la que se ajuste a las necesidades personales
podría consumir mucho tiempo del cual no se dispone.
Los sistemas de búsqueda basan su proceso en fórmulas
matemáticas y las coincidencias de las palabras escritas por el
usuario en el texto de los documentos encontrados.
El objetivo de este trabajo es estudiar la tecnología
necesaria que propone una Solución a los problemas que hoy
aquejan nuestro sistema obsoleto a la hora de realizar
cualquier actividad de la vida diaria.
Este trabajo inicia con una pequeña introducción sobre
conceptos de Lenguajes de programación,
Luego la unidad 2 muestra la implementación de las
diferentes aplicaciones web, y los servidores en los que se
instalaran dichas aplicaciones.
CRITERIOS PARA EVALUAR UNA
PLATAFORMA DE DESARROLLO.
A continuación las 5 plataformas más populares de lado
servidor: Java, PHP, Microsoft .NET, Python y Ruby On
Rails. Las plataformas se evaluaran en base a los siguientes
Criterios:
– Grado de madurez.
– Tamaño y grado de actividad de la comunidad.
– Disponibilidad de librerías y aplicaciones de
terceros.
– Disponibilidad y coste salarial de los
programadores.
– Dificultad de la curva de aprendizaje.
– Compatibilidad con el resto del ecosistema.
– Rendimiento y escalabilidad.
La productividad como ya es sabido si se usan bien, todas
ellas ofrecen un grado de productividad equivalente, o, al
menos no lo bastante diferente como para que debiera ser
relevante.
¿POR QUÉ?
LA MADUREZ
Hay proyectos, como por ejemplo node.js que se crearon
para resolver problemas específicos. En el caso de node.js el
tratamiento de peticiones AJAX desde las nuevas aplicaciones
HTML5. Node.js ofrece una modalidad de procesamiento
asíncrono junto con la propuesta de programar en JavaScript
igualmente en el lado cliente y en el servidor
Es más complicado de aprender y de codificar en Tomcat,
ciertamente, pero a cambio se tiene una plataforma mucho
más madura, eficiente y compatible que node.js. Más madura
implica, por ejemplo, casi siempre mejor documentada. Las
carencias de la documentación, por cierto, son un mal
endémico en las librerías JavaScript cliente incluso en las más
maduras como Dojo o YUI.
EL TAMAÑO
Es relevante porque cuanto mayor sea la comunidad más
probable es que hay alguien que se haya topado con el mismo
problema que nosotros y lo haya resuelto. Más probable que
en Stack Overflow o en cualquier otro sitio de preguntas y
respuestas hallemos la solución a un problema que nos
PLATAFORMAS PARA EL DESARROLLO DE
APLICACIONES WEB
Diana Shirley Sanchez Hernandez
Electiva Profesional A3
FUSM - Fundación Universitaria San Martin
Palmira-Colombia
preciosanchez@gmail.com
Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 2
mantiene atascados.
LA DISPONIBILIDAD
De aplicaciones y librerías de terceros. El framework de
desarrollo es sólo la herramienta base para construir una
aplicación. Justo a continuación de elegir la plataforma hay
que elegir las librerías. Por ejemplo, Java domina
absolutamente el entorno financiero y bancario porque su
middleware es el mejor. Lo hay para todos los gustos desde
JBoss a TIBCO, pasando por Informatica UM. Los
frameworks más modernos de todos los lenguajes han ido
incorporando librerías de serie. Java apareció en 1995 y, más
que un lenguaje para aplicaciones web estaba pensado con
filosofía WORA (Write Once Run Anywhere) y para tener la
menor cantidad de dependencias posible. Ruby On Rails
apareció 10 años después e incorporaba en su arquitectura el
paradigma Modelo Vista Controlador (MVC) y mecanismos
como ActiveRecord que permiten que las clases tomen de la
base de datos los nombres de la columnas sin necesidad de
definirlas explícitamente en el código. Para conseguir con Java
un framework funcionalmente similar a Ruby on Rails se
necesita, al menos, una librería MVC como Struts, una capa de
persistencia como Hibernate, soporte de servicios REST como
Jersey, una librería de tags como JSTL y JavaMail. La
cantidad de librerías Java es tal que existen empresas como
Black Duck en EE.UU. Autentia en España especializadas en
evaluarlas y dar formación a los clientes corporativos.
DISPONIBILIDAD Y COSTE
Si se estima que el proyecto requerirá 40 o 50
desarrolladores entonces encontrar y contratar personas puede
llegar a ser muy difícil y costoso. Si se estima que el proyecto
necesitará más de 50 desarrolladores, entonces es que se ha
hecho mal el plan y bien hay que partir el proyecto en trozos
de menos de 50, bien sería mejor cancelarlo y tirarlo todo a la
basura antes de que se queme una burrada de dinero en
producir un monstruo.
DIFICULTAD DE LA CURVA DE APRENDIZAJE.
Todas las plataformas son igualmente buenas en cuanto a
productividad. Pero no todas son igualmente fáciles de
aprender. Si se tiene cuenta el tiempo que requiere un
programador novato para aprender cómo funciona el invento,
entonces sí que existen diferencias entre unas y otras. El orden
de más fácil a más difícil es: PHP, Ruby On Rails, .NET,
Python y Java.
COMPATIBILIDAD CON EL RESTO DEL
ECOSISTEMA.
Rara vez las aplicaciones existen de forma aislada e
independiente unas de otras. En general, las diferentes
plataformas no son fácilmente interoperables unas con otras.
Existen muchas herramientas de integración y formatos de
representación de datos independientes del lenguaje como
Protocol Buffers, pero lo más común, por fácil, es que las
plataformas en dos lenguajes diferentes se acaben integrando
vía base de datos relacional, XML o ficheros de texto
delimitado.
RENDIMIENTO Y ESCALABILIDAD.
A grosso modo, si se tiene una base de datos con tablas que
no superan el millón de registros y un sitio web que no supera
las cien mil visitas al día, entonces la escalabilidad no será una
cuestión relevante se use lo que se use a menos que el
programador sea realmente malo, pues cualquier servidor
quad-core medio moderno puede atender tal volumen de
trabajo sobre una base de datos relacional.
II. LENGUAJES
JAVA
Java es la plataforma más extendida en el entorno corporativo.
Se trata de una tecnología muy madura y popular que cuenta
con innumerables herramientas de todo tipo y es bastante
sencillo encontrar programadores. Casi todo el mundo que
desarrolla en Java usa Eclipse o Netbeans como IDE. Ambos
son bastante pesados y a mi personalmente me gusta más
JCreator, aunque en un portátil con 4Gb de RAM tanto Eclipse
como Netbeans corren perfectamente. La principal pega de
Java para el desarrollo de aplicaciones web es que la
plataforma no se concibió originalmente para eso, sino que
fueron apareciendo proyectos como Tomcat en 1999. Las
extensiones a la plataforma se acuerdan mediante el Java
Community Process (JCP) compuesto por más de mil
miembros que trabajan sobre más de 300 Java Specification
Requests (JSR) Estas especificaciones tienden a ser muy
densas y a veces salen cosas realmente retorcidas como
JavaMail. Algunos presuntos gurús han difundido el mito de
que una startup no debería basar su tecnología en Java. Esto es
radicalmente falso pues Java es perfectamente compatible con
el modelo lean en boga. La curva de aprendizaje de Java no es
suave.
PHP
También conocido popularmente como LAMP
(Linux+Apache+MySQL+PHP). PHP (acrónimo recursivo de
Hypertext Pre-processor) es coetáneo de Java. Apareció
también en 1995, pero, a diferencia de Java, estaba pensado
desde el principio como un lenguaje que se pudiera incorporar
en documentos HTML. La gran ventaja de PHP es que resulta
sencillo empezar con él y existe mucha documentación online.
Es más fácil aprender PHP que Java, y todos los ISP
proprocionan algún tipo de stack LAMP preconfigurado. Es
por consiguiente sencillo encontrar programadores PHP a
precios asequibles. PHP no proporciona un sistema MVC por
defecto pero existen muchas opciones para ello. A mi me
gusta CakePHP mas se pueden contar las alternativas por
Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 3
decenas siendo Zend probablemente la más popular. Hay
muchas startups de éxito basadas en PHP, incluídas algunas de
las de mayor tráfico como Wikipedia, Yahoo o Facebook entre
ellas. El lenguage en sí mismo presenta algunas limitaciones
importantes. No se pueden crear de forma natural pools de
conexiones, no hay sesiones, el módulo mod_php para Apache
permite mantener sesiones pero mucha gente lo considera
intrínsecamente inseguro. La propia facebook acabó
desarrollando su propio compilador just in time (JIT) HHVM
para poder alcanzar el rendimiento que necesitaban con PHP.
.NET
Si Sun no hubiese creado Java probablemente .NET dominaría
ahora mismo todo el panorama de software empresarial. El
punto fuerte de plataforma de Microsoft es el grado de
integración entre el escritorio y las aplicaciones web. Si yo
tuviese que desarrollar una Intranet a sabiendas de que los
usuarios van a tener todos Windows no lo dudaría y la
desarrollaría sobre .NET. Mas para una startup yo nunca
elegiría .NET no por problema alguno con la tecnología sino
simplemente porque el software de Microsoft no es Open
Source. .NET sólo puede correr en servidores distintos de
Microsoft Internet Information Server si se usa Mono y los
servidores Windows son más caros de alojar que los Linux.
Además usar SQL Server (la elección natural para .NET)
también es bastante más caro que elegir PostgreSQL o
MySQL.
PYTHON
Python para la web es sinónimo de Django. Django apareció
en 2005 como framework para la creación de sitios web de
contenidos dinámicos, y, si eso es lo que hay que hacer, puede
ser una excelente elección. Python es un lenguaje interpretado,
no usa bytecodes como Java, y aunque existen versiones de
Python que pueden correr sobre JVM yo no conozco a nadie
que las use en producción. El tipado dinámico y los tipos de
alto nivel hacen que el código Python sea más corto que Java.
Como RoR, Django incluye un subsistema MVC (aunque algo
ecléctico) y también mapeador objeto-relacional, un sistema
extensible de plantillas basado en etiquetas,un despachadorde
URLs basado en expresiones regulares y middleware para
cacheo, compresión de la salida, normalización de URLs,
protección Cross-Site Request Forgery (CSRF) y soporte de
sesiones. Lo normal es ejecutar Python con el mod_python de
Apache 2. Aunque gracias al soporte WSGI se puede correr
también sobre Lighttpd. En general es de esperar que el
rendimiento de Python sea inferior al de Java y, por
consiguiente, ello puede ser un obstáculo si se pretende llevar
el tráfico hasta el límite. Algunos sitios web de alto tráfico
como Instagram o Pinterest están desarrollados con Django,
aunque ellos mismos han reconocido que tuvieron problemas
con la escalabilidad debido a su vertiginoso crecimiento, no
sólo por Python sino también en gran parte por llegar al límite
de las tecnologías de almacenamiento de datos. My
experiencia personal con Python/Django es que es muy bueno
como como “lenguaje pegamento”, es como un “Perl con
esteroides”, pero no es tan bueno como lenguaje para una
plataforma, porque permite programar muy sucio y porque es
fácil embarullar la capa del Controlador en el MVC de
Django. Python es relativamente sencillo de aprender, y a la
mayoría de los programadores profesionales les gusta cuando
llegan a conocerlo, pero, debido a que existe menos demanda
de programadores Python que de Java, .NET o PHP estos son
más difíciles de encontrar.
RUBY ON RAILS
Ningún framework de los anteriores levanta tantas pasiones a
favor y en contra que Ruby On Rails. Como Django, RoR es
un framework que se pensó desde el principio para el diseño
de aplicaciones web. Es un framework de pila completa, lo
que significa que trata de integrarlo todo desde la base de
datos hasta el código que corre en el navegador cliente. RoR
incorpora de serie el paradigma MVC, el mapeo objeto-
relacional, infraestructura para crear recursos REST y otras
funcionalidades propias del desarrollo web como un detector
de inyección de JavaScript y SQL. RoR también incorpora
JQuery, y se pueden conseguir herramientas de terceros como
Aptana para el desarrollo de las páginas HTML5. Los críticos
de RoR argumentan que es lento y que no escala bien en
webfarms. Es cierto que las sesiones sólo se pueden compartir
en Ruby a través de la base de datos. Pero es que yo soy
partidario de que las aplicaciones no deben mantener nada en
una sesión de lado servidor sino que se deben usar cookies
para mantener las credenciales del usuario y luego cachear el
resto. El sitio web más grande basado en RoR probablemente
es Twitter. Otra crítica común es que, debido a la integración
transparente entre el lenguage y la base de datos, no se puede
usar Ruby fácilmente contra un modelo de datos que ya esté
creado o siga unas normas de programación del estilo de sólo
poder acceder a la información vía procedimientos
almacenados, o, más bien, sí se puede, pero entonces se le
mata la magia de ActiveRecord al lenguaje. Ruby es
relativamente fácil de aprender, más o menos como PHP sólo
que la documentación de Ruby no es tan extensa ni detallada.
Hay muchos menos programadores de Ruby que de Java o de
PHP. Sus defensores argumentan que los programadores de
Ruby son pocos porque son todos unos gurús, mas creo que
leyendo este artículo ya se sabe lo que opino de los gurús.
TECNOLOGÍAS FRONT-END
La compatibilidad entre navegadores web ha sido desde
siempre una merienda de negros y con la llegada de HTML5 y
CSS3 la situación no ha mejorado para nada. La oveja negra
es Internet Explorer sobre todo las versiones anteriores a la 10.
Es virtualmente imposible desarrollar una aplicación HTML5
cross-browser sin una librería de compatibilidad como
Modernizr. CSS también tiene tantas sutiles diferencias que
prácticamente nadie desarrolla sin un paraguas como YUI. Y
para el desarrollo en JavaScript es totalmente común encontrar
JQuery o Dojo. Existen decenas de otras librerías como
Bootstrap, Backbone, CoffeeScript, Datejs, RequireJS,
PhantomJS, etc. O frameworks como Ext.js. Incluso se puede
desarrollar en Java Swing y convertirlo a JavaScript con GWT
o, aún más exótico, desarrollar en Dart y compilarlo a
Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 4
JavaScript. Una herramienta muy útil para componer CSS es
LESS aunque hay que precompilar siempre los scripts puesto
que a Rhino le puede costar 2 segundos compilar un archivo
.less de ~30Kb lo cual es un tiempo muy significativo en la
carga de una página web.
CONCLUSIÓNES
– Ninguna plataforma es óptima para todas las
necesidades. Para concluir con algunas reglas
sencillas, mi propuesta es la siguiente:
– Si tienes que desarrollar un sitio web para una
multinacional, o hacer integraciones complejas con
otras plataformas o realmente vas a crecer mucho
tanto en tráfico como en número de desarrolladores,
entonces elige Java sobre PostgreSQL.
– Si quieres tener presencia online eficaz y asequible,
incluso e-commerce, pero tu website no es el factor
crítico exclusivo de tu negocio, entonces elige
LAMP.
– Si tienes que desarrollar una intranet o un sitio web
corporativo a sabiendas de que los usuarios tendrán
Internet Explorer y tecnologías Microsoft entonces
elige .NET sobre SQL Server
– Si necesitas una web con contenidos dinámicos
mantenida por un equipo compacto y eficiente de
programadores entonces elige Django sobre
PostgreSQL o RoR sobre MySQL.
REFERENCIAS
– MONTORO, Sergio, “pastilla roja” octubre 2013.
http://lapastillaroja.net/2013/10/como-seleccionar-
plataforma-tecnologica/
– GONZÁLEZ, Javier A, Presidente Rama IEEE
Universidad Pedagógica y Tecnológica de Colombia
2002
http://aulavirtual.tecnologicocomfenalcovirtual.edu.c
o/aulavirtual/mod/resource/view.php?id=31881
ELABORADO POR:
Shirley Sanchez
Ingeniera de Sistemas (formación)
FUNDACION UNIVERSITARIA SAN MARTIN

Más contenido relacionado

La actualidad más candente

TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION II
TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION IITECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION II
TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION IIChristian Garcia Gamio
 
Tecnologías detrás de las redes sociales
Tecnologías detrás de las redes socialesTecnologías detrás de las redes sociales
Tecnologías detrás de las redes socialesKaty Vega Pio
 
Desarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas LibresDesarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas LibresDiego Fernando Marin
 
Apache
ApacheApache
ApacheXavier
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORJOSELINE
 
Tarea multiplataforma
Tarea multiplataformaTarea multiplataforma
Tarea multiplataformaUAE
 
Programación web
Programación web Programación web
Programación web Andy015
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesTecsisa
 
Conceptos Web, Organizadores Gráficos.
Conceptos Web, Organizadores Gráficos.Conceptos Web, Organizadores Gráficos.
Conceptos Web, Organizadores Gráficos.Jhoana Casas Guzman
 
Requerimientos Técnicos e Instalación de un LMS
Requerimientos Técnicos e Instalación de un LMSRequerimientos Técnicos e Instalación de un LMS
Requerimientos Técnicos e Instalación de un LMSLida Barba
 
Tecnologías detrás de las Redes Sociales
Tecnologías detrás de las Redes SocialesTecnologías detrás de las Redes Sociales
Tecnologías detrás de las Redes SocialesCarmen Salinas Zavala
 
Exposicion De Joomla Manuel Lopez
Exposicion De Joomla Manuel LopezExposicion De Joomla Manuel Lopez
Exposicion De Joomla Manuel Lopezfrias17
 

La actualidad más candente (15)

TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION II
TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION IITECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION II
TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION II
 
Tecnologías detrás de las redes sociales
Tecnologías detrás de las redes socialesTecnologías detrás de las redes sociales
Tecnologías detrás de las redes sociales
 
Desarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas LibresDesarrollo Web con Herramientas Libres
Desarrollo Web con Herramientas Libres
 
Apache
ApacheApache
Apache
 
COMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADORCOMPLEMENTOS DEL NAVEGADOR
COMPLEMENTOS DEL NAVEGADOR
 
Tarea multiplataforma
Tarea multiplataformaTarea multiplataforma
Tarea multiplataforma
 
Ragan
RaganRagan
Ragan
 
Programación web
Programación web Programación web
Programación web
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresariales
 
Conceptos Web, Organizadores Gráficos.
Conceptos Web, Organizadores Gráficos.Conceptos Web, Organizadores Gráficos.
Conceptos Web, Organizadores Gráficos.
 
Tecnologías detrás de las Redes Sociales
Tecnologías detrás de las Redes SocialesTecnologías detrás de las Redes Sociales
Tecnologías detrás de las Redes Sociales
 
Requerimientos Técnicos e Instalación de un LMS
Requerimientos Técnicos e Instalación de un LMSRequerimientos Técnicos e Instalación de un LMS
Requerimientos Técnicos e Instalación de un LMS
 
Tecnologías detrás de las Redes Sociales
Tecnologías detrás de las Redes SocialesTecnologías detrás de las Redes Sociales
Tecnologías detrás de las Redes Sociales
 
Power point 3 y 4
Power point 3 y 4Power point 3 y 4
Power point 3 y 4
 
Exposicion De Joomla Manuel Lopez
Exposicion De Joomla Manuel LopezExposicion De Joomla Manuel Lopez
Exposicion De Joomla Manuel Lopez
 

Destacado

OLA VCS
OLA VCSOLA VCS
OLA VCSDaaw
 
Emerald cut engagement ring
Emerald cut engagement ringEmerald cut engagement ring
Emerald cut engagement ringdesignsbyknr11
 
Lugares turísticos de ilo
Lugares turísticos de iloLugares turísticos de ilo
Lugares turísticos de iloMariopoma
 
Gestion Pública y Social2
Gestion Pública y Social2Gestion Pública y Social2
Gestion Pública y Social2Fernando Murillo
 
Conclusions
ConclusionsConclusions
ConclusionsSERWRC
 
Politicas de eco urbanismo
Politicas de eco urbanismoPoliticas de eco urbanismo
Politicas de eco urbanismoFernando Murillo
 
Naacp Freedom Fund Dinner Presentation
Naacp Freedom Fund Dinner PresentationNaacp Freedom Fund Dinner Presentation
Naacp Freedom Fund Dinner PresentationApostle Dr. Norma Gray
 
Descentralización, José Arista - CADE Ejecutivos 2014
Descentralización, José Arista - CADE Ejecutivos 2014Descentralización, José Arista - CADE Ejecutivos 2014
Descentralización, José Arista - CADE Ejecutivos 2014IPAE
 
IT Capability Frameworks
IT Capability FrameworksIT Capability Frameworks
IT Capability FrameworksVishal Sharma
 
Spelling
SpellingSpelling
SpellingSERWRC
 
Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014
Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014
Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014IPAE
 
Digital Transformation
Digital TransformationDigital Transformation
Digital TransformationVishal Sharma
 

Destacado (20)

Un dia como docente 2
Un dia como docente 2Un dia como docente 2
Un dia como docente 2
 
Power
PowerPower
Power
 
็ํ๊๊Father's Day
็ํ๊๊Father's  Day็ํ๊๊Father's  Day
็ํ๊๊Father's Day
 
11 Geluksplekken Eindhoven
11 Geluksplekken Eindhoven11 Geluksplekken Eindhoven
11 Geluksplekken Eindhoven
 
La musica
La musicaLa musica
La musica
 
OLA VCS
OLA VCSOLA VCS
OLA VCS
 
Emerald cut engagement ring
Emerald cut engagement ringEmerald cut engagement ring
Emerald cut engagement ring
 
cert reg
cert regcert reg
cert reg
 
Lugares turísticos de ilo
Lugares turísticos de iloLugares turísticos de ilo
Lugares turísticos de ilo
 
Gestion Pública y Social2
Gestion Pública y Social2Gestion Pública y Social2
Gestion Pública y Social2
 
Conclusions
ConclusionsConclusions
Conclusions
 
Mapa conceptual
Mapa conceptualMapa conceptual
Mapa conceptual
 
Politicas de eco urbanismo
Politicas de eco urbanismoPoliticas de eco urbanismo
Politicas de eco urbanismo
 
Naacp Freedom Fund Dinner Presentation
Naacp Freedom Fund Dinner PresentationNaacp Freedom Fund Dinner Presentation
Naacp Freedom Fund Dinner Presentation
 
Descentralización, José Arista - CADE Ejecutivos 2014
Descentralización, José Arista - CADE Ejecutivos 2014Descentralización, José Arista - CADE Ejecutivos 2014
Descentralización, José Arista - CADE Ejecutivos 2014
 
IT Capability Frameworks
IT Capability FrameworksIT Capability Frameworks
IT Capability Frameworks
 
E 098 - Sentence fragments
E 098 - Sentence fragmentsE 098 - Sentence fragments
E 098 - Sentence fragments
 
Spelling
SpellingSpelling
Spelling
 
Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014
Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014
Visión del Perú al Tercio de Siglo, Rolando Arellano - CADE Ejecutivos 2014
 
Digital Transformation
Digital TransformationDigital Transformation
Digital Transformation
 

Similar a Plataformas para el desarrollo de aplicaciones web

comparava lenguajes web
comparava lenguajes webcomparava lenguajes web
comparava lenguajes webjohn_benitez
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014Neptuno Networks
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webimei_02
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAHelmilpa
 
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
 
Java basico 2
Java basico 2Java basico 2
Java basico 2jtk1
 
Java basico 2
Java basico 2Java basico 2
Java basico 2jtk1
 
plataformas de e-learning
plataformas de e-learningplataformas de e-learning
plataformas de e-learningyoslinroes
 
Presentación lenguajes de programación
Presentación lenguajes de programaciónPresentación lenguajes de programación
Presentación lenguajes de programaciónzanahoria2015
 
Presentación lenguajes de programación
Presentación lenguajes de programaciónPresentación lenguajes de programación
Presentación lenguajes de programaciónzanahoria2015
 
Presentación lenguajes de programación
Presentación lenguajes de programaciónPresentación lenguajes de programación
Presentación lenguajes de programaciónzanahoria2015
 

Similar a Plataformas para el desarrollo de aplicaciones web (20)

LARAVEL-01-INTRODUCCION.pptx
LARAVEL-01-INTRODUCCION.pptxLARAVEL-01-INTRODUCCION.pptx
LARAVEL-01-INTRODUCCION.pptx
 
comparava lenguajes web
comparava lenguajes webcomparava lenguajes web
comparava lenguajes web
 
My programming language 04 05-2014
My programming language 04 05-2014My programming language 04 05-2014
My programming language 04 05-2014
 
IDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizadosIDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizados
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-web
 
Cabrera ies 2011
Cabrera ies 2011Cabrera ies 2011
Cabrera ies 2011
 
9
99
9
 
Estudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVAEstudio comparativo de PHP, ASP.NET Y JAVA
Estudio comparativo de PHP, ASP.NET Y JAVA
 
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
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
plataformas de e-learning
plataformas de e-learningplataformas de e-learning
plataformas de e-learning
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Presentación lenguajes de programación
Presentación lenguajes de programaciónPresentación lenguajes de programación
Presentación lenguajes de programación
 
Presentación lenguajes de programación
Presentación lenguajes de programaciónPresentación lenguajes de programación
Presentación lenguajes de programación
 
Presentación lenguajes de programación
Presentación lenguajes de programaciónPresentación lenguajes de programación
Presentación lenguajes de programación
 
T8 cgi applets...
T8 cgi applets...T8 cgi applets...
T8 cgi applets...
 
Desarrollo en el servidor
Desarrollo en el servidorDesarrollo en el servidor
Desarrollo en el servidor
 
189 206
189 206189 206
189 206
 

Último

TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptxmaitecuba2006
 
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDADPRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDADmirellamilagrosvf
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebraleverchanging2020
 
BOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuariaBOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuariamesiassalazarpresent
 
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworkingErgonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworkingGonzalo141557
 
monografia sobre puentes 1234456785432o5
monografia sobre puentes 1234456785432o5monografia sobre puentes 1234456785432o5
monografia sobre puentes 1234456785432o5garciacordovadiuler
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaYoverOlivares
 
Deilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - ConstrucciónDeilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - ConstrucciónDeilybethAinellAlaaY
 
DISEÑO DE LOSAS EN UNA DIRECCION (CONCRETO ARMADO II )
DISEÑO DE LOSAS EN UNA DIRECCION  (CONCRETO ARMADO II )DISEÑO DE LOSAS EN UNA DIRECCION  (CONCRETO ARMADO II )
DISEÑO DE LOSAS EN UNA DIRECCION (CONCRETO ARMADO II )FELIXGUMERCINDOFLORE
 
PERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.ppt
PERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.pptPERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.ppt
PERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.pptJorgeST4
 
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALESLA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALESLuisLobatoingaruca
 
Los vidrios eléctricos en un automóvil.pptx
Los vidrios eléctricos en un automóvil.pptxLos vidrios eléctricos en un automóvil.pptx
Los vidrios eléctricos en un automóvil.pptxIsraelRebolledo1
 
Procesos de Manufactura 1_Introducción a la ciencia de los materiales.pptx
Procesos de Manufactura 1_Introducción a la ciencia de los materiales.pptxProcesos de Manufactura 1_Introducción a la ciencia de los materiales.pptx
Procesos de Manufactura 1_Introducción a la ciencia de los materiales.pptxIvanFigueroa71
 
4.Clase-DIAGRAMAS DE FLUJO DFD Programacion.pptx
4.Clase-DIAGRAMAS DE FLUJO DFD  Programacion.pptx4.Clase-DIAGRAMAS DE FLUJO DFD  Programacion.pptx
4.Clase-DIAGRAMAS DE FLUJO DFD Programacion.pptxalejandroconfor23
 
PresentaciónReto_Equipo6 Explicacion del reto de freno electromagnetico
PresentaciónReto_Equipo6 Explicacion del reto de freno electromagneticoPresentaciónReto_Equipo6 Explicacion del reto de freno electromagnetico
PresentaciónReto_Equipo6 Explicacion del reto de freno electromagneticoa00834109
 

Último (20)

DESVIACION
DESVIACION DESVIACION
DESVIACION
 
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptxTEMA 11.  FLUIDOS-HIDROSTATICA.TEORIApptx
TEMA 11. FLUIDOS-HIDROSTATICA.TEORIApptx
 
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDADPRESENTACION REUNION DEL COMITE DE SEGURIDAD
PRESENTACION REUNION DEL COMITE DE SEGURIDAD
 
Vehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebralVehiculo para niños con paralisis cerebral
Vehiculo para niños con paralisis cerebral
 
Tasaciones Ñuñoa - La Reina - Las Condes
Tasaciones Ñuñoa - La Reina - Las CondesTasaciones Ñuñoa - La Reina - Las Condes
Tasaciones Ñuñoa - La Reina - Las Condes
 
Sistemas de posicionamiento global (G.P.S.).pdf
Sistemas de posicionamiento global (G.P.S.).pdfSistemas de posicionamiento global (G.P.S.).pdf
Sistemas de posicionamiento global (G.P.S.).pdf
 
BOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuariaBOTAnica mesias orland role.pptx1 ciclo agropecuaria
BOTAnica mesias orland role.pptx1 ciclo agropecuaria
 
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworkingErgonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
Ergonomía_MÉTODO_ROSA. Evaluación de puesto de trabajo de oficina - coworking
 
monografia sobre puentes 1234456785432o5
monografia sobre puentes 1234456785432o5monografia sobre puentes 1234456785432o5
monografia sobre puentes 1234456785432o5
 
Criterios de la primera y segunda derivada
Criterios de la primera y segunda derivadaCriterios de la primera y segunda derivada
Criterios de la primera y segunda derivada
 
Deilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - ConstrucciónDeilybeth Alaña - Operaciones Básicas - Construcción
Deilybeth Alaña - Operaciones Básicas - Construcción
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
 
DISEÑO DE LOSAS EN UNA DIRECCION (CONCRETO ARMADO II )
DISEÑO DE LOSAS EN UNA DIRECCION  (CONCRETO ARMADO II )DISEÑO DE LOSAS EN UNA DIRECCION  (CONCRETO ARMADO II )
DISEÑO DE LOSAS EN UNA DIRECCION (CONCRETO ARMADO II )
 
PERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.ppt
PERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.pptPERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.ppt
PERMEABILIDAD-DE-LOS-SUELOS-OKOK-ppt.ppt
 
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALESLA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
LA SEÑALES ANALOGICAS Y LAS SEÑALES DIGITALES
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
 
Los vidrios eléctricos en un automóvil.pptx
Los vidrios eléctricos en un automóvil.pptxLos vidrios eléctricos en un automóvil.pptx
Los vidrios eléctricos en un automóvil.pptx
 
Procesos de Manufactura 1_Introducción a la ciencia de los materiales.pptx
Procesos de Manufactura 1_Introducción a la ciencia de los materiales.pptxProcesos de Manufactura 1_Introducción a la ciencia de los materiales.pptx
Procesos de Manufactura 1_Introducción a la ciencia de los materiales.pptx
 
4.Clase-DIAGRAMAS DE FLUJO DFD Programacion.pptx
4.Clase-DIAGRAMAS DE FLUJO DFD  Programacion.pptx4.Clase-DIAGRAMAS DE FLUJO DFD  Programacion.pptx
4.Clase-DIAGRAMAS DE FLUJO DFD Programacion.pptx
 
PresentaciónReto_Equipo6 Explicacion del reto de freno electromagnetico
PresentaciónReto_Equipo6 Explicacion del reto de freno electromagneticoPresentaciónReto_Equipo6 Explicacion del reto de freno electromagnetico
PresentaciónReto_Equipo6 Explicacion del reto de freno electromagnetico
 

Plataformas para el desarrollo de aplicaciones web

  • 1. Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 1  Resumen—Este ensayo nos dará una idea general acerca de las plataformas utilizadas para crear y/o desarrollar aplicaciones web, identificaremos los principales lenguajes de programación (o plataformas de desarrollo) para la implementación aplicaciones web y los servidores (de aplicaciones) en los cuales se instalan dichas aplicaciones (por lenguaje de programación). Índice de Términos: Plataforma de desarrollo, Aplicaciones web, programación, implementación. I. INTRODUCCIÓN En la actualidad Internet es la mayor fuente de contenidos donde los usuarios pueden buscar información sobre lo que necesitan. Los motores de búsqueda Como Google son los encargados de esta actividad, que generalmente dan como resultado un exagerado volumen de información, tan grande que encontrar la que se ajuste a las necesidades personales podría consumir mucho tiempo del cual no se dispone. Los sistemas de búsqueda basan su proceso en fórmulas matemáticas y las coincidencias de las palabras escritas por el usuario en el texto de los documentos encontrados. El objetivo de este trabajo es estudiar la tecnología necesaria que propone una Solución a los problemas que hoy aquejan nuestro sistema obsoleto a la hora de realizar cualquier actividad de la vida diaria. Este trabajo inicia con una pequeña introducción sobre conceptos de Lenguajes de programación, Luego la unidad 2 muestra la implementación de las diferentes aplicaciones web, y los servidores en los que se instalaran dichas aplicaciones. CRITERIOS PARA EVALUAR UNA PLATAFORMA DE DESARROLLO. A continuación las 5 plataformas más populares de lado servidor: Java, PHP, Microsoft .NET, Python y Ruby On Rails. Las plataformas se evaluaran en base a los siguientes Criterios: – Grado de madurez. – Tamaño y grado de actividad de la comunidad. – Disponibilidad de librerías y aplicaciones de terceros. – Disponibilidad y coste salarial de los programadores. – Dificultad de la curva de aprendizaje. – Compatibilidad con el resto del ecosistema. – Rendimiento y escalabilidad. La productividad como ya es sabido si se usan bien, todas ellas ofrecen un grado de productividad equivalente, o, al menos no lo bastante diferente como para que debiera ser relevante. ¿POR QUÉ? LA MADUREZ Hay proyectos, como por ejemplo node.js que se crearon para resolver problemas específicos. En el caso de node.js el tratamiento de peticiones AJAX desde las nuevas aplicaciones HTML5. Node.js ofrece una modalidad de procesamiento asíncrono junto con la propuesta de programar en JavaScript igualmente en el lado cliente y en el servidor Es más complicado de aprender y de codificar en Tomcat, ciertamente, pero a cambio se tiene una plataforma mucho más madura, eficiente y compatible que node.js. Más madura implica, por ejemplo, casi siempre mejor documentada. Las carencias de la documentación, por cierto, son un mal endémico en las librerías JavaScript cliente incluso en las más maduras como Dojo o YUI. EL TAMAÑO Es relevante porque cuanto mayor sea la comunidad más probable es que hay alguien que se haya topado con el mismo problema que nosotros y lo haya resuelto. Más probable que en Stack Overflow o en cualquier otro sitio de preguntas y respuestas hallemos la solución a un problema que nos PLATAFORMAS PARA EL DESARROLLO DE APLICACIONES WEB Diana Shirley Sanchez Hernandez Electiva Profesional A3 FUSM - Fundación Universitaria San Martin Palmira-Colombia preciosanchez@gmail.com
  • 2. Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 2 mantiene atascados. LA DISPONIBILIDAD De aplicaciones y librerías de terceros. El framework de desarrollo es sólo la herramienta base para construir una aplicación. Justo a continuación de elegir la plataforma hay que elegir las librerías. Por ejemplo, Java domina absolutamente el entorno financiero y bancario porque su middleware es el mejor. Lo hay para todos los gustos desde JBoss a TIBCO, pasando por Informatica UM. Los frameworks más modernos de todos los lenguajes han ido incorporando librerías de serie. Java apareció en 1995 y, más que un lenguaje para aplicaciones web estaba pensado con filosofía WORA (Write Once Run Anywhere) y para tener la menor cantidad de dependencias posible. Ruby On Rails apareció 10 años después e incorporaba en su arquitectura el paradigma Modelo Vista Controlador (MVC) y mecanismos como ActiveRecord que permiten que las clases tomen de la base de datos los nombres de la columnas sin necesidad de definirlas explícitamente en el código. Para conseguir con Java un framework funcionalmente similar a Ruby on Rails se necesita, al menos, una librería MVC como Struts, una capa de persistencia como Hibernate, soporte de servicios REST como Jersey, una librería de tags como JSTL y JavaMail. La cantidad de librerías Java es tal que existen empresas como Black Duck en EE.UU. Autentia en España especializadas en evaluarlas y dar formación a los clientes corporativos. DISPONIBILIDAD Y COSTE Si se estima que el proyecto requerirá 40 o 50 desarrolladores entonces encontrar y contratar personas puede llegar a ser muy difícil y costoso. Si se estima que el proyecto necesitará más de 50 desarrolladores, entonces es que se ha hecho mal el plan y bien hay que partir el proyecto en trozos de menos de 50, bien sería mejor cancelarlo y tirarlo todo a la basura antes de que se queme una burrada de dinero en producir un monstruo. DIFICULTAD DE LA CURVA DE APRENDIZAJE. Todas las plataformas son igualmente buenas en cuanto a productividad. Pero no todas son igualmente fáciles de aprender. Si se tiene cuenta el tiempo que requiere un programador novato para aprender cómo funciona el invento, entonces sí que existen diferencias entre unas y otras. El orden de más fácil a más difícil es: PHP, Ruby On Rails, .NET, Python y Java. COMPATIBILIDAD CON EL RESTO DEL ECOSISTEMA. Rara vez las aplicaciones existen de forma aislada e independiente unas de otras. En general, las diferentes plataformas no son fácilmente interoperables unas con otras. Existen muchas herramientas de integración y formatos de representación de datos independientes del lenguaje como Protocol Buffers, pero lo más común, por fácil, es que las plataformas en dos lenguajes diferentes se acaben integrando vía base de datos relacional, XML o ficheros de texto delimitado. RENDIMIENTO Y ESCALABILIDAD. A grosso modo, si se tiene una base de datos con tablas que no superan el millón de registros y un sitio web que no supera las cien mil visitas al día, entonces la escalabilidad no será una cuestión relevante se use lo que se use a menos que el programador sea realmente malo, pues cualquier servidor quad-core medio moderno puede atender tal volumen de trabajo sobre una base de datos relacional. II. LENGUAJES JAVA Java es la plataforma más extendida en el entorno corporativo. Se trata de una tecnología muy madura y popular que cuenta con innumerables herramientas de todo tipo y es bastante sencillo encontrar programadores. Casi todo el mundo que desarrolla en Java usa Eclipse o Netbeans como IDE. Ambos son bastante pesados y a mi personalmente me gusta más JCreator, aunque en un portátil con 4Gb de RAM tanto Eclipse como Netbeans corren perfectamente. La principal pega de Java para el desarrollo de aplicaciones web es que la plataforma no se concibió originalmente para eso, sino que fueron apareciendo proyectos como Tomcat en 1999. Las extensiones a la plataforma se acuerdan mediante el Java Community Process (JCP) compuesto por más de mil miembros que trabajan sobre más de 300 Java Specification Requests (JSR) Estas especificaciones tienden a ser muy densas y a veces salen cosas realmente retorcidas como JavaMail. Algunos presuntos gurús han difundido el mito de que una startup no debería basar su tecnología en Java. Esto es radicalmente falso pues Java es perfectamente compatible con el modelo lean en boga. La curva de aprendizaje de Java no es suave. PHP También conocido popularmente como LAMP (Linux+Apache+MySQL+PHP). PHP (acrónimo recursivo de Hypertext Pre-processor) es coetáneo de Java. Apareció también en 1995, pero, a diferencia de Java, estaba pensado desde el principio como un lenguaje que se pudiera incorporar en documentos HTML. La gran ventaja de PHP es que resulta sencillo empezar con él y existe mucha documentación online. Es más fácil aprender PHP que Java, y todos los ISP proprocionan algún tipo de stack LAMP preconfigurado. Es por consiguiente sencillo encontrar programadores PHP a precios asequibles. PHP no proporciona un sistema MVC por defecto pero existen muchas opciones para ello. A mi me gusta CakePHP mas se pueden contar las alternativas por
  • 3. Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 3 decenas siendo Zend probablemente la más popular. Hay muchas startups de éxito basadas en PHP, incluídas algunas de las de mayor tráfico como Wikipedia, Yahoo o Facebook entre ellas. El lenguage en sí mismo presenta algunas limitaciones importantes. No se pueden crear de forma natural pools de conexiones, no hay sesiones, el módulo mod_php para Apache permite mantener sesiones pero mucha gente lo considera intrínsecamente inseguro. La propia facebook acabó desarrollando su propio compilador just in time (JIT) HHVM para poder alcanzar el rendimiento que necesitaban con PHP. .NET Si Sun no hubiese creado Java probablemente .NET dominaría ahora mismo todo el panorama de software empresarial. El punto fuerte de plataforma de Microsoft es el grado de integración entre el escritorio y las aplicaciones web. Si yo tuviese que desarrollar una Intranet a sabiendas de que los usuarios van a tener todos Windows no lo dudaría y la desarrollaría sobre .NET. Mas para una startup yo nunca elegiría .NET no por problema alguno con la tecnología sino simplemente porque el software de Microsoft no es Open Source. .NET sólo puede correr en servidores distintos de Microsoft Internet Information Server si se usa Mono y los servidores Windows son más caros de alojar que los Linux. Además usar SQL Server (la elección natural para .NET) también es bastante más caro que elegir PostgreSQL o MySQL. PYTHON Python para la web es sinónimo de Django. Django apareció en 2005 como framework para la creación de sitios web de contenidos dinámicos, y, si eso es lo que hay que hacer, puede ser una excelente elección. Python es un lenguaje interpretado, no usa bytecodes como Java, y aunque existen versiones de Python que pueden correr sobre JVM yo no conozco a nadie que las use en producción. El tipado dinámico y los tipos de alto nivel hacen que el código Python sea más corto que Java. Como RoR, Django incluye un subsistema MVC (aunque algo ecléctico) y también mapeador objeto-relacional, un sistema extensible de plantillas basado en etiquetas,un despachadorde URLs basado en expresiones regulares y middleware para cacheo, compresión de la salida, normalización de URLs, protección Cross-Site Request Forgery (CSRF) y soporte de sesiones. Lo normal es ejecutar Python con el mod_python de Apache 2. Aunque gracias al soporte WSGI se puede correr también sobre Lighttpd. En general es de esperar que el rendimiento de Python sea inferior al de Java y, por consiguiente, ello puede ser un obstáculo si se pretende llevar el tráfico hasta el límite. Algunos sitios web de alto tráfico como Instagram o Pinterest están desarrollados con Django, aunque ellos mismos han reconocido que tuvieron problemas con la escalabilidad debido a su vertiginoso crecimiento, no sólo por Python sino también en gran parte por llegar al límite de las tecnologías de almacenamiento de datos. My experiencia personal con Python/Django es que es muy bueno como como “lenguaje pegamento”, es como un “Perl con esteroides”, pero no es tan bueno como lenguaje para una plataforma, porque permite programar muy sucio y porque es fácil embarullar la capa del Controlador en el MVC de Django. Python es relativamente sencillo de aprender, y a la mayoría de los programadores profesionales les gusta cuando llegan a conocerlo, pero, debido a que existe menos demanda de programadores Python que de Java, .NET o PHP estos son más difíciles de encontrar. RUBY ON RAILS Ningún framework de los anteriores levanta tantas pasiones a favor y en contra que Ruby On Rails. Como Django, RoR es un framework que se pensó desde el principio para el diseño de aplicaciones web. Es un framework de pila completa, lo que significa que trata de integrarlo todo desde la base de datos hasta el código que corre en el navegador cliente. RoR incorpora de serie el paradigma MVC, el mapeo objeto- relacional, infraestructura para crear recursos REST y otras funcionalidades propias del desarrollo web como un detector de inyección de JavaScript y SQL. RoR también incorpora JQuery, y se pueden conseguir herramientas de terceros como Aptana para el desarrollo de las páginas HTML5. Los críticos de RoR argumentan que es lento y que no escala bien en webfarms. Es cierto que las sesiones sólo se pueden compartir en Ruby a través de la base de datos. Pero es que yo soy partidario de que las aplicaciones no deben mantener nada en una sesión de lado servidor sino que se deben usar cookies para mantener las credenciales del usuario y luego cachear el resto. El sitio web más grande basado en RoR probablemente es Twitter. Otra crítica común es que, debido a la integración transparente entre el lenguage y la base de datos, no se puede usar Ruby fácilmente contra un modelo de datos que ya esté creado o siga unas normas de programación del estilo de sólo poder acceder a la información vía procedimientos almacenados, o, más bien, sí se puede, pero entonces se le mata la magia de ActiveRecord al lenguaje. Ruby es relativamente fácil de aprender, más o menos como PHP sólo que la documentación de Ruby no es tan extensa ni detallada. Hay muchos menos programadores de Ruby que de Java o de PHP. Sus defensores argumentan que los programadores de Ruby son pocos porque son todos unos gurús, mas creo que leyendo este artículo ya se sabe lo que opino de los gurús. TECNOLOGÍAS FRONT-END La compatibilidad entre navegadores web ha sido desde siempre una merienda de negros y con la llegada de HTML5 y CSS3 la situación no ha mejorado para nada. La oveja negra es Internet Explorer sobre todo las versiones anteriores a la 10. Es virtualmente imposible desarrollar una aplicación HTML5 cross-browser sin una librería de compatibilidad como Modernizr. CSS también tiene tantas sutiles diferencias que prácticamente nadie desarrolla sin un paraguas como YUI. Y para el desarrollo en JavaScript es totalmente común encontrar JQuery o Dojo. Existen decenas de otras librerías como Bootstrap, Backbone, CoffeeScript, Datejs, RequireJS, PhantomJS, etc. O frameworks como Ext.js. Incluso se puede desarrollar en Java Swing y convertirlo a JavaScript con GWT o, aún más exótico, desarrollar en Dart y compilarlo a
  • 4. Fundación Universitaria San Martin. Sánchez PLATAFORMAS PARA DESARROLLAR APLICACIONES WEB 4 JavaScript. Una herramienta muy útil para componer CSS es LESS aunque hay que precompilar siempre los scripts puesto que a Rhino le puede costar 2 segundos compilar un archivo .less de ~30Kb lo cual es un tiempo muy significativo en la carga de una página web. CONCLUSIÓNES – Ninguna plataforma es óptima para todas las necesidades. Para concluir con algunas reglas sencillas, mi propuesta es la siguiente: – Si tienes que desarrollar un sitio web para una multinacional, o hacer integraciones complejas con otras plataformas o realmente vas a crecer mucho tanto en tráfico como en número de desarrolladores, entonces elige Java sobre PostgreSQL. – Si quieres tener presencia online eficaz y asequible, incluso e-commerce, pero tu website no es el factor crítico exclusivo de tu negocio, entonces elige LAMP. – Si tienes que desarrollar una intranet o un sitio web corporativo a sabiendas de que los usuarios tendrán Internet Explorer y tecnologías Microsoft entonces elige .NET sobre SQL Server – Si necesitas una web con contenidos dinámicos mantenida por un equipo compacto y eficiente de programadores entonces elige Django sobre PostgreSQL o RoR sobre MySQL. REFERENCIAS – MONTORO, Sergio, “pastilla roja” octubre 2013. http://lapastillaroja.net/2013/10/como-seleccionar- plataforma-tecnologica/ – GONZÁLEZ, Javier A, Presidente Rama IEEE Universidad Pedagógica y Tecnológica de Colombia 2002 http://aulavirtual.tecnologicocomfenalcovirtual.edu.c o/aulavirtual/mod/resource/view.php?id=31881 ELABORADO POR: Shirley Sanchez Ingeniera de Sistemas (formación) FUNDACION UNIVERSITARIA SAN MARTIN