Está en la página 1de 11

Aplicaciones Web Vs.

Aplicaciones de Escritorio

1 Aplicaciones Web:
Se nombra Aplicación Web al Software que habita en una computadora, llamada
servidor web, al cual los clientes o usuarios pueden acceder y utilizar a través de
Internet o Intranet mediante un navegador web, para así obtener y aprovechar los
servicios que ofrece. (Zofío Jiménez, 2013).

Se define Servicios Web al conjunto de aplicaciones que tienen la capacidad de


interoperar en la Web. Estas tecnologías intercambian datos entre sí con el objetivo
de ofrecer sus servicios y presentar información al usuario de forma dinámica.

Un Servidor Web es un programa que atiende y responde a las diferentes peticiones


de los navegadores proporcionando los recursos que soliciten usando el protocolo
HTTP o HTTPS. (Ferrer Martínez, 2014).

La World Wide Web (WWW) es un conjunto de protocolos que permite la consulta


remota de archivos de hipertexto que utiliza internet como medio de transmisión.
(Zofío Jiménez, 2013).

Las Páginas Web se dividen en dos formatos: páginas web estáticas y páginas web
dinámicas. Las primeras son aquellas que muestran toda la información relevante
al usuario limitándolo en la interacción con el sitio y servidor, por lo que siempre
despliegan el mismo contenido. Las segundas permiten que se haga una
comunicación continua entre el usuario y servidor, generando el contenido del sitio
dinámicamente de acuerdo con lo solicitado por el usuario. Estas últimas son las
que se consideran aplicaciones web, ya que permiten que los usuarios accedan a
los datos concernientes a sus peticiones, tales como consultar correo electrónico,
gestores de bases de datos, envío de formularios, etc.

Para la creación de páginas web dinámicas se implementó un método que


permitiera generar el contenido en tiempo real de acuerdo con las peticiones,
conocido como CGI (Common Gateway Interface), el cual permitía pasar
información entre el servidor HTTP y programas externos. Estos podían ser
desarrollados con cualquier lenguaje de programación. Sin embargo, los CGI tenían
un punto en contra, que era que con cada petición el servidor web ejecutaba el CGI
y muchos de ellos estaban escritos en lenguajes interpretados por lo que requerían
de un run-time environment. Razón por la cual, posteriormente surgieron como
alternativa los lenguajes de programación (RXML, PHP, VBScript), que permitieran
dotar al servidor de un interprete, de manera que disminuyera el tiempo de ejecución
de éste. (Mateu, 2004).

A partir de esto se formaron nuevas arquitecturas y lenguajes de programación que


permitieran el desarrollo de aplicaciones web.
1.1 Ventajas de las Aplicaciones Web

Las principales ventajas que tienen las aplicaciones web citadas en (Yeeply
Blog, 2019)(Vonica, 2016) (Compatibilidad de tu web con distintos
navegadores - manual de HTML y CSS.) (Zamora, 2012) son:

– Utilizan lenguajes conocidos entre los programadores con bajas curvas de


aprendizaje, como son HTML, CSS, PHP y JavaScript.
– Puede ser utilizada en cualquier dispositivo independientemente de su
sistema operativo y su modalidad, de escritorio o portátil.
– Mayor portabilidad. Pueden ser ejecutadas desde cualquier dispositivo que
cuente con conexión a internet.
– Se ejecutan desde el navegador web del dispositivo, es decir, no requieren
ninguna instalación adicional.
– No requieren de actualizaciones para su uso, ya que solo con mantener el
código actualizado en el servidor, cada usuario obtendrá la versión más
reciente del sistema.
– No hay problemas de incompatibilidad entre versiones, ya que todos los
usuarios trabajan con la misma.
– El desarrollo de una aplicación web representa un costo menor al de una
aplicación de escritorio.
– El tiempo de desarrollo de una aplicación web es menor en comparación a
una de escritorio, de ahí que su costo sea menor.
– Los usuarios no requieren de equipos de grandes características ya que las
aplicaciones suelen ser muy ligeras y consumen muy pocos recursos de los
equipos.

1.2 Desventajas de las Aplicaciones Web

Autores como (Yeeply Blog, 2019) (Vonica, 2016) (Compatibilidad de tu web


con distintos navegadores - manual de HTML y CSS.) (Zamora, 2012),
mencionan algunas de las principales desventajas de las aplicaciones web:

