martes, 31 de agosto de 2010

Aplicaciones web VS aplicaciones de escritorio

¿Qué es una aplicación?

Se le llama aplicación a todo programa informático que permite a un usuario utilizar una computadora con un fin específico. Las aplicaciones son parte del software de una computadora, y suelen ejecutarse sobre el sistema operativo.Una aplicación de software suele tener un único objetivo: navegar en la web, revisar correo, explorar el disco duro, editar textos, jugar (un juego es un tipo de aplicación), etc. Una aplicación que posee múltiples programas se considera un paquete.Son ejemplos de aplicaciones Internet Explorer, Outlook, Word, Excel, WinAmp, etc.

Características de las aplicaciones

En general, una aplicación es un programa compilado (aunque a veces interpretado), escritoencualquier lenguaje de programación.Las aplicaciones pueden tener distintas licencias de distribución como ser freeware, shareware,trialware, etc.
Las aplicaciones tienen algún tipo de interfaz, que puede ser una interfaz de texto o una interfaz gráfica (o ambas).
También hay que destacar que la distinción entre aplicaciones y sistemas operativos muchas veces no es clara. De hecho, en algunos sistemas integrados no existe una clara distinción para el usuario entre el sistema y sus aplicaciones.

En la ingeniería de software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a unservidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.
Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los webmails,wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web.Es importante mencionar que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.


Aplicaciones de escritorio

En una aplicación de escritorio normalmente no iniciamos sesión por cada aplicación que usemos, sólo se inicia sesión una vez cuando prendemos el sistema operativo, asumiendo que vamos a abrir una aplicación para ver nuestra lista de tareas:
  1. El usuario carga la aplicación.
  2. La aplicación (el código), se conecta a la base de datos y recupera la información del usuario.
  3. La aplicación muestra al usuario la información solicitada.



Aplicaciones web VS aplicaciones de escritorio

Algunos ejemplos de aplicaciones de escritorio son: Windows Live Messenger, iTunes, Adobe Photoshop, Microsoft Word, Excel, Limeware, Winamp, etc. Este tipo de aplicaciones tienen en común el hecho de que son ejecutadas directamente por el sistema operativo, ya sea Microsoft Windows, Mac OS X, Linux o Solaris, y su rendimiento depende de diversas configuraciones de hardware como memoria RAM, disco duro, memoria de video, etc.Por otro lado, como ejemplos de aplicaciones web, tenemos las conocidas redes sociales como Facebook y MySpace, tiendas virtuales como E-Bay y Amazon, la enciclopedia en línea Wikipedia, el buscador Google, etc. Dado estos ejemplos, cabe mencionar que la principal caracteristica de las aplicaciones web es que son ejecutadas sobre aplicaciones de escritorio que son conocidas como navegadores web, de los cuales los mas conocidos son Internet Explorer, Mozilla Firefox y Safari.
En los inicios de la computación, solo existía aplicaciones del tipo consola, posteriormente aparecieron las aplicaciones de escritorio basadas en GUI, y como toda evolución, en los años 90 con el nacimiento de Internet fueron surgiendo lo que hoy conocemos como aplicaciones web, que en ese entonces se limitaban a ser simples páginas de texto estático, pero que con el tiempo han ido tomando fuerza hasta llegar a lo que conocemos hoy en día…y lo que falta.Una de las principales ventajas que presentan las aplicaciones web ante las aplicaciones de escritorio o consola es el hecho de que no dependen de ningún sistema operativo ni configuración de hardware especifica; Para su ejecución simplemente basta con teclear su dirección URL en cualquier navegador web. De igual manera sus actualizaciones se hacen de una manera muy sencilla, sin necesidad de hacer descargas, instalaciones o comprar físicamente el producto.Esta flexibilidad ha sido uno de los principales motivos por los que cada vez son más utilizadas para una creciente diversidad de tareas, auque al día de hoy todavía no cubren todos los aspectos, puesto que hay aplicaciones de consola mas aptas para ciertas tareas al igual que hay aplicaciones de escritorio para otras, principalmente para tareas de bajo nivel que hacen interacción directa con algun hardware.
En resumen, al día de hoy el uso de aplicaciones web es el más apto en aplicaciones de tipo Intranets, Administración de la relación con el cliente (CRM), Planeación de recursos empresariales (ERP), Puntos de venta distribuidos, Comercio Electrónico, Publicidad, y por supuesto, cualquier actividad que tenga que ver con Internet.

Otra opinión..

Desde hace mucho tiempo al hacer una aplicación a veces uno se pregunta. ¿Aplicación web o aplicación de escritorio? O lo que es lo mismo... ¿HTML o Swing/SWT/GTK/Qt/...?

Para algunas aplicaciones está claro. Para otras no tanto.Una aplicación web te da varias ventajas. Más o menos son estas...Instalación. Si el usuario ha llegado a tí es que tiene instalado todo lo necesario para ejecutar tu aplicación: el navegador con el que ha llegado a tu página.Actualizaciones. No hay que actualizar nada porque tampoco ha habido que instalar nada.Ubicuidad. Muchas veces la razón por la que hacer una aplicación con interfaz web es simplemente porque así el usuario tiene todas sus preferencias/configuraciones guardadas en el servidor web y no en su ordenador. De este modo el usuario podrá "ejecutar" la aplicación con sus mismas preferencias y configuraciones en cualquier ordenador del mundo sin tener que instalar nada.Sin embargo el principal inconveniente es obvio: una interfaz de usuario rica es mucho más sencilla de programar en cualquier toolkit gráfico (Swing/SWT/...) que en HTML+JavaScript.
El panorama ha mejorado con AJAX. Han surgido muchos frameworks de todo tipo para facilitar la tarea: prototype, dojo, Google Web Toolkit, cualquier implementación de JSF con componentes AJAX,...Sin embargo doy la razón a aquellos que dicen que esto es un tremendo e increíble hack. HTML no se diseñó para esto. Pero al fin y al cabo este inmensohack funciona, es extensible y flexible y están surgiendo herramientas que, al menos, nos abstraen de los detalles oscuros :P¿Cuánto durará esto? Pues no lo sé. ¿Se pueden hacer aplicaciones web sin tener que sufrir? Pues han surgido alternativas: Adobe Flex. Flex es sin duda, para mí, la filosofía a seguir. Una buena herramienta (Flex Builder) para hacer las interfaces de usuario, componentes ricos, drag&drop,... Todo de forma sencilla y eficaz.
Pero... ¿no podíamos hacer lo mismo con los applets de java? Pues sí, más o menos. Las ventajas de flex son varias... Flash es aparentemente más ligero que un applet. En flash hay cosas muy fáciles de hacer: animaciones, efectos, streaming de audio y vídeo, una interfaz eye-candy,... Otro punto a favor es el plug-in de flash, "siempre ha estado ahí", sin embargo los plugins para Java en casi todos los navegadores no han estado todo lo integrados o no han sido todo lo transparentes que debieran bajo mi punto de vista. Pero sobre todo, la principal diferencia que veo es la herramienta de desarrollo: Flex Builder. También hay que decir, muy imporante, que el gran inconveniente de Flex es que para uso comercial es de pago.También hay una alternativa que no conozco mucho: XUL. ¿Los inconvenientes? Sólo funciona en navegadores basados en Mozilla y, creo, que no alcanza todas las características de Flex (streaming de audio y vídeo, animaciones,...).

No hay comentarios:

Publicar un comentario