– El uso de una conexión a internet es obligatorio para su operación.


– El tiempo de respuesta puede ser lento dependiendo de las características
del dispositivo y de la conexión a internet.
– Al estar siempre actualizada, es imposible que los usuarios puedan hacer
uso de una versión anterior, lo que a veces representa una frustración hacia
los usuarios.
– A diferencia de una aplicación de escritorio, el concepto de Disponibilidad
está comprometido, ya que tanto por error en el servidor o corrupción en los
archivos del sistema, puede suspender su capacidad de operar.
– Aunque puedan usarse en cualquier dispositivo, si ésta no fue desarrollada
de acuerdo con el principio Mobile First o Responsive, podrían presentarse
problemas en la visualización del contenido en equipos de pequeñas
dimensiones.
– Se tiene cierta restricción en el acceso a las características de hardware de
los dispositivos que la ejecutan.
– Algunas aplicaciones web no son compatibles con todos los navegadores y
su contenido u operación se ven afectados. El problema radica en que no
todos los navegadores interpretan en código HTML y CSS de la misma
manera, entre ellos existen pequeñas variaciones que son las que hacen que
el resultado no sea el mismo de unos a otros.
– Los desarrolladores pueden rastrear todo lo que los usuarios hacen dentro
de estas aplicaciones, por lo que puede causar problemas con la privacidad.

2 Aplicaciones de Escritorio
Las Aplicaciones de escritorio son aquellas que son capaces de ejecutar sus
funcionalidades sin necesidad de estar conectados a otros dispositivos. Se les
conoce también como Stand-alone Software.(IEEE standard glossary of software
engineering terminology, 1990).

2.1 Ventajas de las Aplicaciones de Escritorio

Las ventajas de las aplicaciones de escritorio son las siguientes:

– No requieren de conexión a internet para funcionar.


– El tiempo de respuesta es más rápido.
– Son más robustas y estables que las aplicaciones web.
– Si el desarrollador lo permite, puede hacerse la retro compatibilidad de
versiones, para que los usuarios hagan uso de las características de software
que prefieran.
– Suelen ser aplicaciones más seguras.
– Si no requieren el uso de internet, siempre se encuentran disponibles para
su uso.
– Aseguran su operación y correcta visualización para los dispositivos para los
que fueron desarrollados.

2.2 Desventajas de las Aplicaciones de Escritorio

Las principales desventajas de las aplicaciones de escritorio son:

– Requieren la adquisición de licencia.


– Su acceso se limita a los dispositivos en los que se encuentran instalados.
– La portabilidad es limitada.
– Requieren de una instalación personalizada en el dispositivo.
– Requieren actualización personalizada, y en muchas ocasiones éstas son
forzadas para su correcto funcionamiento.
– Dependen del sistema operativo y de las características y capacidades de
los equipos en los que se instalan.
– Requieren mayor tiempo en su desarrollo.
– Su costo es más elevado en comparación con una aplicación web.
– El desarrollo multiplataforma se hace complicado al tener que hacer uso de
diferentes lenguajes de programación.

3 Aplicaciones Web Vs. Aplicaciones de Escritorio


Los aspectos más importantes que se pueden destacar en la comparación de estas
modalidades son las siguientes:

3.1 Portabilidad
Tomando en cuenta que la portabilidad es la característica de que un software
pueda ejecutarse en diferentes plataformas y/o sistemas operativos, cabe destacar
que las aplicaciones web poseen esa gran ventaja por encima de las aplicaciones
de escritorio, ya que éstas, al no requerir de una instalación, y de acuerdo con las
características del desarrollo, es posible acceder a ellas desde cualquier dispositivo
que cuente con conexión a internet.

Sin embargo, es posible conseguir portabilidad en aplicaciones de escritorio. Esto


se logra con herramientas (toolchains) que transforman el código fuente a código
de máquina del procesador y al formato ejecutable del sistema operativo.

Otro método para lograr la portabilidad de aplicaciones es mediante la


implementación de lenguajes basados en máquinas virtuales. Por ejemplo, Java
permite que sus aplicaciones puedan ser ejecutadas en los diferentes sistemas
operativos, adquiriendo así el rango de aplicación multiplataforma.

De acuerdo con (Juanda, 2018), entre los lenguajes de programación, aquellos


usados para el desarrollo de aplicaciones de escritorio multiplataforma son:

– Plataforma Windows
o Visual C++
o Visual Basic
o C/C++ con Qt o GTK
o Java con AWT o Swing
– Plataforma MacOS
o Objective-C/Swift con Cocoa
o C/C++ con Qt o GTK
o Java con AWT o Swing
– Plataforma Linux
o C/C++ con Qt o GTK
o Java con AWT o Swing
3.2 Desarrollo
En los últimos años han surgido una gran cantidad de frameworks que simplifican
el desarrollo tanto de aplicaciones de escritorio como de las aplicaciones web, los
cuales implementan una metodología y estructura para el desarrollo de proyectos
de software, logrando que la codificación sea más rápida, sencilla y fácil de
entender. (Bravo, 2016)

Las ventajas del uso de frameworks son las siguientes:


– Buenas prácticas de desarrollo con uso de patrones.
– Estructura y organización de código predeterminada.
– Evita duplicidad de código y favorece a la reutilización.
– Facilita el mantenimiento y la colaboración con otros desarrolladores.
– Seguridad y validación facilitados.
– Fácil enrutamiento.
– Trabajos con base de datos con Mapeo Relacional de Objetos (ORM).

Sus desventajas son:

– Gran curva de aprendizaje.


– Menor rendimiento ya que consumen más recursos.
– Si la aplicación es pequeña ocupará más espacio del que necesita.
– Grandes cambios entre las versiones del framework.

No solo existen frameworks para el desarrollo de aplicaciones únicamente en estas


dos ramas (Web y de escritorio), sino que también ha sido posible mediante nuevas
arquitecturas desarrollar aplicaciones web que se comporten como aplicaciones
nativas o incluso de escritorio.

3.2.1 Aplicaciones Híbridas


Son aquellas aplicaciones que son desarrolladas en un lenguaje de programación
web (HTML, CSS, JavaScript, etc.) junto con un framework que permite adaptar la
vista web a vista de dispositivo móvil, permitiendo su funcionamiento en los distintos
sistemas operativos móviles como iOS, Android y Windows Phone. (NextU, 2017)

Ventajas:

– Creación sencilla y económica.


– El código base puede utilizarse en múltiples plataformas.
– No se requieren permisos externos para publicar las aplicaciones en las
tiendas del sistema operativo elegido.

Algunos frameworks y librerías que permiten este tipo de desarrollo son:

– PhoneGap / Apache Cordova


– jQuery Mobile
– Ionic
– React Native
– Framework 7
– NativeScript

3.2.2 Progressive Web Apps (PWA)


Son pseudo-aplicaciones nativas que emplean tecnologías web aprovechando la
experiencia de usuario de un dispositivo móvil. Corren directamente a través de una
URL por lo que no necesitan ser instaladas y son multiplataforma.

Están basadas en el modelo Shell App, un patrón que permite cachear los
elementos funcionales para que pueda usarse offline. Y emplean Service Workers,
que son proxys entre los dispositivos y el servidor, que pueden ejecutarse en
segundo plano, lo que permite que puedan usarse sin conexión a internet. (Diligent,
2018)

Ventajas:

– Se mantienen siempre actualizadas al haber un solo código fuente en el


servidor.
– Se “instalan” en los dispositivos móviles únicamente anclándolas al escritorio.
– Pueden enviar notificaciones PUSH e incluso funcionan en segundo plano.
– Aplicaciones responsive (adaptables al display del dispositivo).
– No requieren conexión a internet para funcionar.

Desventajas:

– Aún es una tecnología en desarrollo por lo que no es compatible con todos


los navegadores.
– No tienen acceso a todas las funcionalidades del dispositivo.

Los frameworks y librerías mas utilizadas son:

– Ionic
– Polymer
– Angular
– React
– Vue

3.2.3 Aplicaciones de Escritorio


Aplicaciones destinadas a plataformas de escritorio completamente integradas a los
sistemas operativos, que son desarrolladas haciendo uso de lenguajes de la web.
(Madueno, 2019)

Ventajas:

– Código compartido con posibilidad de ser compilado como un todo.


– Uso de lenguajes de desarrollo web con baja curva de aprendizaje.
– No necesita dependencias nativas de un Sistema Operativo para hacer los
despliegues.
– Se pueden crear interfaces de usuario más elegantes.

Los frameworks más utilizados son:


– Electron
– NW.js
– AppJs
– Meteor
– Proton Native

3.3 Seguridad
Debido a que las aplicaciones de escritorio limitan su uso en los equipos o
dispositivos en los cuales son instalados, así como la comunicación con otros
equipos, favorece a que estas aplicaciones sean más seguras, evitando algunas de
las vulnerabilidades que se encuentran con mas frecuencia en las aplicaciones web,
ya que los mecanismos de seguridad básicos como firewalls, controles de acceso o
sistemas de detección de intrusos no previenen de ataques a las aplicaciones
basadas en la web. (IBM, 2011)

Las vulnerabilidades más comunes en las aplicaciones web son las siguientes:

– Cross-site scripting (XSS). Ataque común que se presenta cuando una


solicitud HTTP puede llegar al contenido HTML.
– Inyección de SQL. Ataque con el que se pueden insertar consultas SQL en
un campo de entrada, para así evitar los mecanismos de autenticación de un
sitio web y así poder acceder a la base de datos.
– Envenenamiento de cookies. El contenido de una Cookie (información
almacenada en el cliente como archivo de texto) puede verse modificado
después de la ejecución de una aplicación web, almacenado información
indeseable en los archivos del cliente.

En ambos casos los ataques pueden ser mitigados con el uso de buenas prácticas
como son el saneamiento de datos y la validación de éstos, así como integrar la
seguridad durante todo el proceso del desarrollo, desde su fase de diseño hasta la
implementación.

4 Postura ante Aplicaciones Web y Aplicaciones de Escritorio


Basado en las descripciones, ventajas y desventajas de estos tipos de aplicaciones
y de acuerdo con mi preferencia personal, pienso que la tendencia del desarrollo de
software se inclina hacia las aplicaciones basadas en la web. Esto gracias a la
necesidad de estar interconectados y de obtener datos desde cualquier lugar en
cualquier momento.
El desarrollo web crece de manera exponencial y cada vez son más los frameworks,
librerías y herramientas, ya sea para frontend o backend, que facilitan la creación
de sitios y aplicaciones web dinámicas. Así mismo las nuevas arquitecturas de
desarrollo permiten que estas aplicaciones web puedan operar de forma nativa en
dispositivos móviles (Aplicaciones híbridas) o en computadoras personales
(Aplicaciones de escritorio), haciendo que sea sencillo su diseño e implementación
y que con un solo código fuente pueda ser desplegado a las diferentes plataformas
y sistemas operativos. En cambio, las aplicaciones desarrolladas para escritorio no
podrán ser desplegados a la web, limitando su uso a los dispositivos en los que
están instalados.

Basado en una experiencia durante la elaboración de una pequeña aplicación en


.NET con Visual Studio y dado con que cuento con un equipo con sistema operativo
macOS, sostuve inconvenientes para la programación e implementación, por lo que
noté que muchas veces el desarrollo de aplicaciones suele ser incompatible entre
sistemas operativos. Cosa que no sucede en la programación web, ya que
independientemente del sistema operativo, siempre que se tenga un navegador y
un servidor local o remoto, la compatibilidad y portabilidad es un hecho.

En cuanto al tema de seguridad y a pesar de que se tiene la creencia de las


aplicaciones web son inseguras, los métodos de prevención de ataques a estos
sitios han sido mejorados. Siguiendo siempre los principios de la metodología de
desarrollo de software en cuanto a los análisis de riesgo, diseño, implementación y
pruebas, las vulnerabilidades pueden ser sofocadas. Así mismo siempre que el
programador haga uso de las buenas prácticas, como el tratamiento de todos los
datos de entrada antes de su proceso, puede conseguirse que las aplicaciones web
sean igual de seguras que una aplicación convencional.

La versatilidad con la que cuenta el desarrollo web es tal, que, independientemente


de que se requiera un sistema sencillo o complejo, para navegador, dispositivo
portátil o de escritorio, los patrones de diseño hacen que, con el conocimiento básico
de pocos lenguajes de programación, sea posible la creación de sistemas de calidad
que faciliten la vida a los usuarios que requieran de sus servicios y que pueda ser
distribuido a lo largo de la red.

Personalmente considero que aprender lenguajes de programación web (HTML5,


CSS, PHP, JavaScript) con sus diferentes frameworks y librerías (Laravel, Vue,
Bootstrap) es esencial, ya que la globalización es inminente y cada vez son más las
personas que tienen acceso a internet y a sus servicios, por lo cual será más
necesario poder cumplir con las exigencias de su uso. De igual manera hago
mención de que no conocía la existencia de las nuevas arquitecturas para la
conversión de aplicaciones web a aplicaciones híbridas y de escritorio y por lo tanto
no he profundizado en su uso, sin embargo, me parece que esto dará paso a nuevos
frameworks y herramientas que permitan unificar las dos vertientes que se han
mencionado a lo largo de este foro.
Cabe destacar que no importa qué elección tome cada desarrollador en cuanto a
qué tipo de aplicación prefiere elaborar, ya que el cliente será siempre quien
exponga sus necesidades y requisitos, ya sea que solicite un sistema para uso
exclusivo para su empresa o negocio, o un sistema para acceder desde cualquier
punto del mundo en el cual tengan una sucursal, el desarrollador tendrá que
adaptarse, diseñar, implementar y dar soporte al producto de software que realice.

Bibliografía

Bravo, L. (2016, ). Framework o librerías: Ventajas y desventajas. Recuperado de

https://www.tithink.com/es/2018/08/29/framework-o-librerias-ventajas-y-

desventajas/

Compatibilidad de tu web con distintos navegadores - manual de HTML y CSS.

Recuperado de https://www.lawebera.es/xhtml-css/compatibilidad-web-

navegadores.php

Diligent. (2018). Progressive web apps: Qué son, ventajas y desventajas.

Recuperado de https://www.diligent.es/progressive-web-apps-ventajas-

desventajas/

Ferrer Martínez, J. (2014). Aplicaciones web. Madrid: RA-MA Editorial. Retrieved

from

https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=5758903

IBM. (2011). Diseño de seguridad de aplicaciones de escritorio y móviles de web

2.0. Recuperado de
http://www.ibm.com/developerworks/ssa/rational/library/desktop-mobile-

application-security-design/index.html

IEEE standard glossary of software engineering terminology (1990). (Revision and

redesignation of IEEE Std 792-1983 ed.). New York, NY:

Juanda, R. (2018). Aplicaciones de escritorio con tecnología web. Recuperado de

http://juandarodriguez.es/apps-desktop-web-multip.html

Madueno, M. (2019). Baufest - electron – un framework para desarrollo de

aplicaciones de escritorio multiplataforma (primera parte). Recuperado de

http://www.tss.com.pe/blog/electron-un-framework-para-desarrollo-de-

aplicaciones-de-escritorio-multiplataforma-primera-parte

Mateu, C. (2004). Desarrollo de aplicaciones web. Av. Tibidabo, 39-43, 08035

Barcelona Material realizado por Eureca Media, SL: Fundació per a la

Universitat Oberta de Catalunya.

NextU, L. (2017). Aplicaciones híbridas: ¿qué son y cómo usarlas? Recuperado de

https://www.nextu.com/blog/aplicaciones-hibridas-que-son-y-como-usarlas/

Vonica, A. (2016, -10-02T14:41:41+00:00). Ventajas y desventajas de las

aplicaciones web. Recuperado de

https://lasaplicacioneswebblog.wordpress.com/2016/10/02/ventajas-y-

desventajas-de-las-aplicaciones-web/
Yeeply Blog. (2019, ). ▷ Ventajas y desventajas de una web app | yeeply blog.

Recuperado de https://www.yeeply.com/blog/ventajas-y-desventajas-de-una-

web-app/

Zamora, M. (2012, sábado, 6 de octubre de). Aplicaciones web: VENTAJAS Y

DESVENTAJAS DE APLICACIONES WEB. Recuperado de

http://unidad6aplicacionesweb1.blogspot.com/2012/10/blog-post.html

Zofío Jiménez, J. (2013). Aplicaciones web. Madrid: Macmillan Iberia, S.A. Retrieved
from https://ebookcentral.proquest.com/lib/[SITE_ID]/detail.action?docID=3217129
(Zofío Jiménez, 2013)

También podría gustarte